CVE-2026-32147
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 until OTP 28.4.3, 27.3.4.11, and 26.2.5.20 corresponding to ssh from 3.01 until 5.5.3, 5.2.11.7, and 5.1.4.15.
Predictions
Heuristic predictions, AS-IS, for prioritization only.
Mitigations
No mitigations published for this CVE yet.
The vendor-content worker queues fetches as references arrive (check back in a few minutes). Or โ if you've already worked around this in production โ publish your fix to the community-verified tier.
โ Propose a mitigation on Community โ Mitigations published via the community go through AI scoring + 2 human reviewers + 7-day silent objection window before landing here withsource_tier=community-verified.
OS impact
| OS | Version | Status | Fixed in |
|---|---|---|---|
| debian | bookworm | affected | |
| debian | bullseye | affected | |
| debian | forky | fixed | 1:27.3.4.11+dfsg-1 |
| debian | sid | fixed | 1:27.3.4.11+dfsg-1 |
| debian | trixie | affected | |
| sles | affected | |
Application impact
| Vendor | Product | Versions | Fixed |
|---|---|---|---|
| erlang | erlang\/otp | {"startIncluding":"17.0","endExcluding":"26.2.5.20"} | 26.2.5.20 |
| erlang | erlang\/ssh | {"startIncluding":"3.0.1","endExcluding":"5.1.4.15"} | 5.1.4.15 |
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
- https://security-tracker.debian.org/tracker/CVE-2026-32147
- https://www.suse.com/security/cve/CVE-2026-32147.html
CWEs
CWE-22
Community-verified mitigations for this CVE will appear above when contributors publish them.
Verify integrity in audit chain (admin only). AS-IS.