Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain on-path network position
-
ExploitApplication sends request to http:// host URL
-
ExecutionSecure shared cookie attached to cleartext request
-
ImpactAttacker captures cookie value from plaintext traffic
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V14 - Data Protection Encryption of sensitive data
|
| Exploitation Conditions | Requires a specific combination: (1) the aiohttp CookieJar holds a 'shared' cookie - one set without a Domain attribute - that carries the Secure attribute; (2) the application subsequently makes a request over an unencrypted http:// connection to that host; and (3) an attacker occupies an on-path/man-in-the-middle position able to observe the cleartext request. LIMITING FACTORS: only Secure cookies that are also shared (no Domain) are affected - domain-scoped Secure cookies are unaffected; exploitation yields only passive disclosure of the cookie value, not code execution or tampering; and it depends on the application actually initiating a cleartext request, so deployments that exclusively use https:// are not exposed. No end-user interaction or authentication is needed, but network interception capability is mandatory. |
| Impact | This is a moderate, information-disclosure flaw (CWE-311) rather than a high-urgency priority. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N) scores 6.3 (medium) and is internally consistent with the description: the AT:P (attack requirements present) metric captures the fact that the attacker cannot simply trigger this remotely but must be positioned to observe the unencrypted traffic, and VC:L with VI:N/VA:N correctly reflects a limited confidentiality-only impact (leak of one cookie value) with no integrity or availability effect. Exploitation status: no public exploit identified at time of analysis - no CISA KEV listing and no POC was provided in the intelligence. EPSS is not supplied, so probability-of-exploitation cannot be quantified; however, the narrow preconditions (a shared Secure cookie plus an on-path attacker plus the application actually making a cleartext request to the cookie's host) make opportunistic mass exploitation unlikely. There is no conflict between the signals here, but note one caveat: the single CVSS vector provided is CVSS 4.0 only - no CVSS 3.1 vector and no EPSS/SSVC data accompany it, so real-world prioritization rests on the vector plus the confirmed patch metadata. Overall this is a 'defense-in-depth' cookie-handling regression, not a critical remote-code or mass-exploitation issue. |
| Exploit ScenarioDerived | An application uses aiohttp's client CookieJar containing a shared cookie (one with no Domain attribute) marked Secure, and the application issues a request to an http:// (unencrypted) URL for that host. In versions ≤ 3.14.3, aiohttp's filter_cookies() wrongly attaches the Secure cookie to that cleartext request, so an attacker positioned on the network path (passive sniffing or active MITM) reads the cookie value from the plaintext traffic. No public exploit code was identified in the provided data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 19, 2026
AIOHTTP versions up to and including 3.14.3 fail to honor the Secure attribute on 'shared' cookies (cookies set without a Domain attribute) inside CookieJar.filter_cookies(), so a Secure-marked shared cookie can be attached to a plain http:// request. Unauthenticated remote attackers in an on-path/man-in-the-middle position can passively read that cookie value from the cleartext traffic, resulting in limited confidentiality disclosure with no integrity or availability impact. Exploitation requires the application to actually issue an unencrypted request to the cookie's host; domain-scoped Secure cookies are unaffected, and no public exploit code has been identified at time of analysis. The flaw is fixed in aiohttp 3.14.4.
RemediationAI
Vendor-released patch: upgrade aiohttp to 3.14.4 or later (pip install --upgrade 'aiohttp>=3.14.4'), the release that contains commit 999c356d61e966faffa97b06ab0d0455226d36c5 and its regression tests; see https://github.com/aio-libs/aiohttp/releases/tag/v3.14.4 and advisory https://github.com/aio-libs/aiohttp/security/advisories/GHSA-494j-54xm-rwp3. If upgrading is not immediately possible, the most effective compensating control is to ensure the affected application never issues plain http:// requests to hosts holding Secure shared cookies - enforce https:// scheme validation on outbound URLs or route all egress through a TLS-terminating proxy, accepting the trade-off that this may break integrations with internal cleartext-only services. A second option is to avoid storing Secure cookies without a Domain attribute (set an explicit Domain on sensitive cookies so the correctly enforced domain-scoped path is used, or avoid passing cookies via the client's cookies= parameter), at the cost of tighter coupling to specific hosts. Treat any window of exposure as a credential-compromise scenario: rotate session tokens or API keys that were held in Secure shared cookies inside aiohttp clients, and inspect logs/proxies for cleartext requests to cookie-bearing hosts. Note that setting treat_as_secure_origin does not remediate the underlying bug on unpatched versions - it only widens which origins are treated as secure.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
aiohttp is an asynchronous HTTP client/server framework for asyncio and Python; its CookieJar implements RFC 6265-style cookie storage and filtering. The Secure attribute (CWE-311, missing protection of sensitive data at rest/in transit) instructs a user agent to send a cookie only over encrypted channels. aiohttp's filter_cookies() correctly excluded domain-scoped Secure cookies from http:// requests, but the code path for 'shared' cookies - those stored without a Domain attribute, which the jar considers applicable to the request host - skipped the is_secure check entirely. The upstream fix (commit 999c356d61e966faffa97b06ab0d0455226d36c5, released in v3.14.4) adds an explicit if is_not_secure and c["secure"]: continue guard in aiohttp/cookiejar.py so Secure shared cookies are withheld from unencrypted requests, with regression tests confirming that the morsel cached during a prior https:// request cannot bypass the check on a subsequent http:// call. Note that the treat_as_secure_origin option still intentionally allows Secure cookies over designated origins. This is a client-side cookie-handling defect: the risk materializes only when an application built on aiohttp itself originates cleartext HTTP requests while holding Secure shared cookies.
Know when Aiohttp gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
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
AC:H because exploitation needs an on-path/MITM position and a cleartext request to occur; PR:N/UI:N as no auth or victim action is required; C:L for single-cookie disclosure, I:N/A:N.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. Prior to 3.14.4, the Secure attribute for a shared cookie is not enforced. An attacker can consequently cause a shared cookie marked Secure to be sent with an unencrypted request. This issue is fixed in version 3.14.4.
Blast Radius
ecosystem impact- 20 pypi packages depend on aiohttp (15 direct, 5 indirect)
Ecosystem-wide dependent count for version 3.14.4.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. Rated high severity (CVSS 7.5), this vul
aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. Rated high severity (CVSS 7.5), this vul
Out-of-bounds heap read in aiohttp's C HTTP response parser (versions ≤ 3.14.2) allows an attacker-controlled server to
Uncontrolled decompression in aiohttp's WebSocket client prior to version 3.14.2 allows a malicious server to exhaust CP
aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. Rated medium severity (CVSS 6.5), this v
HTTP request smuggling in aiohttp's server-side parser allows unauthenticated remote attackers to inject and misdirect H
AIOHTTP 3.8.1 can report a "ValueError: Invalid IPv6 URL" outcome, which can lead to a Denial of Service (DoS). Rated me
aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. Rated medium severity (CVSS 5.3), this v
aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. Rated medium severity (CVSS 5.3), this v
aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. Rated high severity (CVSS 8.7), this vul
Idle or half-open connections to aiohttp server deployments at version 3.14.3 and earlier are never timed out during the
Unauthenticated remote attackers can exhaust file descriptors in aiohttp-based web services by sending crafted multipart
EUVD-2026-104478
GHSA-494j-54xm-rwp3
NVD
CVE.org
EPSS
Exploit-DB