CVE-2026-32147
What it is
Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') vulnerability in Erlang OTP ssh (ssh_sftpd module) allows an authenticated SFTP user to modify file attributes outside the configured chroot directory. The SFTP daemon (ssh_sftpd) stores the raw, user-supplied path in file handles instead of the chroot-resolved path. When SSH_FXP_FSETSTAT is issued on such a handle, file attributes (permissions, ownership, timestamps) are modified on the real filesystem path, bypassing the root directory boundary entirely. Any authenticated SFTP user on a server configured with the root option can modify file attributes of files outside the intended chroot boundary. The prerequisite is that a target file must exist on the real filesystem at the same relative path. Note that this vulnerability only allows modification of file attributes; file contents cannot be read or altered through this attack vector. If the SSH daemon runs as root, this enables direct privilege escalation: an attacker can set the setuid bit on any binary, change ownership of sensitive files, or make system configuration world-writable. This vulnerability is associated with program files lib/ssh/src/ssh_sftpd.erl and program routines ssh_sftpd:do_open/4 and ssh_sftpd:handle_op/4. This issue affects OTP from OTP 17.0 before OTP 28.4.3, OTP 27.3.4.11 and OTP 26.2.5.20, corresponding to ssh from 3.0.1 before 5.5.3, 5.2.11.7 and 5.1.4.15.
At a glance
- Exploitability
- Can be exploited over the network with a low-privilege account. Limited direct impact.
- Exploit odds
- 0.4% chance of exploitation in the next 30 days (EPSS).
- Fix
- A patch, advisory or fixed version is referenced. Upgrade or apply it.
Timeline
- PublishedDisclosed publicly on CVE.org and NVD
- Last updatedMost recent change to the record
Details
- Published
- Last modified
- Exploit probability
- 0.4% · EPSS, next 30 days
- Weakness
- CWE-22 · Path traversal
- Record status
- Modified
Affected
- Erlang erlang\/otp < 26.2.5.20
- Erlang erlang\/otp < 27.3.4.11
- Erlang erlang\/otp < 28.4.3
- Erlang erlang\/ssh < 5.1.4.15
- Erlang erlang\/ssh < 5.2.11.7
- Erlang erlang\/ssh < 5.5.2
Attack profile CVSS 4.0 · 5.3
- Attack vector
- Network
- Complexity
- Low
- Attack requirements
- None
- Privileges needed
- Low
- User interaction
- None
- Confidentiality
- None
- Integrity
- Low
- Availability
- None
Raw vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:L/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
Fix and advisories
- https://cna.erlef.org/cves/CVE-2026-32147.html
- https://github.com/erlang/otp/commit/28c5d5a6c5f873dc701b597276271763e7d1c004
- https://github.com/erlang/otp/security/advisories/GHSA-28jg-mw9x-hpm5
References
- https://cna.erlef.org/cves/CVE-2026-32147.html
- https://github.com/erlang/otp/commit/28c5d5a6c5f873dc701b597276271763e7d1c004
- https://github.com/erlang/otp/security/advisories/GHSA-28jg-mw9x-hpm5
- https://osv.dev/vulnerability/EEF-CVE-2026-32147
- https://www.erlang.org/doc/system/versions.html#order-of-versions