Skip to content
OpenAdvisories
Medium · 5.3 CVE-2026-32147 EUVD-2026-24085

SFTP chroot bypass via path traversal in SSH_FXP_FSETSTAT

Published Apr 21, 2026 · Updated Nov 11, 2026 · Assigned by EEF

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 26.2.5.20, OTP 27.3.4.11, and OTP 28.4.3, corresponding to ssh from 3.0.1 before 5.1.4.15, 5.2.11.7, and 5.5.2. Whether OTP before OTP 17.0, corresponding to ssh before 3.0.1, is affected is unknown.

Affected products

VendorProductAffectedFixed
Erlang OTP 17.0, 3.0.1 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 erlang 1:27.3.4.11+dfsg-1 —
Debian 13 erlang 1:27.3.4.1+dfsg-1+deb13u3 —
Debian 12 erlang No fix yet —
ReleasePackageFixed inAdvisory
Ubuntu 26.04 LTS erlang 1:27.3.4.6+dfsg-1ubuntu0.2 USN-8901-1
Ubuntu 25.10 erlang No fix yet —
Ubuntu 24.04 LTS erlang 1:25.3.2.8+dfsg-1ubuntu4.8 USN-8901-1
Ubuntu 22.04 LTS erlang 1:24.2.1+dfsg-1ubuntu0.8 USN-8901-1
Show 4 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro 20.04 LTS erlang 1:22.2.7+dfsg-1ubuntu0.5+esm3 USN-8901-1
Ubuntu Pro 18.04 LTS erlang 1:20.2.2+dfsg-1ubuntu2+esm4 USN-8901-1
Ubuntu Pro 16.04 LTS erlang 1:18.3-dfsg-1ubuntu3.1+esm4 USN-8901-1
Ubuntu Pro 14.04 LTS erlang 1:16.b.3-dfsg-1ubuntu2.2+esm3 USN-8901-1
ReleasePackageFixed inAdvisory
SLES 15 SP7 erlang 23.3.4.19-150300.3.42.1 SUSE-SU-2026:3951-1
Show 2 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES for SAP 16.0 erlang 27.1.3-160000.5.1 SUSE-SU-2026:22082-1
SLES 16.0 erlang 27.1.3-160000.5.1 SUSE-SU-2026:22082-1
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed erlang27 27.1.3-2.1 openSUSE-SU-2026:10947-1
openSUSE Leap 16.0 erlang 27.1.3-160000.5.1 openSUSE-SU-2026:20907-1

Azure Linux

ReleasePackageFixed inAdvisory
Azure Linux 3 erlang 26.2.5.20-1 —

Advisories 6

References