CVE-2026-32147: SFTP chroot bypass via path traversal in SSH_FXP_FSETSTAT
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.
Security readout for executives and security teams
Plain-English summary
An authenticated SFTP user can cross an Erlang/OTP chroot boundary to change permissions, ownership, or timestamps on matching files elsewhere on the server. File contents cannot be read or changed through this flaw. If the SSH daemon runs as root, attribute changes could enable privilege escalation or weaken sensitive system files.
Executive priority
Treat this as an accelerated patch for internet-reachable or partner-facing SFTP systems running the daemon as root. Other affected deployments warrant scheduled remediation after confirming configuration and account trust. The medium CVSS score reflects constrained direct impact, but privileged configurations can produce materially greater business risk.
Technical view
The ssh_sftpd module stores a user-supplied path in an open file handle instead of its chroot-resolved path. A later SSH_FXP_FSETSTAT request applies attribute changes to the real filesystem path. Exploitation requires authentication, the root option, and an existing target at the corresponding relative path. Affected code includes ssh_sftpd:do_open/4 and handle_op/4.
Likely exposure
Exposure is limited to servers using Erlang/OTP ssh_sftpd with the root option and affected OTP or ssh versions. Risk rises sharply where untrusted users have SFTP accounts or the daemon runs as root. Servers not using this module or chroot configuration are not established as affected by the supplied evidence.
Exploitation context
The supplied record is not in CISA KEV and provides no evidence of active exploitation. Attackers require valid SFTP credentials and knowledge or discovery of a matching existing path. The primitive changes metadata rather than file contents, but privileged daemon execution can turn metadata changes into broader compromise.
Researcher notes
The relevant weakness is CWE-22 in lib/ssh/src/ssh_sftpd.erl. The critical distinction is that handle state retains the raw path while FSETSTAT later operates beyond the resolved root. The supplied patch commit and vendor advisory support the fixed-version guidance. Evidence does not establish content access, unauthenticated exploitation, or exploitation in the wild.
Mitigation direction
Upgrade the applicable OTP branch to 28.4.3, 27.3.4.11, or 26.2.5.20 or later.
Alternatively, update ssh to fixed versions 5.5.3, 5.2.11.7, or 5.1.4.15 as applicable.
Prioritize systems where ssh_sftpd uses the root option and the daemon runs as root.
Until upgraded, restrict SFTP access to trusted accounts and review whether privileged daemon execution is necessary.
Validation and detection
Inventory Erlang/OTP SFTP services and identify deployments using the ssh_sftpd root option.
Record deployed OTP and ssh versions, then compare them with the vendor-listed fixed releases.
Determine the operating-system identity and privileges used by each affected SSH daemon.
Review filesystem audit or integrity records for unexpected ownership, permission, or timestamp changes outside configured chroots.
After upgrading, verify the deployed version and regression-test normal SFTP and chroot behavior.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · medium confidence lookup
CWE-22: File access and web shell behavior lookup
File traversal and upload weaknesses can lead teams to review file, web shell, execution, and collection telemetry. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
The CVE wording references privilege impact, so privilege escalation and authorization behavior review may help. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.
The CVE wording references file access or upload behavior, so file telemetry and web shell review may help. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-22 · source CWE mapping
Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.