What’s Vulnerable › Vulnerabilities
CVE-2026-32147: SFTP chroot bypass via path traversal in SSH_FXP_FSETSTAT
- Severity: medium (CVSS 4.3 v3.1)
- Exploited in the wild: not listed in CISA KEV
- EPSS: 0.4% probability of exploitation in the next 30 days
- Public exploit or detection template: none known
- Published: 2026-04-21 · updated 2026-10-26
- Weakness: CWE-22
Description
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.
Affected products
- Erlang OTP: from 17.0 before 26.2.5.20; from 27.0 before 27.3.4.11; from 28.0 before 28.4.3 — fixed in 26.2.5.20, 27.3.4.11, 28.4.3
- Erlang/Ssh: from 3.0.1 before 5.1.4.15; from 5.2 before 5.2.11.7; from 5.5 before 5.5.2 — fixed in 5.1.4.15, 5.2.11.7, 5.5.2
How to fix
Upgrade to a fixed version: Erlang OTP 26.2.5.20, 27.3.4.11, 28.4.3; Erlang/Ssh 5.1.4.15, 5.2.11.7, 5.5.2. Check the vendor advisory for mitigations.
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
Get alerted when CVE-2026-32147 or the next vulnerability affects your stack