DevOps & Monitoring

OpenSSH 10.6 breaks compression and username syntax to patch leaks

OpenSSH 10.6 disables LZ77 compression and blocks special characters in command-line usernames to fix security flaws found by AI-assisted research.

Server rack with a glowing red padlock and fragmented data streams
Für diesen Artikel erstellte Illustration

Dieser Artikel ist nur auf Englisch verfügbar.

The OpenSSH project released version 10.6 on October 7, 2026, introducing deliberate breaking changes to close two distinct security vulnerabilities. The update weakens SSH compression capabilities and rejects specific characters in command-line usernames, actions the maintainers acknowledged would disrupt existing automation scripts and file transfer workflows. This release highlights a shift toward more frequent security patches as AI tools accelerate the discovery of exploitable flaws in foundational infrastructure software.

What happened

The first major change addresses a plaintext leak vulnerability in SSH compression. Researchers Fabian Bäumer and Marcus Brinkmann from Ruhr University Bochum demonstrated that when compression is enabled, multiple channels within a single SSH session share the same compression state. An attacker who can inject chosen plaintext into one channel can observe the encrypted traffic and use the shared LZ77 dictionary history to recover secrets from another channel. This attack vector is similar to the CRIME and BREACH attacks against HTTP over TLS, relying on the fact that matching data sequences result in shorter compressed output, leaking information about the secret data.

To mitigate this, OpenSSH 10.6 disables the LZ77 dictionary coder in both the client and server components while retaining Huffman coding. Compression still functions but is significantly less effective. The project recommends moving compression to the application layer for better performance and security. While interactive sessions may not notice a significant difference, automated jobs transferring large amounts of compressible data over constrained connections will likely see reduced efficiency and may require architectural adjustments.

The second change targets shell injection risks associated with command-line usernames. Previous versions allowed characters like $ and \ in usernames passed directly via the command line, which could be interpreted as shell syntax when used in directives such as ProxyCommand or Match exec. Version 10.3 had attempted to address this by checking for metacharacters later in the process, but 10.6 now strictly rejects these characters in command-line inputs. Usernames containing these characters can still be used if defined in the SSH configuration file via the User directive, but scripts that dynamically pass usernames must be updated to avoid connection failures.

Key details

  • OpenSSH 10.6 was released on October 7, 2026, with known breaking changes to improve security.
  • The LZ77 dictionary coder for SSH compression is disabled to prevent cross-channel plaintext recovery attacks.
  • Huffman coding remains active, so compression still works but with reduced effectiveness.
  • Command-line usernames containing $ or \ are now rejected to prevent shell injection via ProxyCommand and similar directives.
  • Usernames with special characters can still function if specified in the SSH config file using the User directive.
  • The hybrid post-quantum signature algorithm ssh-mldsa44-ed25519 has dropped its experimental suffix, requiring key regeneration for earlier implementations.

Background

SSH compression reduces bandwidth usage by encoding data before encryption. The LZ77 algorithm works by finding repeated byte sequences and replacing them with references to previous occurrences. In a multiplexed SSH session, where multiple data streams share one connection, sharing this compression history allows an attacker to correlate their input with secret data. If the attacker’s input matches part of a secret, the compressed output size changes, revealing information about the secret’s content. This is why the project removed the shared dictionary component entirely.

Shell injection occurs when user-supplied input is executed as code by the system shell. In SSH, usernames are often interpolated into configuration directives that execute shell commands. If a username contains special characters like $, the shell may interpret it as a variable or command substitution rather than a literal string. By rejecting these characters at the command-line level, OpenSSH ensures that usernames cannot inadvertently trigger unintended shell behavior, closing a path for potential remote code execution or privilege escalation.

Why it matters

For teams managing self-hosted infrastructure, this update requires immediate attention to automation pipelines. Many CI/CD systems and deployment scripts construct SSH commands dynamically, often passing usernames from environment variables or user input. If these scripts do not sanitize inputs or rely on command-line username arguments, they will fail after upgrading to 10.6. This breakage can halt deployments, backup jobs, and remote management tasks until scripts are refactored to use configuration files or sanitized inputs.

Additionally, the reduction in compression efficiency impacts workflows that rely on SSH for transferring large datasets over limited bandwidth. Teams using SSH tunnels for database replication or file synchronization may experience slower transfer rates. While the security benefit outweighs the performance cost, engineers must evaluate whether moving compression to the application layer is feasible or if alternative transfer methods are needed for high-volume data operations.

What you can do

  • Audit all automation scripts and CI/CD pipelines for SSH commands that pass usernames via the command line.
  • Refactor scripts to define usernames in SSH configuration files using the User directive if special characters are required.
  • Test file transfer speeds after upgrading to assess the impact of reduced compression efficiency on your workloads.
  • Regenerate any keys using the experimental ssh-mldsa44-ed25519 algorithm to align with the new standard naming.
  • Plan for the eventual deprecation of scp -R for remote-to-remote copies by migrating to rsync or sftp based solutions.
  • Monitor OpenSSH release notes closely, as the project intends to issue fixes more frequently due to AI-assisted vulnerability discovery.

Weitere News

Alle News