Resource exhaustion in HTTP/3 and QPACK
Cloudflare quiche's HTTP/3 layer was discovered to be vulnerable to resource exhaustion (i.e. memory) by means of specially crafted HTTP/3 frames.
HTTP/3 defines multiple frame types to support HTTP message exchanges and connection management. Each frame has a length and a payload whose length depends on the frame type. quiche was found to be vulnerable when parsing some frame types to pre-allocating memory based on the declared length. An attacker would not need to send the number of declared bytes to trigger this issue.
In addition, quiche was found to not apply QPACK decompression limits correctly. This could allow an attacker to send specially crafted HEADERS frames that would cause more memory commitment than otherwise advertised by MAX_FIELD_SECTION_SIZE (configured by set_max_field_section_size()).
quiche 0.29.3 is the earliest version containing the fix for this issue.
Affected versions
| Package | Affected | Fixed in |
|---|---|---|
| quiche crates.io | >= 0.1.0, < 0.29.3 | 0.29.3 |
Details and references
- CVSS 3.1
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- Severity from
- GitHub (reviewed advisory)