Skip to main content

ReactPHP HTTP EUVDEUVD-2026-102255

| CVE-2026-104827 HIGH
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-10-15 GitHub_M GHSA-g4f2-2pf3-2pwj
7.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Induce app to fetch attacker-influenced URL
  2. Delivery
    Server sends status line and partial header
  3. Exploit
    Withhold header terminator, stream endless bytes
  4. Execution
    Header buffer grows past memory_limit
  5. Impact
    Worker 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

http 1.0.0, < 1.11.1

Affected Packages

composer react/http fix: 1.11.1
euvd http fix: 1.11.1

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

Vendor (GitHub_M) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 7.5 HIGH

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.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

2
Patch available
Oct 15, 2026 - 19:18 EUVD
CVE Published
Oct 15, 2026 - 18:19 cve.org
HIGH 7.5

DescriptionCVE.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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.4%
Top 65% exploitable
Prevalence
Medium
popular PHP async HTTP library, common but not in most environments
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Http

View all
CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2026-84997 HIGH POC
7.5 Sep 16

Remote, unauthenticated denial of service affects react/http versions 0.6.0 through 1.11.0, where a malformed Transfer-E

CVE-2020-25574 HIGH POC
7.5 Sep 14

An issue was discovered in the http crate before 0.1.20 for Rust. Rated high severity (CVSS 7.5), this vulnerability is

CVE-2022-31081 MEDIUM POC
6.5 Jun 27

HTTP::Daemon is a simple http server class written in perl. Rated medium severity (CVSS 6.5), this vulnerability is remo

CVE-2020-35669 MEDIUM POC
6.1 Dec 24

An issue was discovered in the http package through 0.12.2 for Dart. Rated medium severity (CVSS 6.1), this vulnerabilit

CVE-2026-3256 CRITICAL
9.8 Mar 28

HTTP::Session versions through 0.53 for Perl defaults to using insecurely generated session ids.

CVE-2023-31486 HIGH
8.1 Apr 29

HTTP::Tiny before 0.083, a Perl core module since 5.13.9 and available standalone on CPAN, has an insecure default TLS c

CVE-2026-7017 HIGH
7.1 Jul 07

Credential leakage in the Perl HTTP::Tiny client (all versions before 0.095) lets an attacker who controls a redirect de

CVE-2026-7010 MEDIUM
6.5 May 11

HTTP::Tiny versions before 0.093 for Perl fail to validate carriage return and line feed (CRLF) characters in HTTP reque

CVE-2018-25160 MEDIUM
6.5 Feb 27

HTTP::Session2 versions through 1.09 for Perl does not validate the format of user provided session ids, enabling code i

CVE-2026-3255 MEDIUM
6.5 Feb 27

HTTP::Session2 before version 1.12 for Perl generates predictable session identifiers on Windows systems when /dev/urand

CVE-2023-26044 MEDIUM
5.3 May 17

react/http is an event-driven, streaming HTTP client and server implementation for ReactPHP. Rated medium severity (CVSS

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy