OpenSSH 10.6 security fixes: sftp path escape, compression side channel, ProxyCommand username injection and more
OpenSSH 10.6 fixes an sftp path escape, a compression side channel, username injection and six more bugs. Take your distro’s OpenSSH update; none are exploited.
- Published
- Updated
- CVE
- CVE-2026-106552
CVE-2026-106553
CVE-2026-106555
CVE-2026-106582
CVE-2026-106583
CVE-2026-106584
CVE-2026-106585
CVE-2026-106586
CVE-2026-106587 - Ecosystem
- Open sourceCI/CD
- Fixed in
- OpenSSH 10.6 / 10.6p1; Ubuntu 26.10 openssh 1:10.5p1-1ubuntu3.1
- Exploitation
- No exploitation reported; not in CISA KEV
Live scores
CVE-2026-106552- EPSS
- 0.004
low predicted chance of attack - VEDAS
- 0.075
little exploit evidence - On CISA KEV
- Not listed
- Detection rule
- None yet
Live scores
CVE-2026-106553- EPSS
- 0.001
low predicted chance of attack - VEDAS
- 0.068
little exploit evidence - On CISA KEV
- Not listed
- Detection rule
- None yet
Live scores
CVE-2026-106555- EPSS
- 0.001
low predicted chance of attack - VEDAS
- 0.049
little exploit evidence - On CISA KEV
- Not listed
- Detection rule
- None yet
Live scores
CVE-2026-106582- EPSS
- 0.002
low predicted chance of attack - VEDAS
- 0.072
little exploit evidence - On CISA KEV
- Not listed
- Detection rule
- None yet
Live scores
CVE-2026-106583- EPSS
- 0.002
low predicted chance of attack - VEDAS
- 0.077
little exploit evidence - On CISA KEV
- Not listed
- Detection rule
- None yet
Live scores
CVE-2026-106584- EPSS
- 0.001
low predicted chance of attack - VEDAS
- 0.044
little exploit evidence - On CISA KEV
- Not listed
- Detection rule
- None yet
Live scores
CVE-2026-106585- EPSS
- 0.002
low predicted chance of attack - VEDAS
- 0.078
little exploit evidence - On CISA KEV
- Not listed
- Detection rule
- None yet
Live scores
CVE-2026-106586- EPSS
- 0.001
low predicted chance of attack - VEDAS
- 0.094
little exploit evidence - On CISA KEV
- Not listed
- Detection rule
- None yet
Live scores
CVE-2026-106587- EPSS
- 0.001
low predicted chance of attack - VEDAS
- 0.050
little exploit evidence - On CISA KEV
- Not listed
- Detection rule
- None yet
What happened
OpenSSH 10.6 was released on 6 October 2026 with a list of security fixes. The release notes give no CVE IDs (OpenSSH). MITRE assigned them the same day; all are rated low or medium, and CISA’s ADP marks exploitation as “none” (CVE-2026-106552). The OpenSSH team also says it now gets many AI-assisted bug reports, has seen AI-found bugs independently rediscovered by others, and will release more often as a result.
The fixes that matter most to defenders:
- sftp recursive copy escape (CVE-2026-106552, CVSS 4.2). A malicious server could return paths that make a recursive copy write outside its target directory. Reported by Junghoon Cho.
- Compression side channel (CVE-2026-106582). With compression on, all channels in one SSH connection share one LZ77 dictionary. An attacker who can send data through one channel can recover secrets from another, by watching ciphertext lengths. OpenSSH credits the paper “Crossing the Streams” by Fabian Baumer and Marcus Brinkmann, preprint arXiv 2609.07709. OpenSSH disabled the LZ77 dictionary coder, which makes the
Compressionoption less effective. - Username injection (CVE-2026-106583).
sshnow refuses$and\in usernames given on the command line. A username from an untrusted source could inject shell commands throughProxyCommand,Match execand similar options. Usernames set withUserin config files are not checked. Reported by SecBuddyF KeenLab Tencent. - Decompression bomb (CVE-2026-106585, CVSS 6.5). Compressed payloads could inflate past the maximum packet length. Reported by Oleh Konko.
- GSSAPI state (CVE-2026-106553, CVE-2026-106555). Credentials from a failed GSSAPI attempt could persist and become available after a later successful login. Reported by Moritz Theile.
restrictand tunnels (CVE-2026-106586). Therestrictkeyword inauthorized_keyswas not applied to tunnel forwarding (PermitTunnel, off by default).- “none” in Match blocks (CVE-2026-106587). Options such as
AuthorizedPrincipalsFilethat acceptnonetreated it as a literal file name when set inside aMatchblock. Found by Chris Rohlf “in collaboration with Claude and Anthropic Research”. - ssh-keygen dates (CVE-2026-106584). Daylight Saving Time handling could give certificates the wrong expiry time.
CVE mapping is from Ubuntu’s notice USN-8937-1 and the CVE records (Ubuntu). Two further changes have no CVE: on platforms without file descriptor passing (QNX 6, SCO OpenServer 5, builds with --disable-fd-passing), GatewayPorts and StreamLocalForwarding are now forced off; and sandboxing is no longer supported on macOS SDK 27 and later (OpenSSH).
Am I affected?
Every OpenSSH before 10.6 is affected, unless your distribution backported the fixes. Check the version and, on distributions that backport, ask by CVE:
ssh -V
dpkg -l openssh-client openssh-server # Debian, Ubuntu
rpm -q openssh openssh-server # RHEL, Fedora, SUSE
dnf updateinfo list --cve CVE-2026-106552 # RHEL familyOn Ubuntu 26.10 the fix is package version 1:10.5p1-1ubuntu3.1 (Ubuntu).
Check the settings that decide whether the riskier bugs reach you:
# Server: is compression on, is GSSAPI or tunnelling in use?
sudo sshd -T | grep -iE '^(compression|gssapiauthentication|permittunnel) '
# Client: compression and connection sharing for a given host
ssh -G host.example.com | grep -iE '^(compression|controlmaster|controlpath) '
# Scripts that build ssh usernames from variables
grep -rnE 'ssh[^|]*\$\{?[A-Za-z_]+\}?@' --include='*.sh' --include='*.py' --include='*.yml' .The compression side channel needs compression on and several channels sharing one connection, for example ControlMaster multiplexing or port forwards alongside a shell.
What to do now
- Update OpenSSH to 10.6 or your distribution’s fixed package on servers, bastion hosts, CI runners and developer machines. Restart
sshdso the new binary is running. - Do not run
sftp -rorget -Ragainst untrusted servers on older clients. The path escape is in the client, so updating servers does not help. - Turn off compression where trusted and untrusted traffic share a connection. Set
Compression noon clients and insshd_config. OpenSSH recommends compressing at the application level instead, which is “completely immune to this type of attack” (OpenSSH). - Stop passing untrusted input to
sshas a username. OpenSSH says the new check “can not be absolute given the variety of shells and user configurations in use”. Validate usernames against an allow-list in scripts and CI jobs that buildssh user@hostfrom external data, especially whereProxyCommandorMatch execis configured. - Expect two behaviour changes after updating. Command-line usernames with
$or\will be refused (usernames set withUserin a config file still work), andCompression yeswill compress less.