OSV 1.4.0 · github-reviewed · 修改于 2026-09-04 02:02
发布时间
2026-09-04 02:02
GitHub 审查时间
2026-09-04 02:02
NVD 发布时间
2026-08-12 04:18
源文件
advisories/github-reviewed/2026/09/GHSA-jcvh-xf52-2cwm/GHSA-jcvh-xf52-2cwm.json
A malicious or attacker-controlled target server can crash ffuf with an out-of-memory condition by returning a compressed HTTP response that decompresses to a very large body (a decompression bomb). This works against default usage with no special flags.
The response body size guard in pkg/runner/simple.go only checks the server-supplied Content-Length header, which reflects the compressed size and is absent for chunked responses or when Go's
net/http transport transparently decompresses the body. After that check, io.ReadAll reads the entire decompressed stream into memory with no upper bound, so a small compressed body that
expands to gigabytes causes unbounded allocation and the process is terminated by the OS OOM killer.
The guard is bypassed in three independent ways:
Content-Encoding and Content-Length, so the size check is
skipped and the already-decoded body is read unbounded.Content-Length reflects the small compressed size and passes the check; the body is then manually decompressed into an unbounded
io.ReadAll.Content-Length header is present, so the numeric parse fails and the check is skipped entirely.Denial of service against the operator running ffuf. A single hostile endpoint can OOM-kill ffuf on a default invocation such as ffuf -u http://target/FUZZ -w wordlist.txt, discarding all
in-memory scan results. Because the crash recurs on every attempt against that target, a server can effectively make itself immune to ffuf-based content discovery. There is no confidentiality or
integrity impact; only the availability of the scanning process is affected. CVSS 3.1 base score 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H), CWE-409 (Improper Handling of Highly Compressed Data).
Fixed in ffuf 2.2.0 () via . The response body read is now bounded with to the existing 5 MB download cap regardless of , chunked framing, or transport-level decompression; responses exceeding the cap are dropped rather than read into memory. Upgrade to 2.2.0 or later.
io.LimitReaderContent-EncodingThere is no configuration flag that fully mitigates this in affected versions. Until upgrading, limit ffuf usage against untrusted or attacker-influenced targets. Upgrading to 2.2.0 is the fix.
Reported by João Tricta (Hakai Offensive Security).