CVE-2026-47078 json
Relative path traversal in zip:unzip/zip:extract via check_dir_level depth-counter bypass
published 2026-07-27 3 mo ago modified 2026-10-24 16 d ago also EUVD-2026-49317
- cvss
- 4.8
- version 4.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.1%
- EPSS 0.1% chance of exploitation in 30 days, percentile 4%
- public exploits
- 0
- none known
Summary
Relative Path Traversal vulnerability in Erlang OTP (stdlib zip module) allows writing files outside the intended extraction directory via a crafted zip archive.
zip: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.
This vulnerability is associated with program file lib/stdlib/src/zip.erl.
This 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.
Patch / fix
- Erlang OTP 6.2.2.4, 7.3.0.1, 8.0.3, 27.3.4.15, 28.5.0.4, 29.0.4
- erlang Debian 13 1:27.3.4.1+dfsg-1+deb13u3
- erlang Debian 14 1:29.0.4+dfsg-1
debian advisories DEBIAN-CVE-2026-47078
- erlang Ubuntu 22.04 LTS 1:24.2.1+dfsg-1ubuntu0.8
- erlang Ubuntu 24.04 LTS 1:25.3.2.8+dfsg-1ubuntu4.8
- erlang Ubuntu 26.04 LTS 1:27.3.4.6+dfsg-1ubuntu0.2
- erlang Ubuntu Pro 18.04 LTS 1:20.2.2+dfsg-1ubuntu2+esm4
- erlang Ubuntu Pro 20.04 LTS 1:22.2.7+dfsg-1ubuntu0.5+esm3
ubuntu advisories UBUNTU-CVE-2026-47078
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- erlang SLES for SAP 15 SP6, SLES for SAP 15 SP5, SLES for SAP 15 SP4 +8 more 23.3.4.19-150300.3.39.1
- erlang26 SLES for SAP 15 SP6, SLES 15 SP6-LTSS, SLE Module for Server Applications 15 SP7 26.2.1-150300.7.28.1
suse advisories SUSE-SU-2026:3645-1SUSE-SU-2026:3579-1
- erlang openSUSE Tumbleweed 28.5.0.4-1.1
- erlang27 openSUSE Tumbleweed 27.1.3-3.1
opensuse advisories openSUSE-SU-2026:11559-1openSUSE-SU-2026:11560-1
- github.com/erlang/otp@8d537f5 commit
- github.com/erlang/otp@8a933c9 commit
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-47078 updated cvss 4.4
otp: Erlang OTP: Arbitrary file write via relative path traversal in zip module
-
Red Hat Hardened Images erlang27 Red Hat OpenStack Platform 16.2 erlang, erlang-ssl, erlang-asn1, erlang-erts, erlang-hipe, erlang-sasl, +15 more Red Hat OpenStack Platform 17.1 erlang-ssl, erlang-asn1, erlang-erts, erlang-sasl, erlang-snmp, erlang-eldap, +13 more Red Hat OpenStack Platform 18.0 erlangnot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 3 mo ago
Exploit prediction
0.15% chance of exploitation in the next 30 days, higher than 4% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 4.8 | 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 |
| CNA | 4.0 | 4.8 | 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 |
Affected products
- Erlang OTP
Classification
- Weakness
-
- CWE-23 Relative Path Traversal
References
-
github.com
/erlang/otp/commit/8d537f51a4262d24f3395c4148323eaca9facbbd
related
-
github.com
/erlang/otp/commit/8a933c9c7835b06776d31d17b79b7336627d887a
patch
-
github.com
/erlang/otp/security/advisories/GHSA-rf72-wp7h-jg3x
vendor-advisory, related
-
cna.erlef.org
/cves/CVE-2026-47078.html
related
-
osv.dev
/vulnerability/EEF-CVE-2026-47078
related
- erlang.org /doc/system/versions.html#order-of-versions
Sources
- CVE List CVE-2026-47078
- NVD CVE-2026-47078
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.