CVE-2026-53422 json
SFTP REALPATH path-existence oracle allowing filesystem enumeration outside configured root
published 2026-07-02 4 mo ago modified 2026-10-25 14 d ago also EUVD-2026-41410
- cvss
- 4.3
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 18%
- public exploits
- 0
- none known
Summary
Observable Response Discrepancy vulnerability in Erlang OTP ssh (ssh_sftpd module) allows an authenticated SFTP user to enumerate the existence of files and directories outside the configured root directory.
The SSH_FXP_REALPATH handler in ssh_sftpd calls relate_file_name/3 with Canonicalize=false, unlike every other SFTP operation handler. This allows .. components in the requested path to bypass the is_within_root/2 check without being resolved. The un-canonicalized path then enters resolve_symlinks/2, which walks up the directory tree above the configured root and issues read_link() syscalls on arbitrary filesystem paths.
An authenticated SFTP client can exploit this by sending a REALPATH request with a crafted traversal path. The server response differs depending on whether the target path exists on the host filesystem (SSH_FXP_NAME when the path resolves successfully, SSH_FX_NO_SUCH_FILE when it does not). This creates a path-existence oracle that an attacker can use to enumerate the filesystem structure outside the configured root, including the existence of sensitive files, directories, and mount points.
The vulnerability leaks only the existence of paths. No file contents, credentials, or write access are obtainable through this issue alone. The information gained may assist further attacks when combined with other vulnerabilities.
This vulnerability is associated with program files lib/ssh/src/ssh_sftpd.erl and program routine ssh_sftpd:handle_op/4.
This issue affects OTP from OTP 17.0 before OTP 29.0.3, OTP 28.5.0.3 and OTP 27.3.4.14, corresponding to ssh from 3.0.1 before 6.0.2, 5.5.2.2 and 5.2.11.9.
Patch / fix
- Erlang OTP 5.2.11.9, 5.5.2.2, 6.0.2, 27.3.4.14, 28.5.0.3, 29.0.3
- erlang Debian 13 1:27.3.4.1+dfsg-1+deb13u3
- erlang Debian 14 1:29.0.3+dfsg-1
debian advisories DEBIAN-CVE-2026-53422
- 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 14.04 LTS 1:16.b.3-dfsg-1ubuntu2.2+esm3
- erlang Ubuntu Pro 16.04 LTS 1:18.3-dfsg-1ubuntu3.1+esm4
- 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-53422
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
- erlang27 hummingbird 1 27.3.4.14-1.hum1
- erlang27-et hummingbird 1 27.3.4.14-1.hum1
- erlang27-wx hummingbird 1 27.3.4.14-1.hum1
- erlang27-ftp hummingbird 1 27.3.4.14-1.hum1
- erlang27-ssh hummingbird 1 27.3.4.14-1.hum1
- erlang27-ssl hummingbird 1 27.3.4.14-1.hum1
- erlang27-asn1 hummingbird 1 27.3.4.14-1.hum1
- erlang27-edoc hummingbird 1 27.3.4.14-1.hum1
red hat advisories RHSA-2026:35998
- 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@059e578 commit
- github.com/erlang/otp@86622cf commit
- github.com/erlang/otp@c5a8f50 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-53422 updated cvss 4.3
erlang: ssh: Erlang OTP ssh: Information disclosure via SFTP REALPATH handler
-
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 erlangaffected: no fix available “Fix deferred”
-
Red Hat Hardened Images erlang27 27.3.4.14-1.hum1fixed: vendor fix RHSA-2026:35998
-
Red Hat Hardened Images openssh 10.3p1-4.hum1not affected: component 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
- 4 mo ago
Exploit prediction
0.26% chance of exploitation in the next 30 days, higher than 18% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 2.3 | CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N |
| CNA | 4.0 | 2.3 | CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:N/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 |
| NVD | 3.1 | 4.3 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N |
Affected products
- Erlang OTP
Classification
- Weakness
-
- CWE-204 Observable Response Discrepancy
References
-
github.com
/erlang/otp/commit/059e5785ef8c1d423820ca633fb7b37f47645172
patch
-
github.com
/erlang/otp/commit/86622cfaacf57a02c7645d1999f946846b504c94
patch
-
github.com
/erlang/otp/commit/c5a8f50ae68888ff243c5c741a06d2b3a4b48b7a
patch
-
github.com
/erlang/otp/security/advisories/GHSA-h9pw-h5w4-h976
vendor-advisory, related, mitigation
-
cna.erlef.org
/cves/CVE-2026-53422.html
related, mitigation, vendor-advisory
-
osv.dev
/vulnerability/EEF-CVE-2026-53422
related, mitigation, third-party-advisory
-
erlang.org
/doc/system/versions.html#order-of-versions
release-notes
Sources
- CVE List CVE-2026-53422
- NVD CVE-2026-53422
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.