{"schemaVersion":3,"id":"CVE-2026-47078","aliases":["UBUNTU-CVE-2026-47078","DEBIAN-CVE-2026-47078"],"status":"published","duplicateOf":null,"title":null,"description":"Relative Path Traversal vulnerability in Erlang OTP (stdlib zip module) allows writing files outside the intended extraction directory via a crafted zip archive.\n\nzip:unzip/1,2 and zip:extract/1,2 validate entry paths using zip:check_dir_level/2, which tracks directory depth as a running integer counter: .. decrements it, normal path components increment it. The caller rejects only paths where the final counter value is less than zero. A path such as ../x/y causes the counter to go negative mid-traversal then recover to zero, passing validation while resolving to a location outside the extraction directory when joined with the current working directory via add_cwd.\n\nThis vulnerability is associated with program file lib/stdlib/src/zip.erl.\n\nThis issue affects OTP from OTP 27.1 before OTP 27.3.4.15, OTP 28.5.0.4, and OTP 29.0.4, corresponding to stdlib from 6.1 before 6.2.2.4, 7.3.0.1, and 8.0.3.","dates":{"published":"2026-07-27T15:03:50.929Z","modified":"2026-09-24T20:48:37.203Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":4.8,"severity":"medium","version":"4.0","versionLabel":"v4.0","source":"CVE.org","vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:L/SC:N/SI:L/SA:L","computed":false,"selection":"backend-summary"},"metrics":[{"version":"4.0","versionLabel":"v4.0","source":"CVE.org","score":4.8,"severity":"medium","vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:L/SC:N/SI:L/SA:L","exploitability":null,"impact":null,"computed":false},{"version":"4.0","versionLabel":"v4.0","source":"OSV · Ubuntu","score":4.8,"severity":"medium","vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:L/SC:N/SI:L/SA:L","exploitability":null,"impact":null,"computed":true},{"version":"4.0","versionLabel":"v4.0","source":"OSV · Debian","score":4.8,"severity":"medium","vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:L/SC:N/SI:L/SA:L/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","exploitability":null,"impact":null,"computed":true},{"version":"4.0","versionLabel":"v4.0","source":"NVD","score":4.8,"severity":"medium","vector":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:L/SC:N/SI:L/SA:L/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","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00149,"percentile":0.03743,"severity":"low","asOf":"2026-10-18T00:00:00.000Z","change":{"pp":0,"baselineDate":"2026-09-18T00:00:00.000Z","baselineScore":0.00149},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00192,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00192,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00192,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00192,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00192,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00192,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00149,"percentile":0.03743}],"last30":[{"date":"2026-09-18T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00192,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00192,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00192,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00192,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00192,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00192,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00149,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00149,"percentile":0.03743}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-23","name":"Relative Path Traversal","description":"The product uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize sequences such as \"..\" that can resolve to a location that is outside of that directory.","type":"weakness","status":"Draft","abstraction":"Base","likelihoodOfExploit":null,"url":"https://cwe.mitre.org/data/definitions/23.html"}],"affected":[{"vendor":"debian","product":"erlang","name":"erlang","label":"erlang","ecosystem":"Debian","cpePart":null,"purl":"pkg:deb/debian/erlang","purlType":"deb","versions":[{"text":"All versions","noFixRecorded":true,"fixedIn":null},{"text":"< 1:27.3.4.1+dfsg-1+deb13u3","noFixRecorded":false,"fixedIn":null},{"text":"< 1:29.0.4+dfsg-1","noFixRecorded":false,"fixedIn":null}],"versionsText":"All versions (No fix recorded) | < 1:27.3.4.1+dfsg-1+deb13u3 | < 1:29.0.4+dfsg-1","eol":null,"hubHref":null},{"vendor":"ubuntu","product":"erlang","name":"erlang","label":"erlang","ecosystem":"Ubuntu","cpePart":null,"purl":"pkg:deb/ubuntu/erlang","purlType":"deb","versions":[{"text":"All versions","noFixRecorded":true,"fixedIn":null},{"text":"< 1:20.2.2+dfsg-1ubuntu2+esm4","noFixRecorded":false,"fixedIn":null},{"text":"< 1:22.2.7+dfsg-1ubuntu0.5+esm3","noFixRecorded":false,"fixedIn":null},{"text":"< 1:24.2.1+dfsg-1ubuntu0.8","noFixRecorded":false,"fixedIn":null},{"text":"< 1:25.3.2.8+dfsg-1ubuntu4.8","noFixRecorded":false,"fixedIn":null},{"text":"< 1:27.3.4.6+dfsg-1ubuntu0.2","noFixRecorded":false,"fixedIn":null}],"versionsText":"All versions (No fix recorded) | < 1:20.2.2+dfsg-1ubuntu2+esm4 | < 1:22.2.7+dfsg-1ubuntu0.5+esm3 | < 1:24.2.1+dfsg-1ubuntu0.8 | < 1:25.3.2.8+dfsg-1ubuntu4.8 | < 1:27.3.4.6+dfsg-1ubuntu0.2","eol":null,"hubHref":null},{"vendor":"erlang","product":"otp","name":"OTP","label":"otp","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≥ 27.1","noFixRecorded":true,"fixedIn":null},{"text":"≥ 6.1","noFixRecorded":true,"fixedIn":null},{"text":"≥ 8d537f51a4262d24f3395c4148323eaca9facbbd, < 8a933c9c7835b06776d31d17b79b7336627d887a","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 27.1 (No fix recorded) | ≥ 6.1 (No fix recorded) | ≥ 8d537f51a4262d24f3395c4148323eaca9facbbd, < 8a933c9c7835b06776d31d17b79b7336627d887a","eol":null,"hubHref":"/vendor/erlang/otp"}],"affectedCount":3,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/erlang/otp/security/advisories/GHSA-rf72-wp7h-jg3x","label":"github.com/erlang/otp/security/advisories/GHSA-rf72-wp7h-jg3x","hostname":"github.com","tags":["Vendor Advisory","Related"]},{"url":"https://cna.erlef.org/cves/CVE-2026-47078.html","label":"cna.erlef.org/cves/CVE-2026-47078.html","hostname":"cna.erlef.org","tags":["Related"]},{"url":"https://osv.dev/vulnerability/EEF-CVE-2026-47078","label":"osv.dev/vulnerability/EEF-CVE-2026-47078","hostname":"osv.dev","tags":["Related"]},{"url":"https://www.erlang.org/doc/system/versions.html#order-of-versions","label":"www.erlang.org/doc/system/versions.html","hostname":"www.erlang.org","tags":["X Version Scheme"]},{"url":"https://github.com/erlang/otp/commit/8d537f51a4262d24f3395c4148323eaca9facbbd","label":"github.com/erlang/otp/commit/8d537f51a4262d24f3395c4148323eaca9facbbd","hostname":"github.com","tags":["Related"]},{"url":"https://github.com/erlang/otp/commit/8a933c9c7835b06776d31d17b79b7336627d887a","label":"github.com/erlang/otp/commit/8a933c9c7835b06776d31d17b79b7336627d887a","hostname":"github.com","tags":["Patch"]},{"url":"https://ubuntu.com/security/CVE-2026-47078","label":"ubuntu.com/security/CVE-2026-47078","hostname":"ubuntu.com","tags":["REPORT"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-47078","label":"www.cve.org/CVERecord?id=CVE-2026-47078","hostname":"www.cve.org","tags":["REPORT"]},{"url":"https://ubuntu.com/security/notices/USN-8901-1","label":"ubuntu.com/security/notices/USN-8901-1","hostname":"ubuntu.com","tags":["Advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-47078","label":"security-tracker.debian.org/tracker/CVE-2026-47078","hostname":"security-tracker.debian.org","tags":["Advisory"]}],"lineage":{"upstream":[],"downstream":["OPENSUSE-SU-2026:11559-1","OPENSUSE-SU-2026:11560-1","SUSE-SU-2026:3579-1","SUSE-SU-2026:3645-1","USN-8901-1"],"duplicates":[],"related":["OPENSUSE-SU-2026:11559-1","OPENSUSE-SU-2026:11560-1","SUSE-SU-2026:3579-1","SUSE-SU-2026:3645-1","USN-8901-1"]},"timeline":[{"kind":"published","date":"2026-07-27T15:03:50.929Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-09-24T20:48:37.203Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":19,"level":"low","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-19T09:35:23.873Z","stale":false,"partial":false}}