Unbounded storage of information related to connection ID retirement in quiche
Low3.7CVE-2024-1410 · Published Mar 12, 2024
### Impact Cloudflare quiche was discovered to be vulnerable to unbounded storage of information related to connection ID retirement, which could lead to excessive resource consumption. Each QUIC connection possesses a set of connection Identifiers (IDs); see [RFC 9000 Section 5.1](https://datatracker.ietf.org/doc/html/rfc9000#section-5.1). Endpoints declare the number of active connection IDs they are willing to support using the active_connection_id_limit transport parameter. The peer can create new IDs using a NEW_CONNECTION_ID frame but must stay within the active ID limit. This is done by retirement of old IDs, the endpoint sends NEW_CONNECTION_ID includes a value in the retire_prior_to field, which elicits a RETIRE_CONNECTION_ID frame as confirmation. An unauthenticated remote attacker can exploit the vulnerability by sending NEW_CONNECTION_ID frames and manipulating the connection (e.g. by restricting the peer's congestion window size) so that RETIRE_CONNECTION_ID frames can only be sent at a slower rate than they are received, leading to storage of information related to connection IDs in an unbounded queue. ### Patches Quiche versions 0.19.2 and 0.20.1 are the earliest to...
Affected versions
| Package | Affected | Fixed in |
|---|---|---|
| quiche crates.io | < 0.19.2 | 0.19.2 |
| < 0.20.1 | 0.20.1 |
Details and references
### Impact Cloudflare quiche was discovered to be vulnerable to unbounded storage of information related to connection ID retirement, which could lead to excessive resource consumption. Each QUIC connection possesses a set of connection Identifiers (IDs); see [RFC 9000 Section 5.1](https://datatracker.ietf.org/doc/html/rfc9000#section-5.1). Endpoints declare the number of active connection IDs they are willing to support using the active_connection_id_limit transport parameter. The peer can create new IDs using a NEW_CONNECTION_ID frame but must stay within the active ID limit. This is done by retirement of old IDs, the endpoint sends NEW_CONNECTION_ID includes a value in the retire_prior_to field, which elicits a RETIRE_CONNECTION_ID frame as confirmation. An unauthenticated remote attacker can exploit the vulnerability by sending NEW_CONNECTION_ID frames and manipulating the connection (e.g. by restricting the peer's congestion window size) so that RETIRE_CONNECTION_ID frames can only be sent at a slower rate than they are received, leading to storage of information related to connection IDs in an unbounded queue. ### Patches Quiche versions 0.19.2 and 0.20.1 are the earliest to address this problem. There is no workaround for affected versions.
- CVSS 3.1
- CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
- Severity from
- GitHub (reviewed advisory)
- Weakness
- CWE-400
More Cloudflare advisories
All Cloudflare| Date | Advisory | Severity | Fixed in |
|---|---|---|---|
| Mar 122024 | Unlimited resource allocation by QUIC CRYPTO frames flooding | Medium5.9 | 0.19.2+1 more |
| Jan 292024 | Information disclosure of Cloudflare API for low privileged users | High8.1 | 4.12.3 |
| Jan 82024 | Kyber: timing side-channel (kyberslash2) | High | 1.3.7 |
| Dec 292023 | Arbitrary remote code execution within `wrangler dev` Workers sandbox | High8.5 | 3.19.0+1 more |
| Dec 292023 | Arbitrary remote file read in Wrangler dev server | Medium6.9 | 3.19.0 |
| Dec 292023 | Server-Side Request Forgery (SSRF) in Miniflare | High8.0 | 3.20231030.2 |