CVE-2024-42367
In aiohttp, compressed files as symlinks are not protected from path traversal
aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. In versions on the 3.10 branch prior to version 3.10.2, static routes which contain files with compressed variants (.gz or .br extension) are vulnerable to path traversal outside the root directory if those variants are symbolic links. The server protects static routes from path traversal outside the root directory when follow_symlinks=False (default). It does this by resolving the requested URL to an absolute path and then checking that path relative to the root. However, these checks are not performed when looking for compressed variants in the FileResponse class, and symbolic links are then automatically followed when performing the Path.stat() and Path.open() to send the file. Version 3.10.2 contains a patch for the issue.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- Low
- Integrity
- Low
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
4.8
In aiohttp, compressed files as symlinks are not protected from path traversal
aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. In versions on the 3.10 branch prior to version 3.10.2, static routes which contain files with compressed variants (.gz or .br extension) are vulnerable to path traversal outside the root directory if those variants are symbolic links. The server protects static routes from path traversal outside the root directory when follow_symlinks=False (default). It does this by resolving the requested URL to an absolute path and then checking that path relative to the root. However, these checks are not performed when looking for compressed variants in the FileResponse class, and symbolic links are then automatically followed when performing the Path.stat() and Path.open() to send the file. Version 3.10.2 contains a patch for the issue.
- Record
CVE-2024-42367- CVSS 3.1
- 4.8 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N - Weakness
- CWE-61
- Updated
- 2026-11-02
EUVDEUVD-2024-2609
4.8
aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. In versions on the 3.10 branch prior to version 3.10.2, static routes which contain files with compressed variants (.gz or .br extension) are vulnerable to path traversal outside the root directory if those variants are symbolic links. The server protects static routes from path traversal outside the root directory when follow_symlinks=False (default). It does this by resolving the requested URL to an absolute path and then checking that path relative to the root. However, these checks are not performed when looking for compressed variants in the FileResponse class, and symbolic links are then automatically followed when performing the Path.stat() and Path.open() to send the file. Version 3.10.2 contains a patch for the issue.
- Record
EUVD-2024-2609- CVSS 3.1
- 4.8 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-jwhx-xcg6-8xhj
6.3
In aiohttp, compressed files as symlinks are not protected from path traversal
Summary
Static routes which contain files with compressed variants (.gz or .br extension) were vulnerable to path traversal outside the root directory if those variants are symbolic links.
Details
The server protects static routes from path traversal outside the root directory when follow_symlinks=False (default). It does this by resolving the requested URL to an absolute path and then checking that path relative to the root. However, these checks are not performed when looking for compressed variants in the FileResponse class, and symbolic links are then automatically followed when performing Path.stat() and Path.open() to send the file.
Impact
Servers with static routes that contain compressed variants as symbolic links, pointing outside the root directory, or that permit users to upload or create such links, are impacted.
- Record
GHSA-jwhx-xcg6-8xhj- CVSS 4.0
- 6.3 Medium
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N - CVSS 3.1
- 4.8 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N - Weakness
- CWE-61
- Updated
- 2026-11-02
NVD
4.8
aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. In versions on the 3.10 branch prior to version 3.10.2, static routes which contain files with compressed variants (.gz or .br extension) are vulnerable to path traversal outside the root directory if those variants are symbolic links. The server protects static routes from path traversal outside the root directory when follow_symlinks=False (default). It does this by resolving the requested URL to an absolute path and then checking that path relative to the root. However, these checks are not performed when looking for compressed variants in the FileResponse class, and symbolic links are then automatically followed when performing the Path.stat() and Path.open() to send the file. Version 3.10.2 contains a patch for the issue.
- Record
CVE-2024-42367- CVSS 3.1
- 4.8 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N - Weakness
- CWE-61
- Updated
- 2026-11-02
OSV
4.8
In aiohttp, compressed files as symlinks are not protected from path traversal
aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. In versions on the 3.10 branch prior to version 3.10.2, static routes which contain files with compressed variants (.gz or .br extension) are vulnerable to path traversal outside the root directory if those variants are symbolic links. The server protects static routes from path traversal outside the root directory when follow_symlinks=False (default). It does this by resolving the requested URL to an absolute path and then checking that path relative to the root. However, these checks are not performed when looking for compressed variants in the FileResponse class, and symbolic links are then automatically followed when performing the Path.stat() and Path.open() to send the file. Version 3.10.2 contains a patch for the issue.
- Record
CVE-2024-42367- CVSS 3.1
- 4.8 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N - Weakness
- CWE-61
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2024-42367
4.8
aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. In versions on the 3.10 branch prior to version 3.10.2, static routes which contain files with compressed variants (.gz or .br extension) are vulnerable to path traversal outside the root directory if those variants are symbolic links. The server protects static routes from path traversal outside the root directory when follow_symlinks=False (default). It does this by resolving the requested URL to an absolute path and then checking that path relative to the root. However, these checks are not performed when looking for compressed variants in the FileResponse class, and symbolic links are then automatically followed when performing the Path.stat() and Path.open() to send the file. Version 3.10.2 contains a patch for the issue.
- Record
DEBIAN-CVE-2024-42367- CVSS 3.1
- 4.8 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N - Updated
- 2026-11-02
Show 9 moreShow less
OSVGHSA-jwhx-xcg6-8xhj
6.3
In aiohttp, compressed files as symlinks are not protected from path traversal
Summary
Static routes which contain files with compressed variants (.gz or .br extension) were vulnerable to path traversal outside the root directory if those variants are symbolic links.
Details
The server protects static routes from path traversal outside the root directory when follow_symlinks=False (default). It does this by resolving the requested URL to an absolute path and then checking that path relative to the root. However, these checks are not performed when looking for compressed variants in the FileResponse class, and symbolic links are then automatically followed when performing Path.stat() and Path.open() to send the file.
Impact
Servers with static routes that contain compressed variants as symbolic links, pointing outside the root directory, or that permit users to upload or create such links, are impacted.
- Record
GHSA-jwhx-xcg6-8xhj- CVSS 4.0
- 6.3 Medium
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N - CVSS 3.1
- 4.8 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N - Weakness
- CWE-61
- Updated
- 2026-11-02
OSVOESA-2024-2254
4.8
python-aiohttp security update
Async http client/server framework (asyncio).
Security Fix(es):
aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. Prior to version 3.10.2, static routes which contain files with compressed variants (.gz or .br extension) are vulnerable to path traversal outside the root directory if those variants are symbolic links. The server protects static routes from path traversal outside the root directory when follow_symlinks=False (default). It does this by resolving the requested URL to an absolute path and then checking that path relative to the root. However, these checks are not performed when looking for compressed variants in the FileResponse class, and symbolic links are then automatically followed when performing the Path.stat() and Path.open() to send the file. Version 3.10.2 contains a patch for the issue.(CVE-2024-42367)
- Record
OESA-2024-2254- CVSS 3.1
- 4.8 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N - Updated
- 2026-11-02
OSVPYSEC-2026-1108
6.3
In aiohttp, compressed files as symlinks are not protected from path traversal
Summary
Static routes which contain files with compressed variants (.gz or .br extension) were vulnerable to path traversal outside the root directory if those variants are symbolic links.
Details
The server protects static routes from path traversal outside the root directory when follow_symlinks=False (default). It does this by resolving the requested URL to an absolute path and then checking that path relative to the root. However, these checks are not performed when looking for compressed variants in the FileResponse class, and symbolic links are then automatically followed when performing Path.stat() and Path.open() to send the file.
Impact
Servers with static routes that contain compressed variants as symbolic links, pointing outside the root directory, or that permit users to upload or create such links, are impacted.
- Record
PYSEC-2026-1108- CVSS 4.0
- 6.3 Medium
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N - CVSS 3.1
- 4.8 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N - Updated
- 2026-11-02
OSVUBUNTU-CVE-2024-42367
4.8
aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. In versions on the 3.10 branch prior to version 3.10.2, static routes which contain files with compressed variants (.gz or .br extension) are vulnerable to path traversal outside the root directory if those variants are symbolic links. The server protects static routes from path traversal outside the root directory when follow_symlinks=False (default). It does this by resolving the requested URL to an absolute path and then checking that path relative to the root. However, these checks are not performed when looking for compressed variants in the FileResponse class, and symbolic links are then automatically followed when performing the Path.stat() and Path.open() to send the file. Version 3.10.2 contains a patch for the issue.
- Record
UBUNTU-CVE-2024-42367- CVSS 3.1
- 4.8 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N - Updated
- 2026-11-02
OSVAZL-47754 No score
CVE-2024-42367 affecting package python-aiohttp 3.6.2-3
aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. In versions on the 3.10 branch prior to version 3.10.2, static routes which contain files with compressed variants (.gz or .br extension) are vulnerable to path traversal outside the root directory if those variants are symbolic links. The server protects static routes from path traversal outside the root directory when follow_symlinks=False (default). It does this by resolving the requested URL to an absolute path and then checking that path relative to the root. However, these checks are not performed when looking for compressed variants in the FileResponse class, and symbolic links are then automatically followed when performing the Path.stat() and Path.open() to send the file. Version 3.10.2 contains a patch for the issue.
- Record
AZL-47754- Updated
- 2026-11-02
OSVAZL-47763 No score
CVE-2024-42367 affecting package python-aiohttp 3.6.2-3
aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. In versions on the 3.10 branch prior to version 3.10.2, static routes which contain files with compressed variants (.gz or .br extension) are vulnerable to path traversal outside the root directory if those variants are symbolic links. The server protects static routes from path traversal outside the root directory when follow_symlinks=False (default). It does this by resolving the requested URL to an absolute path and then checking that path relative to the root. However, these checks are not performed when looking for compressed variants in the FileResponse class, and symbolic links are then automatically followed when performing the Path.stat() and Path.open() to send the file. Version 3.10.2 contains a patch for the issue.
- Record
AZL-47763- Updated
- 2026-11-05
OSVopenSUSE-SU-2024:14280-1 No score
python310-aiohttp-3.10.5-1.1 on GA media
These are all security issues fixed in the python310-aiohttp-3.10.5-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:14280-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:11467-1 No score
python313-aiohttp-3.14.3-1.1 on GA media
These are all security issues fixed in the python313-aiohttp-3.14.3-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11467-1- Updated
- 2026-11-02
OSVSUSE-SU-2024:3110-1 No score
Security update for python-aiohttp
This update for python-aiohttp fixes the following issues:
- CVE-2024-42367: Fixed path traversal outside the root directory when requests involve compressed files as symbolic links (bsc#1229226)
- Record
SUSE-SU-2024:3110-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
aiohttpPyPI |
3.10.0b1 up to 3.10.2 | 3.10.2 |
python-aiohttpAzure Linux:2 |
through 3.6.2-3 | None known |
python-aiohttpAzure Linux:3 |
through 3.6.2-3 | None known |
python-aiohttpDebian:12 |
All versions, plus listed versions 3.10.0-13.10.1-13.10.10-13.10.10-23.10.11-1 Show 30 moreShow less3.10.3-13.10.3-23.10.3-33.10.4-13.10.5-13.10.6-13.10.8-13.11.15-13.11.16-13.12.15-13.13.0-13.13.1-13.13.3-13.13.3-23.13.3-33.13.5-13.14.0-13.14.1-13.14.1-23.14.1-33.14.1-43.14.1-53.14.3-13.8.4-13.8.4-1+deb12u13.8.4-1+deb12u23.8.5-13.8.6-13.9.1-13.9.5-1 |
None known |
python-aiohttpDebian:13 |
before 3.10.3-2 | 3.10.3-2 |
python-aiohttpDebian:14 |
before 3.10.3-2 | 3.10.3-2 |
aiohttpPyPI |
3.10.0b1 up to 3.10.2, plus listed versions 3.10.03.10.0rc03.10.1 |
3.10.2 |
python-aiohttpopenEuler:24.03-LTS |
before 3.9.3-5.oe2403 | 3.9.3-5.oe2403 |
python-aiohttpSUSE:Linux Enterprise Module for Public Cloud 15 SP4 |
before 3.9.3-150400.10.24.1 | 3.9.3-150400.10.24.1 |
python-aiohttpSUSE:Linux Enterprise Module for Python 3 15 SP5 |
before 3.9.3-150400.10.24.1 | 3.9.3-150400.10.24.1 |
Show 5 moreShow less
| Package | Affected | Fixed |
|---|---|---|
python-aiohttpSUSE:Linux Enterprise Module for Python 3 15 SP6 |
before 3.9.3-150400.10.24.1 | 3.9.3-150400.10.24.1 |
python-aiohttpopenSUSE:Leap 15.5 |
before 3.9.3-150400.10.24.1 | 3.9.3-150400.10.24.1 |
python-aiohttpopenSUSE:Leap 15.6 |
before 3.9.3-150400.10.24.1 | 3.9.3-150400.10.24.1 |
python-aiohttpopenSUSE:Tumbleweed |
before 3.10.5-1.1 | 3.10.5-1.1 |
python-aiohttpopenSUSE:Tumbleweed From an advisory covering 10 CVEs |
before 3.14.3-1.1 | 3.14.3-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| facts | OSV | |
| affected | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2024-42367 is a medium vulnerability (CVSS 4.8) in Aio-libs Aiohttp, published August 9, 2024. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.65%, the 51st percentile. Fixed in aiohttp 3.10.2.
References
github.com/aio-libs/aiohttp/security/advisories/GHSA-jwhx-xcg6-8xhj
github.com/aio-libs/aiohttp/pull/8653
github.com/aio-libs/aiohttp/commit/ce2e9758814527589b10759a20783fb03b98339f
github.com/aio-libs/aiohttp/blob/e0ff5246e1d29b7710ab1a2bbc972b48169f1c05/aiohttp/web_fileresponse.py
github.com/aio-libs/aiohttp/blob/e0ff5246e1d29b7710ab1a2bbc972b48169f1c05/aiohttp/web_urldispatcher.py
nvd.nist.gov/vuln/detail/CVE-2024-42367
Show 20 moreShow less
github.com/advisories/GHSA-jwhx-xcg6-8xhj
github.com/CVEProject/cvelistV5/tree/main/cves/2024/42xxx/CVE-2024-42367.json
security-tracker.debian.org/tracker/CVE-2024-42367
github.com/aio-libs/aiohttp
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2024-2254
pypi.org/project/aiohttp
suse.com/support/update/announcement/2024/suse-su-20243110-1
bugzilla.suse.com/1229226
suse.com/security/cve/CVE-2024-42367
ubuntu.com/security/CVE-2024-42367
cve.org/CVERecord?id=CVE-2024-42367
suse.com/security/cve/CVE-2021-21330
suse.com/security/cve/CVE-2023-47627
suse.com/security/cve/CVE-2023-47641
suse.com/security/cve/CVE-2023-49081
suse.com/security/cve/CVE-2024-23334
suse.com/security/cve/CVE-2024-27306
suse.com/security/cve/CVE-2026-59881
suse.com/security/cve/CVE-2026-69243
suse.com/security/cve/CVE-2026-69244