CVE-2026-47073 json
Unbounded memory consumption in WebSocket client in hackney
published 2026-05-25 5 mo ago modified 2026-07-30 3 mo ago also EEF-CVE-2026-47073 , EUVD-2026-31694 , GHSA-q8jg-fgj4-fphf
- cvss
- 7.5
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.9%
- EPSS 0.9% chance of exploitation in 30 days, percentile 58%
- public exploits
- 0
- none known
Summary
Allocation of Resources Without Limits or Throttling vulnerability in benoitc hackney allows Flooding. The WebSocket client in src/hackney_ws.erl imposes no upper bound on memory consumption in three code paths. First, read_handshake_response/3 accumulates received bytes into a growing buffer with no size cap; the per-receive timeout resets on every chunk, so a server that streams bytes without ever sending \r\n\r\n causes the buffer to grow until memory is exhausted. Second, parse_payload/9 and parse_active_payload/8 do not validate the declared frame payload length against any limit; because RFC 6455 allows payload lengths up to 2^63-1 bytes, a server that announces a very large frame and dribbles bytes causes the accumulation buffer to grow until OOM. Third, the frag_buffer field in #ws_data{} accumulates continuation frames indefinitely; a server that sends an endless stream of non-final (nofin) fragmented frames without ever sending a final (fin) frame grows frag_buffer without bound.
In all three cases the attacker only needs to control the WebSocket server the hackney client connects to, with no authentication or special client configuration required.
This issue affects hackney: from 2.0.0 before 4.0.1.
Patch / fix
- hex hackney 4.0.1
- benoitc hackney 4.0.1
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 5 mo ago
Exploit prediction
0.85% chance of exploitation in the next 30 days, higher than 58% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/benoitc/hackney/security/advisories/GHSA-q8jg-fgj4-fphf referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 8.7 | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N |
| CNA | 4.0 | 8.7 | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| NVD | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| hex | hackney | >=2.0.0, <4.0.1 |
4.0.1 |
Affected products
- benoitc hackney
Classification
- Weakness
-
- CWE-400 Uncontrolled Resource Consumption
References
-
github.com
/benoitc/hackney/commit/ce0109e2970ace6e20ff29bae9d05c3ac22ec6dc
patch, web
-
github.com
/benoitc/hackney/security/advisories/GHSA-q8jg-fgj4-fphf
vendor-advisory, related, exploit, web, patch, advisory
-
cna.erlef.org
/cves/CVE-2026-47073.html
related, web, patch, third-party-advisory
-
osv.dev
/vulnerability/EEF-CVE-2026-47073
related, web, patch, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-47073
advisory
-
github.com
/benoitc/hackney
package
-
hex.pm
/packages/hackney
package
Sources
- CVE List CVE-2026-47073
- GitHub Advisory GHSA-q8jg-fgj4-fphf
- NVD CVE-2026-47073
- OSV EEF-CVE-2026-47073
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.