{"id":"CVE-2026-29509","aliases":["DEBIAN-CVE-2026-29509","EUVD-2026-39879","GHSA-p95f-9f9h-wwvh","MGASA-2026-0504","UBUNTU-CVE-2026-29509"],"status":"published","title":"Patool \u003c 4.0.5 Path Traversal via safe_extract() Function","description":"Patool before 4.0.5 contains a path traversal vulnerability in the safe_extract() function in patoolib/programs/py_tarfile.py when running on Python before 3.12, where the is_within_directory() helper uses os.path.commonprefix() for character-level string comparison instead of path-level comparison, allowing a crafted archive member path to bypass the containment check. Attackers can supply a malicious archive with specially crafted member paths to write arbitrary files.","severity":{"version":"4.0","score":5.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.00371,"percentile":0.31365,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-22"],"published":"2026-06-26T19:31:07Z","modified":"2026-11-08T14:01:53Z","fixes":[{"ecosystem":"Debian:13","package":"patool","fixed_in":["4.0.0-1+deb13u1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"patool","fixed_in":["4.0.5-0.1"],"sources":["osv"]},{"ecosystem":"Mageia:10","package":"patool","fixed_in":["4.0.5-1.mga10"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Debian:13","package":"patool","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.0.0-1+deb13u1"}]}],"versions":["4.0.0-1"]},{"source":"osv","ecosystem":"Debian:14","package":"patool","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.0.5-0.1"}]}],"versions":["4.0.0-1","4.0.1-1","4.0.2-1","4.0.3-1","4.0.4-1"]},{"source":"osv","ecosystem":"Mageia:10","package":"patool","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.0.5-1.mga10"}]}]},{"source":"osv","ecosystem":"Ubuntu:16.04:LTS","package":"patool","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.7-1","1.8-1","1.10-1"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"patool","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.12-3"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"patool","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.12-3","1.12-3build1","1.12-4","1.12-5"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"patool","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.12-5"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"patool","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.12-5","2.0.0-2"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"patool","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.1.3-1","4.0.0-1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"patool","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.0.0-1","4.0.3-1","4.0.4-1"]}],"products":[{"vendor":"wummel","product":"patool"}],"references":[{"url":"https://github.com/wummel/patool/releases/tag/4.0.5","tags":["patch","release-notes","fix"]},{"url":"https://github.com/wummel/patool/blob/main/doc/changelog.txt","tags":["release-notes","advisory"]},{"url":"https://www.vulncheck.com/advisories/patool-path-traversal-via-safe-extract-function","tags":["third-party-advisory","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-29509","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-p95f-9f9h-wwvh"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/29xxx/CVE-2026-29509.json","tags":["advisory"]},{"url":"https://github.com/wummel/patool","tags":["package"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-29509","tags":["advisory"]},{"url":"https://advisories.mageia.org/MGASA-2026-0504.html","tags":["advisory"]},{"url":"https://bugs.mageia.org/show_bug.cgi?id=36356","tags":["report"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/2KERDMQUL5APBLZX45J7IOQLRIR47LTF/","tags":["web"]},{"url":"https://ubuntu.com/security/CVE-2026-29509","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-29509","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2026-29509","title":"Patool \u003c 4.0.5 Path Traversal via safe_extract() Function","description":"Patool before 4.0.5 contains a path traversal vulnerability in the safe_extract() function in patoolib/programs/py_tarfile.py when running on Python before 3.12, where the is_within_directory() helper uses os.path.commonprefix() for character-level string comparison instead of path-level comparison, allowing a crafted archive member path to bypass the containment check. Attackers can supply a malicious archive with specially crafted member paths to write arbitrary files.","status":"published","published":"2026-06-26T19:31:07.165Z","modified":"2026-11-08T14:01:53.523Z","cvss":[{"version":"4.0","score":5.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N","level":"medium","assessor":"cna"},{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-22"],"updated_at":"2026-11-08T15:43:32.737211Z"}],"euvd":[{"id":"EUVD-2026-39879","description":"Patool before 4.0.5 contains a path traversal vulnerability in the safe_extract() function in patoolib/programs/py_tarfile.py when running on Python before 3.12, where the is_within_directory() helper uses os.path.commonprefix() for character-level string comparison instead of path-level comparison, allowing a crafted archive member path to bypass the containment check. Attackers can supply a malicious archive with specially crafted member paths to write arbitrary files.","status":"published","published":"2026-06-26T19:31:07Z","modified":"2026-11-08T14:01:53Z","cvss":[{"version":"4.0","score":5.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N","level":"medium"}],"updated_at":"2026-11-08T15:13:09.785497Z"}],"ghsa":[{"id":"GHSA-p95f-9f9h-wwvh","title":"Patool before 4.0.5 contains a path traversal vulnerability in the safe_extract() function in...","description":"Patool before 4.0.5 contains a path traversal vulnerability in the safe_extract() function in patoolib/programs/py_tarfile.py when running on Python before 3.12, where the is_within_directory() helper uses os.path.commonprefix() for character-level string comparison instead of path-level comparison, allowing a crafted archive member path to bypass the containment check. Attackers can supply a malicious archive with specially crafted member paths to write arbitrary files.","status":"published","published":"2026-06-26T21:32:16Z","modified":"2026-06-26T21:32:24Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N","level":"medium"},{"version":"4.0","score":5.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/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","level":"medium"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T15:09:01.878033Z"}],"nvd":[{"id":"CVE-2026-29509","description":"Patool before 4.0.5 contains a path traversal vulnerability in the safe_extract() function in patoolib/programs/py_tarfile.py when running on Python before 3.12, where the is_within_directory() helper uses os.path.commonprefix() for character-level string comparison instead of path-level comparison, allowing a crafted archive member path to bypass the containment check. Attackers can supply a malicious archive with specially crafted member paths to write arbitrary files.","status":"published","published":"2026-06-26T20:16:54.093Z","modified":"2026-10-25T17:10:00.197Z","cvss":[{"version":"4.0","score":5.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/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","level":"medium","assessor":"secondary"},{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N","level":"medium","assessor":"secondary"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:12:26.045561Z"}],"osv":[{"id":"CVE-2026-29509","title":"Patool \u003c 4.0.5 Path Traversal via safe_extract() Function","description":"Patool before 4.0.5 contains a path traversal vulnerability in the safe_extract() function in patoolib/programs/py_tarfile.py when running on Python before 3.12, where the is_within_directory() helper uses os.path.commonprefix() for character-level string comparison instead of path-level comparison, allowing a crafted archive member path to bypass the containment check. Attackers can supply a malicious archive with specially crafted member paths to write arbitrary files.","status":"published","published":"2026-06-26T19:31:07.165Z","modified":"2026-11-09T02:30:37.926498199Z","cvss":[{"version":"4.0","score":5.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N","level":"medium"}],"cwes":["CWE-22"],"updated_at":"2026-11-09T03:16:44.651171Z"},{"id":"DEBIAN-CVE-2026-29509","description":"Patool before 4.0.5 contains a path traversal vulnerability in the safe_extract() function in patoolib/programs/py_tarfile.py when running on Python before 3.12, where the is_within_directory() helper uses os.path.commonprefix() for character-level string comparison instead of path-level comparison, allowing a crafted archive member path to bypass the containment check. Attackers can supply a malicious archive with specially crafted member paths to write arbitrary files.","status":"published","published":"2026-06-26T20:16:54.093Z","modified":"2026-10-26T11:47:29.388390753Z","cvss":[{"version":"4.0","score":5.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/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","level":"medium"}],"updated_at":"2026-11-02T15:45:53.877573Z"},{"id":"UBUNTU-CVE-2026-29509","description":"Patool before 4.0.5 contains a path traversal vulnerability in the safe_extract() function in patoolib/programs/py_tarfile.py when running on Python before 3.12, where the is_within_directory() helper uses os.path.commonprefix() for character-level string comparison instead of path-level comparison, allowing a crafted archive member path to bypass the containment check. Attackers can supply a malicious archive with specially crafted member paths to write arbitrary files.","status":"published","published":"2026-06-26T20:16:00Z","modified":"2026-06-29T23:15:34.118248088Z","cvss":[{"version":"3.1","score":5.4,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N","level":"medium"},{"version":"4.0","score":5.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N","level":"medium"}],"updated_at":"2026-11-02T16:56:11.640778Z"},{"id":"MGASA-2026-0504","title":"Updated patool package fixes a security vulnerability","description":"Patool \u003c 4.0.5 Path Traversal via safe_extract() Function.\n(CVE-2026-29509)\n","status":"published","published":"2026-10-14T02:42:28Z","modified":"2026-10-14T02:45:03.358972726Z","updated_at":"2026-11-02T15:49:43.795591Z"}]}}
