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

References