aio-libs/aiohttp · Security
AIOHTTP's C parser (llhttp) accepts null bytes and control characters in response header values - header injection/security bypass
- GHSA ID
- GHSA-63hf-3vf5-4wqf
- CVE ID
- CVE-2026-34520
- Severity
- low
- Published
- Updated
- CVSS
- 9.1 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
- CVSS v3
- 9.1 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
- CVSS v4
- 2.7 · CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:U
Description
Summary
The C parser (the default for most installs) accepted null bytes and control characters in request headers.
Impact
An attacker could send header values that are interpreted differently than expected due to the presence of control characters. For example, request.url.origin() may return a different value than the raw Host header, or what a reverse proxy interpreted it as., potentially resulting in some kind of security bypass.
Patch: https://github.com/aio-libs/aiohttp/commit/9370b9714a7a56003cacd31a9b4ae16eab109ba4
CWEs
- CWE-113 · Improper Neutralization of CRLF Sequences in HTTP Headers ('HTTP Request/Response Splitting')
References
- https://github.com/aio-libs/aiohttp/security/advisories/GHSA-63hf-3vf5-4wqf ↗
- https://nvd.nist.gov/vuln/detail/CVE-2026-34520 ↗
- https://github.com/aio-libs/aiohttp/commit/9370b9714a7a56003cacd31a9b4ae16eab109ba4 ↗
- https://github.com/aio-libs/aiohttp/releases/tag/v3.13.4 ↗
- https://github.com/pypa/advisory-database/tree/main/vulns/aiohttp/PYSEC-2026-2102.yaml ↗
- https://github.com/advisories/GHSA-63hf-3vf5-4wqf ↗