Sliver Vulnerable to Pre-Auth Memory Exhaustion via NoEncoder BypassGHSA-hjr9-wj7v-7hv8
GHSA-hjr9-wj7v-7hv8 is a security vulnerability in github.com/bishopfox/sliver. The records list no fixed version yet; check the vendor advisory below and apply the mitigations in the meantime.
Real-World Exposure
github.com/bishopfox/sliverReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Go packages — download data is not available via public APIs for these ecosystems.
Description
Summary
A specially crafted nonce routes unauthenticated requests through the NoEncoder path, where startSessionHandler() reads the entire request body without limits, allowing attacker-driven memory exhaustion and process crash.
Details
server/encoders/encoders.go:EncoderFromNonce()returns NoEncoder whennonce % 65537 == 0(lines 254-264); NoEncoder is a passthrough (util/encoders/nop.go:22-32).server/c2/http.go:anonymousHandler()routes requests with any encoder (including NoEncoder) tostartSessionHandler()(lines 551-562).server/c2/http.go:startSessionHandler()usesio.ReadAll(req.Body)without a size cap (lines 564-643), unlike the authenticated path that usesio.LimitedReader(readReqBody(), lines 708-732).
PoC
An attacker could send an HTTP POST with a nonce that is a multiple of 65537 (e.g., ?q=65537) so it is handled by startSessionHandler() with a NoEncoder, and advertise a very large Content-Length while streaming data. Because this handler uses io.ReadAll(req.Body) without a size limit, the server is expected to allocate large amounts of memory and may exhaust available RAM, leading to process termination on typical deployments.
Impact
Unauthenticated remote DoS: attacker can crash the Sliver HTTP listener, dropping all active sessions and locking out operators until restart. No credentials or non-default config required.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐹Go | github.com/bishopfox/sliver | ≥ 1.5.0 | No fix |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for github.com/bishopfox/sliver, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Remediation status
The records we use list no patched version of github.com/bishopfox/sliver for GHSA-hjr9-wj7v-7hv8. Check the maintainer's advisory, and where your build allows, override or pin the dependency away from the vulnerable range.
Mitigate without a patch
Cap what an attacker can consume: apply request size, rate and timeout limits in front of the affected component, and run it with memory and CPU limits so exhaustion degrades one worker rather than the whole service.
Frequently Asked Questions
Is GHSA-hjr9-wj7v-7hv8 in your dependencies?
Find it across Go, including transitive dependencies.