CVE-2026-84997 json
react/http: A malformed HTTP chunked body can lead to a denial-of-service and peg the CPU
published last mo. modified last mo. also EUVD-2026-80779 , GHSA-x424-64qh-5j54
- cvss
- 7.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.7%
- EPSS 0.7% chance of exploitation in 30 days, percentile 51%
- public exploits
- 0
- none known
Summary
react/http is an event-driven, streaming HTTP client and server implementation for ReactPHP. From 0.6.0 until 1.11.1, React\Http\Io\ChunkedDecoder could enter an infinite loop while processing a malformed Transfer-Encoding: chunked body because handleData required its buffer to shrink on every iteration. An incomplete terminal-chunk trailer without CRLF left the buffer unchanged after strpos returned false, and exactly two non-CRLF bytes after a completed non-terminal chunk bypassed both the error and wait guards. The affected decoder processes request bodies for React\Http\HttpServer and response bodies for React\Http\Browser, allowing a malicious client to freeze a server or a malicious or compromised server to freeze a client. A reverse proxy that normalizes inbound requests may protect the server direction but does not protect outbound Browser requests. This issue is fixed in version 1.11.1.
Patch / fix
- packagist react/http 1.11.1
- reactphp http 1.11.1
Is CVE-2026-84997 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- yes
- Technical impact
- partial
- Assessed
- last mo.
Exploit prediction
0.66% chance of exploitation in the next 30 days, higher than 51% of all scored CVEs (FIRST EPSS, 2026-11-11).
Exploits and checks
- github.com https://github.com/reactphp/http/security/advisories/GHSA-x424-64qh-5j54 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
| GitHub | 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 |
|---|---|---|---|
| packagist | react/http | >=0.6.0, <1.11.1 |
1.11.1 |
Affected products
- reactphp http
Classification
- Weakness
-
- CWE-835 Loop with Unreachable Exit Condition
References
-
github.com
/reactphp/http/commit/b6d4688790adf3797071fcf88a3fc4225f30486a
web
-
github.com
/reactphp/http/security/advisories/GHSA-x424-64qh-5j54
exploit, web
-
github.com
/reactphp/http/releases/tag/v1.11.1
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-84997
advisory
-
github.com
/FriendsOfPHP/security-advisories/blob/master/react/http/CVE-2026-84997.yaml
web
-
github.com
/reactphp/http
package
Sources
- CVE List CVE-2026-84997
- GitHub Advisory GHSA-x424-64qh-5j54
- NVD CVE-2026-84997
Fencer Intel 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.