Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessEstablish WebTransport session over HTTP/3
-
DeliveryOpen and manipulate stream lifetimes
-
ExploitTrigger session/stream teardown with stale callback
-
ExecutionTransport invokes freed read callback
-
ImpactMemory corruption causing crash or info leak
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory lifecycle management
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires the target to be a proxygen-based server (or peer) with WebTransport over HTTP/3 in use - WebTransport is a non-ubiquitous, relatively new feature, which materially limits the exposed attack surface. The attacker must be able to open WebTransport streams and drive the session into the teardown path where streams are closed while a read callback is still registered, so exploitation hinges on reaching the specific stream-lifetime/teardown sequence rather than a single trivial request. Per the CVSS vector this is remote and unauthenticated (PR:N, UI:N), but reliability depends on stream-state timing and the deployment actually enabling WebTransport; deployments not using WebTransport are unaffected. |
| Impact | This is a CWE-416 use-after-free in Meta's proxygen HTTP library, affecting WebTransport session teardown (WebTransportImpl::terminateSessionStreams, formerly ::destroy) where read callbacks for no-longer-open streams are not unregistered before being freed, allowing the transport to later invoke a freed callback. The vendor CVSS:3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N, 7.5) implies remote unauthenticated triggering with high confidentiality impact, consistent with the 'Information Disclosure' tag. However, the real-world signals point to modest priority: EPSS is very low at 0.14% (3rd percentile), the CVE is NOT in CISA KEV, and no public POC is identified. The vulnerability was self-reported by Meta with a vendor advisory and a fix commit, indicating responsible-disclosure hygiene rather than observed attacks. IMPORTANT DATA CONFLICT: the linked fix commit (479eb557) modifies HTTPBinaryCodec.cpp (Binary HTTP / field-section parsing), which does not correspond to the described WebTransportImpl read-callback defect - the referenced diff appears to be a different change than the one the description narrates, so the exact patch for this UAF cannot be independently confirmed from the provided evidence. Additionally, use-after-free on a read callback most plausibly causes a crash (availability) or leaks freed-memory contents, so the vendor's choice of C:H/A:N is questionable; a crash-based DoS (A:H) is at least as likely as reliable information disclosure. Net: a real, patchable memory-safety bug but low probability of widespread exploitation given niche feature (WebTransport) and no exploitation signals. |
| Exploit ScenarioDerived | A remote client establishes an HTTP/3 WebTransport session against a proxygen-based server and opens streams, then drives the session into a teardown path where some streams are no longer open while a read callback remains registered. When the session's stream state is destroyed, the transport invokes the freed read callback, corrupting memory to crash the process or potentially disclose freed-memory contents. No public exploit code is identified at time of analysis, and successful exploitation depends on winning the specific stream-lifetime timing. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 30, 2026
Use-after-free in Meta's Proxygen HTTP library (v2024.10.28.00 through v2026.09.28.00) lets remote, unauthenticated attackers provoke the invocation of a freed read callback during WebTransport session teardown, because WebTransportImpl::terminateSessionStreams (named WebTransportImpl::destroy in releases before v2025.08.18.00) destroys streams without first unregistering their read callbacks. Only deployments that actually enable WebTransport over HTTP/3 are exposed, and the independent assessment rates this AV:N/AC:H/PR:N/UI:N with high availability impact and low confidentiality impact, since the attacker must open WebTransport streams and drive the session into the specific stream-close/teardown ordering. No public exploit code and no confirmed active exploitation were identified at time of analysis, and EPSS is low (0.14%, 3rd percentile), so the practical risk is concentrated in services that both use Proxygen and enable WebTransport.
RemediationAI
Vendor-released patch: upgrade Proxygen to v2026.09.28.00 or later, which is the first release outside the affected range documented by the vendor (https://www.facebook.com/security/advisories/cve-2026-91096); the corresponding upstream fix reference is commit 479eb5574195764e80e6cedebef669f6baa85083 (https://github.com/facebook/proxygen/commit/479eb5574195764e80e6cedebef669f6baa85083). Where upgrading immediately is not possible, the most effective compensating control is to disable WebTransport over HTTP/3 in the Proxygen server configuration so that session teardown callbacks for WebTransport streams are never instantiated - the trade-off is that any WebTransport-dependent clients (for example browser applications relying on WebTransport for low-latency bidirectional transport) will lose functionality and must fall back to WebSocket or HTTP/2, and operators should verify no other code path constructs WebTransportImpl sessions. Reducing the exposed attack surface by terminating HTTP/3/WebTransport only for trusted or internal clients, and rate-limiting or fronting the endpoint with a proxy that does not forward WebTransport CONNECT streams, lowers the chance of an attacker reaching the teardown sequence, though these are exposure-reduction measures rather than fixes and carry the side effect of blocking legitimate WebTransport traffic. Be aware that no patched build is available for pre-v2026.09.28.00 branches, so versions such as v2025.08.18.00 that rename but do not fix the function remain vulnerable and must be upgraded.
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Proxygen is Meta's open-source C++ HTTP library that implements HTTP/1.1, HTTP/2 and HTTP/3 stacks and is used both inside Meta's infrastructure and by third parties; the CPE cpe:2.3:a:facebook:proxygen:*:*:*:*:*:*:*:* covers the affected product across all vulnerable releases up to the fixed v2026.09.28.00. The vulnerable component is the WebTransport implementation layered on HTTP/3, where a WebTransport session multiplexes bidirectional and unidirectional streams and the server registers per-stream read callbacks with the transport. The root cause is a CWE-416 use-after-free: when a session is torn down or streams are closed, terminateSessionStreams (renamed from destroy as of v2025.08.18.00) frees stream objects without first cancelling/unregistering the read callbacks still associated with them, so a subsequent transport-driven read event dispatches into memory that has already been released. Because the defect lives on the stream-lifetime and teardown path rather than in request parsing, exploitation depends on timing and stream-state ordering (hence AC:H in the assessed vector) and is confined to code paths reachable only when WebTransport over HTTP/3 is enabled in the deployment. The referenced upstream commit (479eb5574195764e80e6cedebef669f6baa85083) is the fix pointer from the vendor's advisory trail.
Know when Proxygen 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:H/I:N/A:N
Remote unauthenticated (AV:N/PR:N) but triggering the freed-callback path needs a specific stream-teardown state (AC:H); a freed read callback most likely crashes the process (A:H) with only limited freed-memory disclosure (C:L).
Primary rating from Vendor (Meta).
CVSS VectorVendor: Meta
Lifecycle Timeline
3DescriptionCVE.org
In proxygen from v2024.10.28.00 until v2026.09.28.00, WebTransportImpl::terminateSessionStreams (WebTransportImpl::destroy in releases before v2025.08.18.00) failed to unregister read callbacks for streams that were no longer open before destroying them. The transport could then invoke a read callback that had been freed.
Executive ViewAI
CVE-2026-91096 is a high-severity memory-safety flaw in Meta's Proxygen HTTP library that can crash or destabilize services during WebTransport session teardown over HTTP/3, degrading availability rather than exposing data. Exposure is limited to the subset of Proxygen-based deployments that have WebTransport explicitly enabled, so leadership should prioritize identification and containment over broad emergency remediation. No public exploit code and no confirmed active exploitation were identified at time of analysis.
No vendor-released patch identified at time of analysis; interim mitigations include disabling WebTransport over HTTP/3 on affected Proxygen deployments, restricting or disabling HTTP/3 at the network edge, rate-limiting WebTransport session and stream creation, and monitoring for abnormal session-teardown behavior and process crashes.
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
Use-after-free vulnerabilities occur when a program continues to access memory through a pointer after that memory has been deallocated.
Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
The SPDY/2 codec in Facebook Proxygen before 2015-11-09 truncates a certain field to two bytes, which allows hijacking a
A use-after-free is possible due to an error in lifetime management in the request adaptor when a malicious client invok
In the course of decompressing HPACK inside the HTTP2 protocol, an unexpected sequence of header table resize operations
An out of bounds write is possible via a specially crafted packet in certain configurations of Proxygen due to improper
Facebook Proxygen before 2015-11-09 mismanages HTTPMessage.request state, which allows remote attackers to conduct hijac
The SPDY/2 codec in Facebook Proxygen before 2015-11-09 allows remote attackers to conduct hijacking attacks and bypass
A packet of death scenario is possible in mvfst via a specially crafted message during a QUIC session, which causes a cr
An issue in the Proxygen handling of HTTP2 parsing of headers/trailers can lead to a denial-of-service attack. Rated hig
A potential denial-of-service issue in the Proxygen handling of invalid HTTP2 priority settings (specifically a circular
Proxygen fails to validate that a secondary auth manager is set before dereferencing it. Rated high severity (CVSS 7.5),
Use-after-free in Meta's proxygen C++ networking library (versions v2026.04.06.00 up to but not including v2026.09.28.00
EUVD-2026-88545
GHSA-8mv4-xrj3-xg7m
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB