cve-2025-4517
Vulnerability from cvelistv5
Published
2025-06-03 12:58
Modified
2025-06-10 13:25
Severity ?
EPSS score ?
Summary
Arbitrary writes via tarfile realpath overflow
References
Impacted products
▼ | Vendor | Product |
---|---|---|
Python Software Foundation | CPython |
{ "containers": { "adp": [ { "metrics": [ { "other": { "content": { "id": "CVE-2025-4517", "options": [ { "Exploitation": "none" }, { "Automatable": "yes" }, { "Technical Impact": "total" } ], "role": "CISA Coordinator", "timestamp": "2025-06-03T13:28:11.482037Z", "version": "2.0.3" }, "type": "ssvc" } } ], "providerMetadata": { "dateUpdated": "2025-06-10T13:25:08.659Z", "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "shortName": "CISA-ADP" }, "title": "CISA ADP Vulnrichment" } ], "cna": { "affected": [ { "defaultStatus": "unaffected", "modules": [ "tarfile" ], "product": "CPython", "repo": "https://github.com/python/cpython", "vendor": "Python Software Foundation", "versions": [ { "lessThan": "3.9.23", "status": "affected", "version": "0", "versionType": "python" }, { "lessThan": "3.10.18", "status": "affected", "version": "3.10.0", "versionType": "python" }, { "lessThan": "3.11.13", "status": "affected", "version": "3.11.0", "versionType": "python" }, { "lessThan": "3.12.11", "status": "affected", "version": "3.12.0", "versionType": "python" }, { "lessThan": "3.13.4", "status": "affected", "version": "3.13.0", "versionType": "python" }, { "lessThan": "3.14.0", "status": "affected", "version": "3.14.0a1", "versionType": "python" } ] } ], "credits": [ { "lang": "en", "type": "reporter", "value": "Caleb Brown (Google)" }, { "lang": "en", "type": "remediation developer", "value": "Petr Viktorin" }, { "lang": "en", "type": "remediation developer", "value": "Serhiy Storchaka" }, { "lang": "en", "type": "remediation reviewer", "value": "Hugo van Kemenade" }, { "lang": "en", "type": "remediation reviewer", "value": "\u0141ukasz Langa" }, { "lang": "en", "type": "remediation reviewer", "value": "Thomas Wouters" }, { "lang": "en", "type": "coordinator", "value": "Seth Larson" } ], "descriptions": [ { "lang": "en", "supportingMedia": [ { "base64": false, "type": "text/html", "value": "\u003cp\u003e\u003cspan style=\"background-color: rgb(255, 255, 255);\"\u003eAllows arbitrary filesystem writes outside the extraction directory during extraction with \u003c/span\u003e\u003ccode\u003efilter=\"data\"\u003c/code\u003e\u003cspan style=\"background-color: rgb(255, 255, 255);\"\u003e.\u003c/span\u003e\u003cbr\u003e\u003c/p\u003e\u003cp\u003eYou are affected by this vulnerability if using the \u003ccode\u003etarfile\u003c/code\u003e\u0026nbsp;module to extract untrusted tar archives using \u003ccode\u003eTarFile.extractall()\u003c/code\u003e\u0026nbsp;or \u003ccode\u003eTarFile.extract()\u003c/code\u003e\u0026nbsp;using the \u003ccode\u003efilter=\u003c/code\u003e\u0026nbsp;parameter with a value of \u003ccode\u003e\"data\"\u003c/code\u003e\u0026nbsp;or \u003ccode\u003e\"tar\"\u003c/code\u003e. See the tarfile \u003ca target=\"_blank\" rel=\"nofollow\" href=\"https://docs.python.org/3/library/tarfile.html#tarfile-extraction-filter\"\u003eextraction filters documentation\u003c/a\u003e\u0026nbsp;for more information.\u003c/p\u003e\u003cp\u003eNote that for Python 3.14 or later the default value of \u003ccode\u003efilter=\u003c/code\u003e\u0026nbsp;changed from \"no filtering\" to `\"data\", so if you are relying on this new default behavior then your usage is also affected.\u003c/p\u003e\u003cp\u003eNote that none of these vulnerabilities significantly affect the installation of source distributions which are tar archives as source distributions already allow arbitrary code execution during the build process. However when evaluating source distributions it\u0027s important to avoid installing source distributions with suspicious links.\u003cbr\u003e\u003c/p\u003e" } ], "value": "Allows arbitrary filesystem writes outside the extraction directory during extraction with filter=\"data\".\n\n\nYou are affected by this vulnerability if using the tarfile\u00a0module to extract untrusted tar archives using TarFile.extractall()\u00a0or TarFile.extract()\u00a0using the filter=\u00a0parameter with a value of \"data\"\u00a0or \"tar\". See the tarfile extraction filters documentation https://docs.python.org/3/library/tarfile.html#tarfile-extraction-filter \u00a0for more information.\n\nNote that for Python 3.14 or later the default value of filter=\u00a0changed from \"no filtering\" to `\"data\", so if you are relying on this new default behavior then your usage is also affected.\n\nNote that none of these vulnerabilities significantly affect the installation of source distributions which are tar archives as source distributions already allow arbitrary code execution during the build process. However when evaluating source distributions it\u0027s important to avoid installing source distributions with suspicious links." } ], "metrics": [ { "cvssV3_1": { "attackComplexity": "LOW", "attackVector": "NETWORK", "availabilityImpact": "LOW", "baseScore": 9.4, "baseSeverity": "CRITICAL", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "privilegesRequired": "NONE", "scope": "UNCHANGED", "userInteraction": "NONE", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L", "version": "3.1" }, "format": "CVSS", "scenarios": [ { "lang": "en", "value": "GENERAL" } ] } ], "problemTypes": [ { "descriptions": [ { "cweId": "CWE-22", "description": "CWE-22 Improper Limitation of a Pathname to a Restricted Directory (\u0027Path Traversal\u0027)", "lang": "en", "type": "CWE" } ] } ], "providerMetadata": { "dateUpdated": "2025-06-05T13:58:42.312Z", "orgId": "28c92f92-d60d-412d-b760-e73465c3df22", "shortName": "PSF" }, "references": [ { "tags": [ "issue-tracking" ], "url": "https://github.com/python/cpython/issues/135034" }, { "tags": [ "patch" ], "url": "https://github.com/python/cpython/pull/135037" }, { "tags": [ "vendor-advisory" ], "url": "https://mail.python.org/archives/list/security-announce@python.org/thread/MAXIJJCUUMCL7ATZNDVEGGHUMQMUUKLG/" }, { "tags": [ "patch" ], "url": "https://github.com/python/cpython/commit/3612d8f51741b11f36f8fb0494d79086bac9390a" }, { "tags": [ "patch" ], "url": "https://github.com/python/cpython/commit/9e0ac76d96cf80b49055f6d6b9a6763fb9215c2a" }, { "tags": [ "mitigation" ], "url": "https://gist.github.com/sethmlarson/52398e33eff261329a0180ac1d54f42f" }, { "tags": [ "patch" ], "url": "https://github.com/python/cpython/commit/19de092debb3d7e832e5672cc2f7b788d35951da" }, { "tags": [ "patch" ], "url": "https://github.com/python/cpython/commit/aa9eb5f757ceff461e6e996f12c89e5d9b583b01" }, { "tags": [ "patch" ], "url": "https://github.com/python/cpython/commit/28463dba112af719df1e8b0391c46787ad756dd9" }, { "tags": [ "patch" ], "url": "https://github.com/python/cpython/commit/4633f3f497b1ff70e4a35b6fe2c907cbe2d4cb2e" }, { "tags": [ "patch" ], "url": "https://github.com/python/cpython/commit/9c1110ef6652687d7c55f590f909720eddde965a" }, { "tags": [ "patch" ], "url": "https://github.com/python/cpython/commit/dd8f187d0746da151e0025c51680979ac5b4cfb1" } ], "source": { "discovery": "UNKNOWN" }, "title": "Arbitrary writes via tarfile realpath overflow", "x_generator": { "engine": "Vulnogram 0.2.0" } } }, "cveMetadata": { "assignerOrgId": "28c92f92-d60d-412d-b760-e73465c3df22", "assignerShortName": "PSF", "cveId": "CVE-2025-4517", "datePublished": "2025-06-03T12:58:50.352Z", "dateReserved": "2025-05-09T15:05:07.139Z", "dateUpdated": "2025-06-10T13:25:08.659Z", "state": "PUBLISHED" }, "dataType": "CVE_RECORD", "dataVersion": "5.1", "meta": { "nvd": "{\"cve\":{\"id\":\"CVE-2025-4517\",\"sourceIdentifier\":\"cna@python.org\",\"published\":\"2025-06-03T13:15:20.837\",\"lastModified\":\"2025-06-05T14:15:33.050\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"Allows arbitrary filesystem writes outside the extraction directory during extraction with filter=\\\"data\\\".\\n\\n\\nYou are affected by this vulnerability if using the tarfile\u00a0module to extract untrusted tar archives using TarFile.extractall()\u00a0or TarFile.extract()\u00a0using the filter=\u00a0parameter with a value of \\\"data\\\"\u00a0or \\\"tar\\\". See the tarfile extraction filters documentation https://docs.python.org/3/library/tarfile.html#tarfile-extraction-filter \u00a0for more information.\\n\\nNote that for Python 3.14 or later the default value of filter=\u00a0changed from \\\"no filtering\\\" to `\\\"data\\\", so if you are relying on this new default behavior then your usage is also affected.\\n\\nNote that none of these vulnerabilities significantly affect the installation of source distributions which are tar archives as source distributions already allow arbitrary code execution during the build process. However when evaluating source distributions it\u0027s important to avoid installing source distributions with suspicious links.\"},{\"lang\":\"es\",\"value\":\"Permite escrituras arbitrarias en el sistema de archivos fuera del directorio de extracci\u00f3n durante la extracci\u00f3n con filter=\\\"data\\\". Esta vulnerabilidad afecta al usuario si utiliza el m\u00f3dulo tarfile para extraer archivos tar no confiables mediante TarFile.extractall() o TarFile.extract() y el par\u00e1metro filter= con el valor \\\"data\\\" o \\\"tar\\\". Consulte la documentaci\u00f3n sobre filtros de extracci\u00f3n de archivos tar (https://docs.python.org/3/library/tarfile.html#tarfile-extraction-filter) para obtener m\u00e1s informaci\u00f3n. Solo las versiones de Python 3.12 o posteriores se ven afectadas por estas vulnerabilidades; las versiones anteriores no incluyen la funci\u00f3n de filtro de extracci\u00f3n. Tenga en cuenta que, para Python 3.14 o posteriores, el valor predeterminado de filter= cambi\u00f3 de \\\"sin filtrado\\\" a \\\"data\\\", por lo que si utiliza este nuevo comportamiento predeterminado, su uso tambi\u00e9n se ver\u00e1 afectado. Tenga en cuenta que ninguna de estas vulnerabilidades afecta significativamente la instalaci\u00f3n de distribuciones fuente que son archivos tar, ya que estas permiten la ejecuci\u00f3n de c\u00f3digo arbitrario durante el proceso de compilaci\u00f3n. Sin embargo, al evaluar distribuciones de origen es importante evitar instalar distribuciones de origen con enlaces sospechosos.\"}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"cna@python.org\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L\",\"baseScore\":9.4,\"baseSeverity\":\"CRITICAL\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"LOW\"},\"exploitabilityScore\":3.9,\"impactScore\":5.5}]},\"weaknesses\":[{\"source\":\"cna@python.org\",\"type\":\"Secondary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-22\"}]}],\"references\":[{\"url\":\"https://gist.github.com/sethmlarson/52398e33eff261329a0180ac1d54f42f\",\"source\":\"cna@python.org\"},{\"url\":\"https://github.com/python/cpython/commit/19de092debb3d7e832e5672cc2f7b788d35951da\",\"source\":\"cna@python.org\"},{\"url\":\"https://github.com/python/cpython/commit/28463dba112af719df1e8b0391c46787ad756dd9\",\"source\":\"cna@python.org\"},{\"url\":\"https://github.com/python/cpython/commit/3612d8f51741b11f36f8fb0494d79086bac9390a\",\"source\":\"cna@python.org\"},{\"url\":\"https://github.com/python/cpython/commit/4633f3f497b1ff70e4a35b6fe2c907cbe2d4cb2e\",\"source\":\"cna@python.org\"},{\"url\":\"https://github.com/python/cpython/commit/9c1110ef6652687d7c55f590f909720eddde965a\",\"source\":\"cna@python.org\"},{\"url\":\"https://github.com/python/cpython/commit/9e0ac76d96cf80b49055f6d6b9a6763fb9215c2a\",\"source\":\"cna@python.org\"},{\"url\":\"https://github.com/python/cpython/commit/aa9eb5f757ceff461e6e996f12c89e5d9b583b01\",\"source\":\"cna@python.org\"},{\"url\":\"https://github.com/python/cpython/commit/dd8f187d0746da151e0025c51680979ac5b4cfb1\",\"source\":\"cna@python.org\"},{\"url\":\"https://github.com/python/cpython/issues/135034\",\"source\":\"cna@python.org\"},{\"url\":\"https://github.com/python/cpython/pull/135037\",\"source\":\"cna@python.org\"},{\"url\":\"https://mail.python.org/archives/list/security-announce@python.org/thread/MAXIJJCUUMCL7ATZNDVEGGHUMQMUUKLG/\",\"source\":\"cna@python.org\"}]}}" } }
Loading...
Loading...
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.