CVE-2026-84784CWE-770denial-of-service

CVE-2026-84784

High · published September 29, 2026

CVSS v3.1
7.5
EPSS
0%
Percentile
33.4
In the wild
Unconfirmed
What it is

Issue summary: A malicious remote peer may flood the local QUIC

stack with NEW_CONNECTION_ID frames by avoiding a limit check on

how many connection IDs the remote QUIC stack can use.

Impact summary: The local QUIC stack sends a RETIRE_CONN_ID frame

for every NEW_CONNECTION_ID frame it receives. The RETIRE_CONN_ID

frame is dispatched via the Control Frame Queue (CFQ). If the remote

peer also withholds ACKs, then it can force the local stack

to allocate ~400MB (depending on ACK delay).

CWE: CWE-770: Allocation of Resources Without Limits or Throttling

Description: RFC 9000 sections 5.1.1 and 5.1.2 [1] describe the mechanism

by which a remote peer can notify the local QUIC stack to change the

destination connection ID (a.k.a. CID) the local stack uses to

identify the connection at the remote peer. Each CID is associated

with a sequence number. The sequence number is transmitted

in NEW_CONNECTION_ID and RETIRE_CONNECTION_ID frames to identify the CID

which is being either associated with a connection or retired.

The remote peer sends a NEW_CONNECTION_ID frame to let the local stack know

a new CID is being associated with an existing connection. The

NEW_CONNECTION_ID frame carries the new CID, its sequence number, and the

retire-prior-to number. The retire-prior-to identifies existing

CIDs that are to be retired. The local QUIC stack must send a

RETIRE_CONNECTION_ID for every destination CID whose sequence number

is less than retire-prior-to. The CID becomes retired after the

local stack receives an ACK for its RETIRE_CONNECTION_ID frame.

Although the OpenSSL QUIC stack supports at most one destination CID

for every connection, it can be tricked into processing more than

one RETIRE_CONNECTION_ID frame per connection. The OpenSSL QUIC

stack currently retires the destination CID as soon as it receives

the NEW_CONNECTION_ID, while in fact the destination CID must

be retired after an ACK for the RETIRE_CONNECTION_ID frame is received.

Correcting the flawed logic also fixes the backlog growth.

[1] https://datatracker.ietf.org/doc/html/rfc9000#name-issuing-connection-ids

FIPS impact: no

The FIPS module is not affected as the QUIC implementation is outside of

the OpenSSL FIPS module boundary.

The record
Technical detail
CVSS v3.1
7.5 · HIGH
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00403 · 33.4th percentile
Weakness
CWE-770 · Allocation of Resources Without Limits or Throttling
Published
2026-09-29T20:17Z
Affected products (4)
ProductVersionsFixed in
openssl/openssl≥ 3.4.0, < 3.4.83.4.8
openssl/openssl≥ 3.5.0, < 3.5.93.5.9
openssl/openssl≥ 3.6.0, < 3.6.53.6.5
openssl/openssl≥ 4.0.0, < 4.0.34.0.3
References (5)
EPSS history
Timeline
  • 01 OCT 03:49Z
    EPSS moved — → 0%
    epss
  • 29 SEP 15:32Z
    QUIC: Unbounded RETIRE_CONNECTION_ID Backlog
    cvelistv5