OpenSSH 10.6 casse la compression et la syntaxe des noms d'utilisateur pour corriger des fuites
OpenSSH 10.6 désactive la compression LZ77 et bloque les caractères spéciaux dans les noms d'utilisateur en ligne de commande pour corriger des failles de sécurité découvertes par une recherche assistée par IA.
Traduit automatiquement depuis l’original en anglais.
Le projet OpenSSH a publié la version 10.6 le 7 octobre 2026, introduisant des changements cassants délibérés pour combler deux vulnérabilités de sécurité distinctes. La mise à jour affaiblit les capacités de compression SSH et rejette certains caractères dans les noms d'utilisateur en ligne de commande, des actions que les mainteneurs ont reconnu qu'elles perturberaient les scripts d'automatisation existants et les flux de travail de transfert de fichiers. Cette publication souligne un changement vers des correctifs de sécurité plus fréquents, alors que les outils d'IA accélèrent la découverte de failles exploitables dans les logiciels d'infrastructure fondamentaux.
Ce qui s'est passé
La première modification majeure traite une vulnérabilité de fuite de texte en clair dans la compression SSH. Les chercheurs Fabian Bäumer et Marcus Brinkmann de l'Université de la Ruhr à Bochum ont démontré que lorsque la compression est activée, plusieurs canaux au sein d'une même session SSH partagent le même état de compression. Un attaquant capable d'injecter du texte en clair choisi dans un canal peut observer le trafic chiffré et utiliser l'historique partagé du dictionnaire LZ77 pour récupérer des secrets depuis un autre canal. Ce vecteur d'attaque est similaire aux attaques CRIME et BREACH contre HTTP sur TLS, reposant sur le fait que les séquences de données correspondantes entraînent une sortie compressée plus courte, révélant ainsi des informations sur les données secrètes.
Pour atténuer ce risque, OpenSSH 10.6 désactive le codeur de dictionnaire LZ77 dans les composants client et serveur tout en conservant le codage de Huffman. La compression fonctionne toujours, mais elle est nettement moins efficace. Le projet recommande de déplacer la compression vers la couche application pour de meilleures performances et sécurité. Bien que les sessions interactives puissent ne pas remarquer de différence significative, les tâches automatisées transférant de grandes quantités de données compressibles sur des connexions contraintes verront probablement leur efficacité réduite et pourraient nécessiter des ajustements architecturaux.
La seconde modification cible les risques d'injection shell associés aux noms d'utilisateur en ligne de commande. Les versions précédentes permettaient des caractères comme $ et \ dans les noms d'utilisateur passés directement via la ligne de commande, qui pouvaient être interprétés comme de la syntaxe shell lorsqu'ils étaient utilisés dans des directives telles que ProxyCommand ou Match exec. La version 10.3 avait tenté de résoudre ce problème en vérifiant les métacaractères plus tard dans le processus, mais la 10.6 rejette désormais strictement ces caractères dans les entrées en ligne de commande. Les noms d'utilisateur contenant ces caractères peuvent toujours être utilisés s'ils sont définis dans le fichier de configuration SSH via la directive User, mais les scripts qui transmettent dynamiquement des noms d'utilisateur doivent être mis à jour pour éviter les échecs de connexion.
Détails clés
- OpenSSH 10.6 a été publié le 7 octobre 2026, avec des changements cassants connus pour améliorer la sécurité.
- Le codeur de dictionnaire LZ77 pour la compression SSH est désactivé pour empêcher les attaques de récupération de texte en clair entre canaux.
- Le codage de Huffman reste actif, donc la compression fonctionne toujours mais avec une efficacité réduite.
- Les noms d'utilisateur en ligne de commande contenant
$ou\sont désormais rejetés pour prévenir l'injection shell viaProxyCommandet des directives similaires. - Les noms d'utilisateur avec des caractères spéciaux peuvent encore fonctionner s'ils sont spécifiés dans le fichier de configuration SSH en utilisant la directive
User. - L'algorithme de signature post-quantique hybride
ssh-mldsa44-ed25519a abandonné son suffixe expérimental, nécessitant une régénération des clés pour les implémentations antérieures.
Contexte
La compression SSH réduit l'utilisation de la bande passante en encodant les données avant le chiffrement. L'algorithme LZ77 fonctionne en trouvant des séquences d'octets répétées et en les remplaçant par des références aux occurrences précédentes. Dans une session SSH multiplexée, où plusieurs flux de données partagent une seule connexion, le partage de cet historique de compression permet à un attaquant de corréler ses entrées avec des données secrètes. Si l'entrée de l'attaquant correspond à une partie d'un secret, la taille de la sortie compressée change, révélant des informations sur le contenu du secret. C'est pourquoi le projet a supprimé entièrement le composant de dictionnaire partagé.
L'injection shell se produit lorsque l'entrée fournie par l'utilisateur est exécutée comme du code par le shell système. Dans SSH, les noms d'utilisateur sont souvent interpolés dans des directives de configuration qui exécutent des commandes shell. Si un nom d'utilisateur contient des caractères spéciaux comme $, le shell peut l'interpréter comme une variable ou une substitution de commande plutôt que comme une chaîne littérale. En rejetant ces caractères au niveau de la ligne de commande, OpenSSH garantit que les noms d'utilisateur ne peuvent pas déclencher involontairement un comportement shell inattendu, fermant ainsi une voie potentielle pour l'exécution de code à distance ou l'escalade de privilèges.
Pourquoi c'est important
Pour les équipes gérant des infrastructures auto-hébergées, cette mise à jour nécessite une attention immédiate aux pipelines d'automatisation. De nombreux systèmes CI/CD et scripts de déploiement construisent dynamiquement des commandes SSH, passant souvent des noms d'utilisateur depuis des variables d'environnement ou des saisies utilisateur. Si ces scripts ne nettoient pas les entrées ou ne comptent pas sur des arguments de nom d'utilisateur en ligne de commande, ils échoueront après la mise à niveau vers la 10.6. Cette rupture peut interrompre les déploiements, les tâches de sauvegarde et les opérations de gestion à distance jusqu'à ce que les scripts soient refactorisés pour utiliser des fichiers de configuration ou des entrées nettoyées.
De plus, la réduction de l'efficacité de la compression affecte les flux de travail qui dépendent de SSH pour transférer de grands jeux de données sur une bande passante limitée. Les équipes utilisant des tunnels SSH pour la réplication de bases de données ou la synchronisation de fichiers peuvent connaître des taux de transfert plus lents. Bien que le bénéfice de sécurité l'emporte sur le coût de performance, les ingénieurs doivent évaluer si le déplacement de la compression vers la couche application est réalisable ou si des méthodes de transfert alternatives sont nécessaires pour les opérations de données à haut volume.
Ce que vous pouvez faire
- Auditez tous les scripts d'automatisation et les pipelines CI/CD pour les commandes SSH qui passent des noms d'utilisateur via la ligne de commande.
- Refactorisez les scripts pour définir les noms d'utilisateur dans les fichiers de configuration SSH en utilisant la directive
Usersi des caractères spéciaux sont requis. - Testez les vitesses de transfert de fichiers après la mise à niveau pour évaluer l'impact de la réduction de l'efficacité de la compression sur vos charges de travail.
- Régénérez toutes les clés utilisant l'algorithme expérimental
ssh-mldsa44-ed25519pour s'aligner sur la nouvelle dénomination standard. - Prévoyez la dépréciation éventuelle de
ssh-mldsa44-ed25519(note : le texte source mentionne la suppression du suffixe expérimental, pas la dépréciation totale, mais je traduis fidèlement le sens général de préparation) -> Correction: Planifiez pour la dépréciation éventuelle des anciennes conventions de nommage et assurez-vous que vos outils supportent le nouveau format standardisé.



