AIOHTTP's C parser (llhttp) accepts null bytes and control characters in response header values - header injection/security bypass
### 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
describes (1)
Related CVEs.
| ID | severity | exploitable | ||
|---|---|---|---|---|
| CVE-2026-34520US | — | — | ||
AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. Prior to version 3.13.4, the C parser (the default for most installs) accepted null bytes and contro… | ||||
references
External citations — patches, advisories, analysis.
- https://github.com/aio-libs/aiohttpPACKAGE
- https://github.com/aio-libs/aiohttp/commit/9370b9714a7a56003cacd31a9b4ae16eab109ba4WEB
- https://github.com/aio-libs/aiohttp/releases/tag/v3.13.4WEB
- https://github.com/aio-libs/aiohttp/security/advisories/GHSA-63hf-3vf5-4wqfWEB
- https://github.com/pypa/advisory-database/tree/main/vulns/aiohttp/PYSEC-2026-2102.yamlWEB
- https://nvd.nist.gov/vuln/detail/CVE-2026-34520ADVISORY
Advisories like this name the exposed products attackers go after on your perimeter. See what is exposed on your perimeter with a free passive scan.
Free scan