CVE-2026-54276
AIOHTTP: DigestAuthMiddleware Applies Credentials to Cross-Origin Redirect Challenges
AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. Prior to 3.14.1, DigestAuthMiddleware can send an authentication response after following a cross-origin redirect. This likely requires an open redirect vulnerability or similar on the target domain for an attacker to be able to execute. Further, the attacker is only receiving the digest, so should only be able to extract the user's credentials if the cryptography is weak or there is some kind of password reuse. This vulnerability is fixed in 3.14.1.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- Low
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
6.3
AIOHTTP: DigestAuthMiddleware Applies Credentials to Cross-Origin Redirect Challenges
AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. Prior to 3.14.1, DigestAuthMiddleware can send an authentication response after following a cross-origin redirect. This likely requires an open redirect vulnerability or similar on the target domain for an attacker to be able to execute. Further, the attacker is only receiving the digest, so should only be able to extract the user's credentials if the cryptography is weak or there is some kind of password reuse. This vulnerability is fixed in 3.14.1.
- Record
CVE-2026-54276- CVSS 4.0
- 6.3 Medium
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 - Weakness
- CWE-200, CWE-522
- Updated
- 2026-11-02
EUVDEUVD-2026-38313
6.3
AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. Prior to 3.14.1, DigestAuthMiddleware can send an authentication response after following a cross-origin redirect. This likely requires an open redirect vulnerability or similar on the target domain for an attacker to be able to execute. Further, the attacker is only receiving the digest, so should only be able to extract the user's credentials if the cryptography is weak or there is some kind of password reuse. This vulnerability is fixed in 3.14.1.
- Record
EUVD-2026-38313- CVSS 4.0
- 6.3 Medium
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 - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-hpj7-wq8m-9hgp
6.3
aiohttp: DigestAuthMiddleware Applies Credentials to Cross-Origin Redirect Challenges
Summary
DigestAuthMiddleware can send an authentication response after following a cross-origin redirect.
Impact
If the client follows a redirect (the default option) to an attacker controlled domain, the attacker may be able to extract the auth digest.
This likely requires an open redirect vulnerability or similar on the target domain for an attacker to be able to execute. Further, the attacker is only receiving the digest, so should only be able to extract the user's credentials if the cryptography is weak or there is some kind of password reuse.
Workaround
Disable follow_redirects if this is a concern.
Patch: https://github.com/aio-libs/aiohttp/commit/38d16060037e1bfcd6d677abababa3c2a4bb58fa
- Record
GHSA-hpj7-wq8m-9hgp- CVSS 4.0
- 6.3 Medium
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 - Weakness
- CWE-200, CWE-522
- Updated
- 2026-11-02
NVD
6.3
AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. Prior to 3.14.1, DigestAuthMiddleware can send an authentication response after following a cross-origin redirect. This likely requires an open redirect vulnerability or similar on the target domain for an attacker to be able to execute. Further, the attacker is only receiving the digest, so should only be able to extract the user's credentials if the cryptography is weak or there is some kind of password reuse. This vulnerability is fixed in 3.14.1.
- Record
CVE-2026-54276- CVSS 4.0
- 6.3 Medium
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Weakness
- CWE-200, CWE-522, CWE-601
- Updated
- 2026-11-02
OSV
6.3
AIOHTTP: DigestAuthMiddleware Applies Credentials to Cross-Origin Redirect Challenges
AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. Prior to 3.14.1, DigestAuthMiddleware can send an authentication response after following a cross-origin redirect. This likely requires an open redirect vulnerability or similar on the target domain for an attacker to be able to execute. Further, the attacker is only receiving the digest, so should only be able to extract the user's credentials if the cryptography is weak or there is some kind of password reuse. This vulnerability is fixed in 3.14.1.
- Record
CVE-2026-54276- CVSS 4.0
- 6.3 Medium
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 - Weakness
- CWE-200, CWE-522
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-54276
6.1
AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. Prior to 3.14.1, DigestAuthMiddleware can send an authentication response after following a cross-origin redirect. This likely requires an open redirect vulnerability or similar on the target domain for an attacker to be able to execute. Further, the attacker is only receiving the digest, so should only be able to extract the user's credentials if the cryptography is weak or there is some kind of password reuse. This vulnerability is fixed in 3.14.1.
- Record
DEBIAN-CVE-2026-54276- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Updated
- 2026-11-02
Show 6 moreShow less
OSVGHSA-hpj7-wq8m-9hgp
6.3
aiohttp: DigestAuthMiddleware Applies Credentials to Cross-Origin Redirect Challenges
Summary
DigestAuthMiddleware can send an authentication response after following a cross-origin redirect.
Impact
If the client follows a redirect (the default option) to an attacker controlled domain, the attacker may be able to extract the auth digest.
This likely requires an open redirect vulnerability or similar on the target domain for an attacker to be able to execute. Further, the attacker is only receiving the digest, so should only be able to extract the user's credentials if the cryptography is weak or there is some kind of password reuse.
Workaround
Disable follow_redirects if this is a concern.
Patch: https://github.com/aio-libs/aiohttp/commit/38d16060037e1bfcd6d677abababa3c2a4bb58fa
- Record
GHSA-hpj7-wq8m-9hgp- CVSS 4.0
- 6.3 Medium
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 - Weakness
- CWE-200, CWE-522
- Updated
- 2026-11-02
OSVOESA-2026-2838
6.6
python-aiohttp security update
Async http client/server framework (asyncio).
Security Fix(es):
No limit was present on the number of pipelined requests that could be queued. Impact An attacker may be able to use pipelined requests to use excessive amounts of memory, potentially leading to DoS.(CVE-2026-54273)
If an attacker sends large incomplete websocket frame payloads, it may be possible to bypass the usual size limits on memory use. Impact If a web application has WebSocket endpoints, it may be possible for an attacker to execute a DoS attack through excessive memory use(CVE-2026-54274)
If an application makes multiple requests to the same domain, but with different per-request server_hostname parameters, then the later calls may succeed by reusing the existing connection when they should have been rejected due to the TLS SNI check.(CVE-2026-54275)
If the client follows a redirect (the default option) to an attacker controlled domain, the attacker may be able to extract the auth digest.
This likely requires an open redirect vulnerability or similar on the target domain for an attacker to be able to execute. Further, the attacker is only receiving the digest, so should only be able to extract the user's credentials if the cryptography is weak or there is some kind of password reuse.(CVE-2026-54276)
It is possible to bypass the max_line_size check in parts of an HTTP request in the C parser. Impact If using the optimized C parser (the default in pre-built wheels), then an attacker may be able to send oversized lines through the HTTP parser and use an excessive amount of memory, potentially leading to DoS.(CVE-2026-54277)
An attacker may be able to send a compressed payload in specific situations that could be decompressed into memory, potentially leading to DoS (a zip bomb edge case).(CVE-2026-54278)
Host-only cookies If you save a cookie and later restore it, you lose the host-only status. CookieJar.save()CookieJar.load() affects host-only cookies loaded from disk that may be sent to subdomains that should previously have been banned(CVE-2026-54279)
Payload resources are not closed correctly when a client disconnects in the middle of a write. Impact If a payload is using an open file or similar limited resource, then an attacker may be able to cause resource starvation temporarily until garbage collection or similar closes the file.(CVE-2026-54280)
- Record
OESA-2026-2838- CVSS 4.0
- 6.6 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:U - Updated
- 2026-11-02
OSVOESA-2026-2839
6.6
python-aiohttp security update
Async http client/server framework (asyncio).
Security Fix(es):
No limit was present on the number of pipelined requests that could be queued. Impact An attacker may be able to use pipelined requests to use excessive amounts of memory, potentially leading to DoS.(CVE-2026-54273)
If an attacker sends large incomplete websocket frame payloads, it may be possible to bypass the usual size limits on memory use. Impact If a web application has WebSocket endpoints, it may be possible for an attacker to execute a DoS attack through excessive memory use(CVE-2026-54274)
If an application makes multiple requests to the same domain, but with different per-request server_hostname parameters, then the later calls may succeed by reusing the existing connection when they should have been rejected due to the TLS SNI check.(CVE-2026-54275)
If the client follows a redirect (the default option) to an attacker controlled domain, the attacker may be able to extract the auth digest.
This likely requires an open redirect vulnerability or similar on the target domain for an attacker to be able to execute. Further, the attacker is only receiving the digest, so should only be able to extract the user's credentials if the cryptography is weak or there is some kind of password reuse.(CVE-2026-54276)
It is possible to bypass the max_line_size check in parts of an HTTP request in the C parser. Impact If using the optimized C parser (the default in pre-built wheels), then an attacker may be able to send oversized lines through the HTTP parser and use an excessive amount of memory, potentially leading to DoS.(CVE-2026-54277)
An attacker may be able to send a compressed payload in specific situations that could be decompressed into memory, potentially leading to DoS (a zip bomb edge case).(CVE-2026-54278)
Host-only cookies If you save a cookie and later restore it, you lose the host-only status. CookieJar.save()CookieJar.load() affects host-only cookies loaded from disk that may be sent to subdomains that should previously have been banned(CVE-2026-54279)
Payload resources are not closed correctly when a client disconnects in the middle of a write. Impact If a payload is using an open file or similar limited resource, then an attacker may be able to cause resource starvation temporarily until garbage collection or similar closes the file.(CVE-2026-54280)
- Record
OESA-2026-2839- CVSS 4.0
- 6.6 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:U - Updated
- 2026-11-02
OSVPYSEC-2026-2109
6.1
AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. Prior to 3.14.1, DigestAuthMiddleware can send an authentication response after following a cross-origin redirect. This likely requires an open redirect vulnerability or similar on the target domain for an attacker to be able to execute. Further, the attacker is only receiving the digest, so should only be able to extract the user's credentials if the cryptography is weak or there is some kind of password reuse. This vulnerability is fixed in 3.14.1.
- Record
PYSEC-2026-2109- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-54276
6.3
AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. Prior to 3.14.1, DigestAuthMiddleware can send an authentication response after following a cross-origin redirect. This likely requires an open redirect vulnerability or similar on the target domain for an attacker to be able to execute. Further, the attacker is only receiving the digest, so should only be able to extract the user's credentials if the cryptography is weak or there is some kind of password reuse. This vulnerability is fixed in 3.14.1.
- Record
UBUNTU-CVE-2026-54276- CVSS 4.0
- 6.3 Medium
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 - CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Updated
- 2026-11-02
OSVROOT-APP-PYPI-CVE-2026-54276 No score
CVE-2026-54276 in aiohttp - Patched by Root
Root has patched CVE-2026-54276 in the aiohttp package for Root:PyPI. Multiple fixed versions available.
- Record
ROOT-APP-PYPI-CVE-2026-54276- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
aiohttpPyPI |
through 3.14.0 | 3.14.1 |
python-aiohttpDebian:14 |
before 3.14.1-1, plus listed versions 3.11.16-13.12.15-13.13.0-13.13.1-13.13.3-1 Show 4 moreShow less3.13.3-23.13.3-33.13.5-13.14.0-1 |
3.14.1-1 |
aiohttpPyPI |
before 3.14.1, plus listed versions 0.10.10.00.10.10.10.20.11.0 Show 45 moreShow less0.12.00.13.00.13.10.14.00.14.10.14.20.14.30.14.40.15.00.15.10.15.20.15.30.16.00.16.10.16.20.16.30.16.40.16.50.16.60.17.00.17.10.17.20.17.30.17.40.18.00.18.10.18.20.18.30.18.40.19.00.20.20.00.20.10.20.20.21.00.21.10.21.20.21.40.21.50.21.60.22.00.22.0a00.22.0b00.22.0b10.22.0b2 |
3.14.1 |
python-aiohttpopenEuler:24.03-LTS-SP3 From an advisory covering 8 CVEs |
before 3.14.1-1.oe2403sp3 | 3.14.1-1.oe2403sp3 |
python-aiohttpopenEuler:24.03-LTS-SP1 From an advisory covering 8 CVEs |
before 3.14.1-1.oe2403sp1 | 3.14.1-1.oe2403sp1 |
aiohttpRoot:PyPI |
before 3.12.15+aikido.6 | 3.12.15+aikido.63.14.0+aikido.23.8.6+aikido.83.8.6+aikido.93.12.14+aikido.63.13.5+aikido.33.8.6+aikido.103.13.3+aikido.123.13.4+aikido.33.13.3+aikido.133.13.4+aikido.43.8.6+aikido.113.12.14+aikido.73.8.6+aikido.123.13.5+aikido.43.8.6+aikido.133.14.0+aikido.33.13.3+aikido.143.12.14+aikido.83.13.4+aikido.53.12.15+aikido.73.13.3+aikido.153.13.4+aikido.63.12.15+aikido.83.14.0+aikido.43.13.5+aikido.53.8.6+aikido.143.12.15+aikido.93.12.14+aikido.93.13.5+aikido.63.13.3+aikido.163.13.4+aikido.73.14.0+aikido.53.14.0+aikido.63.8.6+aikido.15 |
python-aiohttpUbuntu:Pro:16.04:LTS |
All versions, plus listed versions 0.17.2-10.17.4-10.17.4-1build10.20.2-10.20.2-1ubuntu0.1~esm1 |
None known |
python-aiohttpUbuntu:Pro:18.04:LTS |
All versions, plus listed versions 2.2.3-1build12.2.3-22.3.6-13.0.1-13.0.1-1ubuntu0.1~esm1 Show 4 moreShow less3.0.1-1ubuntu0.1~esm43.0.1-1ubuntu0.1~esm53.0.1-1ubuntu0.1~esm63.0.1-1ubuntu0.1~esm7 |
None known |
python-aiohttpUbuntu:Pro:20.04:LTS |
All versions, plus listed versions 3.5.4-13.5.4-1build13.6.1-13.6.2-13.6.2-1build1 Show 7 moreShow less3.6.2-1ubuntu0.1~esm13.6.2-1ubuntu13.6.2-1ubuntu1+esm13.6.2-1ubuntu1+esm33.6.2-1ubuntu1+esm43.6.2-1ubuntu1+esm53.6.2-1ubuntu1+esm6 |
None known |
python-aiohttpUbuntu:Pro:22.04:LTS |
All versions, plus listed versions 3.7.4-13.7.4-1build23.8.1-33.8.1-43.8.1-4build1 Show 4 moreShow less3.8.1-4ubuntu0.23.8.1-4ubuntu0.2+esm13.8.1-4ubuntu0.2+esm23.8.1-4ubuntu0.2+esm3 |
None known |
Show 4 moreShow less
| Package | Affected | Fixed |
|---|---|---|
python-aiohttpUbuntu:Pro:24.04:LTS |
All versions, plus listed versions 3.8.4-13.9.1-13.9.1-1build13.9.1-1ubuntu0.13.9.1-1ubuntu0.1+esm13.9.1-1ubuntu0.1+esm23.9.1-1ubuntu0.1+esm3 |
None known |
python-aiohttpUbuntu:25.10 |
All versions, plus listed versions 3.10.11-1build13.11.16-13.11.16-1ubuntu0.1 |
None known |
python-aiohttpUbuntu:26.10 |
All versions, plus listed versions 3.13.3-3ubuntu13.14.1-43.14.1-53.14.3-1 |
None known |
python-aiohttpUbuntu:Pro:26.04:LTS |
All versions, plus listed versions 3.11.16-13.13.1-13.13.3-33.13.3-3ubuntu13.13.3-3ubuntu1+esm1 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-54276 is a medium vulnerability (CVSS 6.3) in Aio-libs Aiohttp, published June 15, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.31%, the 23rd percentile. Fixed in aiohttp 3.14.1.
References
github.com/aio-libs/aiohttp/security/advisories/GHSA-hpj7-wq8m-9hgp
github.com/aio-libs/aiohttp/commit/38d16060037e1bfcd6d677abababa3c2a4bb58fa
github.com/advisories/GHSA-hpj7-wq8m-9hgp
github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54276.json
nvd.nist.gov/vuln/detail/CVE-2026-54276
security-tracker.debian.org/tracker/CVE-2026-54276
Show 12 moreShow less
github.com/aio-libs/aiohttp
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-2838
nvd.nist.gov/vuln/detail/CVE-2026-54273
nvd.nist.gov/vuln/detail/CVE-2026-54274
nvd.nist.gov/vuln/detail/CVE-2026-54275
nvd.nist.gov/vuln/detail/CVE-2026-54277
nvd.nist.gov/vuln/detail/CVE-2026-54278
nvd.nist.gov/vuln/detail/CVE-2026-54279
nvd.nist.gov/vuln/detail/CVE-2026-54280
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-2839
ubuntu.com/security/CVE-2026-54276
cve.org/CVERecord?id=CVE-2026-54276
Left out here: 257 versions. The JSON record has them.