Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessInduce app to fetch attacker-influenced URL
-
DeliveryServer sends status line and partial header
-
ExploitWithhold header terminator, stream endless bytes
-
ExecutionHeader buffer grows past memory_limit
-
ImpactWorker process crashes (denial of service)
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The victim application must use React\Http\Browser (ReactPHP http 1.0.0-1.11.0) to make outbound HTTP requests to a URL the attacker controls or can influence - this explicitly includes URLs reached through redirects, so a trusted initial host that redirects to an attacker host is sufficient. The attacker must control the responding server to send a valid status line plus partial headers while withholding the \r\n\r\n or \n\n terminator and continuing to stream bytes. Limiting factors: exploitation is impossible unless the application fetches attacker-influenced URLs (apps that only call fixed trusted endpoints are not exposed); impact is confined to availability (process/worker crash via PHP memory_limit exhaustion) with no confidentiality or integrity effect; and upgrading to 1.11.1, which enforces a 65536-byte response-header cap, fully mitigates it. |
| Impact | All signals align on this being a genuine but bounded availability-only risk. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H = 7.5) is consistent with the description: a remote, unauthenticated, low-complexity attack with high availability impact and zero confidentiality/integrity impact (CWE-770, uncontrolled resource consumption). The key nuance the raw score hides is that the victim application must act as an HTTP client via React\Http\Browser and must be induced to fetch an attacker-controlled or attacker-influenced URL - so PR:N/UI:N is technically accurate from the attacker's perspective, but exploitation depends on an application-side design condition (fetching untrusted URLs, including through redirects). No EPSS score was provided and the vulnerability is not listed in CISA KEV, indicating no evidence of active exploitation. No standalone public exploit was supplied; the only exploitation evidence is the vendor's own regression test embedded in the fix commit, which demonstrates the overflow but is not a weaponized POC. Net: a real, patch-worthy DoS for services that make outbound HTTP calls to untrusted endpoints, but not a drop-everything priority - there is no RCE/data-exposure path and no indication of in-the-wild use. |
| Exploit ScenarioDerived | An application uses React\Http\Browser to fetch a URL the attacker can influence (e.g. a webhook target, link-preview fetcher, or SSRF-reachable endpoint, including via HTTP redirects). The attacker's server returns a valid status line and partial headers but never sends the \r\n\r\n (or \n\n) terminator, instead streaming data indefinitely so ClientRequestStream's header buffer grows unbounded until the PHP memory_limit is hit and the event-loop/worker process crashes. No public weaponized exploit was identified at time of analysis, though the fix commit includes a regression test that reproduces the overflow condition. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 15, 2026
Unbounded response-header buffering in ReactPHP's HTTP client (react/http) versions 1.0.0 through 1.11.0 allows a malicious or compromised remote server to exhaust the PHP memory_limit of an application that uses React\Http\Browser to fetch attacker-influenced URLs. Because CVSS 3.1 vector AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H rates this 7.5, the impact is availability-only (event-loop or worker process crash), with no confidentiality or integrity effect; there is no public exploit identified at time of analysis and the issue is not in CISA KEV. The vendor-released patch is version 1.11.1, which enforces a 65536-byte response-header cap and raises an OverflowException when exceeded.
RemediationAI
Upgrade react/http to 1.11.1 (vendor-released patch), which caps response headers at 65536 bytes and throws an OverflowException instead of growing the buffer indefinitely; verify the upgrade against GHSA-g4f2-2pf3-2pwj and the v1.11.1 release notes. Note that a failed or absent header terminator will now surface as an error response rather than a hang, so applications should already handle request errors gracefully. If immediate upgrading is not possible, apply compensating controls with their trade-offs: enforce a strict allowlist of outbound destination hosts so attacker-influenced URLs cannot be reached (effective but breaks any legitimate dynamic-URL feature); disable or tightly bound HTTP redirect following, since redirects to attacker hosts are an explicit exploitation path, and validate each redirect hop against the allowlist (this defeats the redirect vector but may break legitimate redirect-based integrations); run each worker under a lowered PHP memory_limit with automatic worker recycling so a memory-limit fatal is contained to one request rather than crashing the whole event loop (reduces blast radius but adds process churn and a 128-256 MB-ish per-worker footprint); and apply aggressive connect/read timeouts and per-host concurrency limits on the Browser so a slow-drip header stream is cut off before the buffer becomes large (mitigates in practice but is not a hard guarantee, since a fast attacker can exhaust memory within the timeout window). Monitor worker restarts and OutOfMemory errors as an indicator of attempted exploitation, and remember that confidentiality and integrity are unaffected, so the residual risk under any of the above workarounds is availability-only.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in composer, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
react/http is an event-driven, streaming HTTP client and server implementation built on the ReactPHP event loop. Its client side, React\Http\Browser, drives requests through React\Http\Io\ClientRequestStream, whose handleData() method appends incoming socket bytes to an internal buffer until it locates the end-of-message header terminator (\r\n\r\n or the legacy \n\n). Prior to 1.11.1 the class performed no bound check on that buffer, so a server that sends a syntactically valid status line plus a partial header set and then withholds the terminator can keep the buffer growing for the life of the connection - a textbook CWE-770 (Allocation of Resources Without Limits or Throttling) unbounded-resource-consumption flaw. The upstream fix commit 2558622d0b76227c60c61eac8a61572cb6638e8c introduces a $maxHeaderSize = 65536 property and rejects the response via closeError() with an OverflowException when either the normal or legacy terminator is not found within that window, including the case where the terminator is absent and the buffer already exceeds the cap. The affected CPE is cpe:2.3:a:reactphp:http:*:*:*:*:*:*:*:* (all released versions in the vulnerable range); the accompanying test coverage adds cases for data with no end-of-message, a normal terminator beyond the limit, and a legacy terminator beyond the limit.
Know when Http gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Remote attacker-controlled server needs no privileges or user interaction to trigger unbounded buffer growth (PR:N/UI:N/AC:L); impact is availability-only process crash, so C:N/I:N/A:H.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
react/http is an event-driven, streaming HTTP client and server implementation for ReactPHP. From 1.0.0 until 1.11.1, React\Http\Browser uses ClientRequestStream::handleData() to append response-header bytes to an internal buffer without enforcing a size limit. A remote server can send a valid status line and partial header, withhold the \r\n\r\n or \n\n header terminator, and continue streaming data so the buffer grows for the life of the connection. Applications that fetch attacker-controlled or attacker-influenced URLs, including URLs reached through redirects, can exhaust PHP memory_limit and crash the event-loop or worker process. Confidentiality and integrity are unaffected. This issue is fixed in version 1.11.1.
Technical POC Analysis
CWE-770 (Allocation of Resources Without Limits or Throttling), specific to react/http's client-side response-header parser.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
ReactPHP's HTTP client (react/http) versions 1.0.0 through 1.11.0 can be driven by a malicious or attacker-influenced remote server into consuming an application's entire PHP memory allowance, crashing the worker or event loop of any service that fetches URLs with React\Http\Browser. This is an availability-only exposure: no data is stolen or altered, but request-handling capacity can be lost wherever user- or partner-supplied URLs are fetched. Because it is exploitable remotely without authentication, leadership should prioritize internet-facing and shared-worker workloads that depend on this library.
Apply vendor patch (react/http 1.11.1). Where deployment must wait, interim mitigations are to lower PHP memory_limit and worker concurrency to limit blast radius, restrict outbound fetches to an allowlist of trusted hosts, and monitor worker memory and crash rates for abnormal header-size growth; no public exploit identified at time of analysis.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
Remote, unauthenticated denial of service affects react/http versions 0.6.0 through 1.11.0, where a malformed Transfer-E
An issue was discovered in the http crate before 0.1.20 for Rust. Rated high severity (CVSS 7.5), this vulnerability is
HTTP::Daemon is a simple http server class written in perl. Rated medium severity (CVSS 6.5), this vulnerability is remo
An issue was discovered in the http package through 0.12.2 for Dart. Rated medium severity (CVSS 6.1), this vulnerabilit
HTTP::Session versions through 0.53 for Perl defaults to using insecurely generated session ids.
HTTP::Tiny before 0.083, a Perl core module since 5.13.9 and available standalone on CPAN, has an insecure default TLS c
Credential leakage in the Perl HTTP::Tiny client (all versions before 0.095) lets an attacker who controls a redirect de
HTTP::Tiny versions before 0.093 for Perl fail to validate carriage return and line feed (CRLF) characters in HTTP reque
HTTP::Session2 versions through 1.09 for Perl does not validate the format of user provided session ids, enabling code i
HTTP::Session2 before version 1.12 for Perl generates predictable session identifiers on Windows systems when /dev/urand
react/http is an event-driven, streaming HTTP client and server implementation for ReactPHP. Rated medium severity (CVSS
EUVD-2026-102255
GHSA-g4f2-2pf3-2pwj
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB