AIOHTTP allows for a brute-force leak of internal static filepath components
AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. Versions 3.13.2 and below enable an attacker to ascertain the existence of absolute path components through the path normalization logic for static files meant to prevent path traversal. If an application uses web.static() (not recommended for production deployments), it may be possible for an attacker to ascertain the existence of path components. This issue is fixed in version 3.13.3.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2025-69226
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 7 Nov 2026, 12:15 UTC · Revision 1
Source evidence
AIOHTTP allows for a brute-force leak of internal static filepath components
core-osv · Original sourcePublished 5 Jan 2026, 22:52 UTC
AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. Versions 3.13.2 and below enable an attacker to ascertain the existence of absolute path components through the path normalization logic for static files meant to prevent path traversal. If an application uses web.static() (not recommended for production deployments), it may be possible for an attacker to ascertain the existence of path components. This issue is fixed in version 3.13.3.
osv:CVE-2025-69226
Complete source record
{
"id": "1e0f3b6230ad27814da26c3a7b21c408c5f61cac988195be99f131e82de9f741",
"url": "https://osv.dev/vulnerability/CVE-2025-69226",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "AIOHTTP allows for a brute-force leak of internal static filepath components",
"summary": "AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. Versions 3.13.2 and below enable an attacker to ascertain the existence of absolute path components through the path normalization logic for static files meant to prevent path traversal. If an application uses web.static() (not recommended for production deployments), it may be possible for an attacker to ascertain the existence of path components. This issue is fixed in version 3.13.3.",
"evidence": "osv:CVE-2025-69226",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2025-69226",
"aliases": [
"CVE-2025-69226",
"GHSA-54jq-c3m8-4m76",
"PYSEC-2026-1097"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/aio-libs/aiohttp",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "41f01ed680b7efc8f97677df45731b80328aad6c"
},
{
"fixed": "f2a86fd5ac0383000d1715afddfa704413f0711e"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:aiohttp:aiohttp:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "3.13.3"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "f2a86fd5ac0383000d1715afddfa704413f0711e"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
}
],
"versions": [
"v3.13.2",
"v3.13.1",
"v3.13.0",
"v3.12.0",
"v3.12.0rc1",
"v3.12.0rc0",
"v3.12.0b3",
"v3.12.0b2",
"v3.12.0b1",
"v3.12.0b0",
"v3.11.0",
"v3.11.0rc2",
"v3.11.0rc1",
"v3.11.0rc0",
"v3.11.0b5",
"v3.11.0b4",
"v3.11.0b3",
"v3.11.0b2",
"v3.11.0b1",
"v3.11.0b0",
"v3.10.0",
"v3.10.0rc0",
"v3.10.0b1",
"v3.10.0b0",
"v3.9.0",
"v3.9.0rc0",
"v3.9.0b1",
"v3.9.0b0",
"v3.8.0",
"v3.7.1",
"v3.7.0",
"v3.7.0b1",
"v3.7.0b0",
"v3.6.2",
"v3.6.2a2",
"v3.6.2a1",
"v3.6.1",
"v3.6.1b4",
"v3.6.1b3",
"v3.6.0",
"v3.6.0b0",
"v3.6.0a12",
"v3.6.0a11",
"v3.6.0a10",
"v3.6.0a9",
"v3.6.0a8",
"v3.6.0a7",
"v3.6.0a6",
"v3.6.0a5",
"v3.6.0a4",
"v3.6.0a3",
"v3.6.0a2",
"v3.6.0a1",
"v3.6.0a0",
"v3.5.4",
"v3.5.3",
"v3.5.2",
"v3.5.1",
"v3.5.0",
"v3.5.0b3",
"v3.5.0b2",
"v3.5.0b1",
"v3.5.0a1",
"v3.4.0",
"v3.4.0b2",
"v3.4.0b1",
"v3.4.0a3",
"v3.4.0a0",
"v3.2.0",
"v3.1.0",
"v3.0.0b4",
"v3.0.0b3",
"v3.0.0b2",
"v3.0.0b1",
"v3.0.0b0",
"v2.3.0",
"v2.3.0a4",
"v2.3.0a3",
"v2.3.0a2",
"v2.3.0a1",
"v2.2.0",
"v2.1.0",
"2.0.0",
"2.0.0rc1",
"1.3.0",
"v1.2.0",
"v1.1.1",
"v1.1.0",
"v1.0.1",
"v1.0.0",
"v0.22.1",
"v0.22.0",
"v0.22.0b6",
"v0.22.0b5",
"v0.22.0b4",
"v0.22.0b3",
"v0.22.0b2",
"v0.22.0b1",
"v0.22.0b0",
"4v0.21.6",
"v0.21.0",
"v0.20.1",
"v0.20.0",
"v0.19.0",
"v0.18.0",
"v0.17.0",
"v0.16.3",
"v0.16.2",
"v0.16.1",
"v0.16.0",
"v0.15.3",
"0.15.2",
"v0.15.2",
"v0.15.1",
"v0.15.0",
"v0.14.4",
"v0.14.3",
"v0.14.2",
"v0.14.1",
"v0.14.0",
"v0.13.1",
"v0.13.0",
"v0.12.0",
"v0.11.0",
"v0.10.1",
"v0.10.0",
"v0.9.2",
"v0.9.1",
"v0.9.0",
"v0.8.4",
"v0.8.3",
"0.8.2",
"v0.8.1",
"v0.8.0",
"v0.7.3",
"v0.7.2",
"v0.7.1",
"v0.7.0",
"v.0.6.5",
"v0.6.4",
"v0.6.3",
"v0.6.2",
"v0.6.1",
"v0.5.0",
"v0.4.2",
"v0.4.1",
"v0.4",
"v0.3",
"v0.2",
"v0.1"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-69226.json"
}
}
],
"modified": "2026-10-28T02:30:50.787619607Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/69xxx/CVE-2025-69226.json",
"https://github.com/aio-libs/aiohttp/security/advisories/GHSA-54jq-c3m8-4m76",
"https://nvd.nist.gov/vuln/detail/CVE-2025-69226",
"https://github.com/aio-libs/aiohttp/commit/f2a86fd5ac0383000d1715afddfa704413f0711e"
],
"provider_metadata": {
"cwe_ids": [
"CWE-200",
"CWE-22"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/69xxx/CVE-2025-69226.json"
}
},
"related_cves": [
{
"value": "CVE-2025-69226",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 519254,
"published_at": "2026-01-05T22:52:38.467+00:00"
}