CVE Details
Basic Information
| Title | Tarfile infinite loop during parsing with negative member offset |
|---|---|
| Type | cve |
| Published | 2025-07-28T18:42:44.847Z |
| Modified | 2025-07-28T19:30:55.878Z |
Product Information
| Vendor | Python Software Foundation |
|---|---|
| Product | CPython |
| Version | 0 |
CVSS Information
| Base Score | 7.5 (HIGH) |
|---|---|
| Attack Vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
Affected Products
- Python Software Foundation CPython 0
Additional Information
| CWE List | CWE-835 |
|---|---|
| Source | PSF |
Description
There is a defect in the CPython “tarfile” module affecting the “TarFile” extraction and entry enumeration APIs. The tar implementation would process tar archives with negative offsets without error, resulting in an infinite loop and deadlock during the parsing of maliciously crafted tar archives.
This vulnerability can be mitigated by including the following patch after importing the “tarfile” module:
import tarfile
def _block_patched(self, count):
if count < 0: # pragma: no cover
raise tarfile.InvalidHeaderError(“invalid offset”)
return _block_patched._orig_block(self, count)
_block_patched._orig_block = tarfile.TarInfo._block
tarfile.TarInfo._block = _block_patched
References
- https://github.com/python/cpython/issues/130577
- https://github.com/python/cpython/pull/137027
- https://mail.python.org/archives/list/[email protected]/thread/ZULLF3IZ726XP5EY7XJ7YIN3K5MDYR2D/
- https://github.com/python/cpython/commit/7040aa54f14676938970e10c5f74ea93cd56aa38
- https://github.com/python/cpython/commit/cdae923ffe187d6ef916c0f665a31249619193fe