Skip to content

GHSA-mqqc-3gqh-h2x8 CVE-2025-69225 PYSEC-2026-1109

AIOHTTP has unicode match groups in regexes for ASCII protocol elements

Medium PyPI
Severity
0.0 / 10
Medium · CVSS 4.0
Exploit chance (EPSS)
0.28%
Chance of exploitation in the next 30 days. Higher than 20.78% of scored vulnerabilities.
Known exploited
No
Not in CISA's catalog
Weakness
CWE-444 Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
Fix
3.13.3
Upgrade aiohttp to this version or later

Description

Summary

The parser allows non-ASCII decimals to be present in the Range header.

Impact

There is no known impact, but there is the possibility that there's a method to exploit a request smuggling vulnerability.


Patch: https://github.com/aio-libs/aiohttp/commit/c7b7a044f88c71cefda95ec75cdcfaa4792b3b96

Affected versions

PyPI

PackageVulnerableFixed in
aiohttp
< 3.13.3
3.13.3

How to fix

Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.

aiohttp PyPI → 3.13.3

pip
pip install --upgrade "aiohttp>=3.13.3"
poetry
poetry add "aiohttp>=3.13.3"
uv
uv add "aiohttp>=3.13.3"

Severity breakdown

CVSS 4.0 0.0

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

Attack vector
Network
Attack complexity
Low
Attack requirements
None
Privileges required
None
User interaction
None
Confidentiality (vulnerable system)
None
Integrity (vulnerable system)
Low
Availability (vulnerable system)
None
Confidentiality (subsequent systems)
None
Integrity (subsequent systems)
None
Availability (subsequent systems)
None
Exploit maturity
Unreported

CVSS 3.1 5.3

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
None

Weakness

CWE-444: Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')

The product acts as an intermediary HTTP agent (such as a proxy or firewall) in the data flow between two entities such as a client and server, but it does not interpret malformed HTTP requests or responses in ways that are consistent with how the messages will be processed by those entities that are at the ultimate destination.

How to prevent it
  • Implementation: Use a web server that employs a strict HTTP parsing procedure, such as Apache [REF-433].
  • Implementation: Use only SSL communication.
  • Implementation: Terminate the client session after each request.
  • System Configuration: Turn all pages to non-cacheable.

References

Timeline

  1. Published
  2. Last updated by the source
  3. Latest EPSS score
AdvisorySeverityWhy it's related
GHSA-pqxq-w44r-73xw
AIOHTTP: Pure-Python parser request smuggling
Medium Also affects aiohttp
GHSA-gx76-c99x-2c96
AIOHTTP: Cookie from subdomain can remove Host-Only Scope from existing cookies
Low Also affects aiohttp
GHSA-f9xw-jh8m-3mwq
AIOHTTP: Absolute-form request targets can spoof Request.scheme
Medium Also affects aiohttp
GHSA-9xw5-w5jj-pvcg
AIOHTTP: File descriptor exhaustion in multipart requests
High Also affects aiohttp
GHSA-6cjc-53gc-5rqm
AIOHTTP: Connector pool exhaustion via Max-Age overflow
Medium Also affects aiohttp
GHSA-5wr8-gcqf-gqf3
aiohttp server lacks an initial request/header timeout
High Also affects aiohttp
GHSA-494j-54xm-rwp3
AIOHTTP: Secure attribute not enforced for shared cookie
Medium Also affects aiohttp
GHSA-2g87-pp6c-29x5
aiohttp: Multiple instances of excessive or unbounded memory/CPU use
High Also affects aiohttp
Is this in your code?

MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.

Check your repos with MergeHarbor