Cybersécurité

La vulnérabilité "*sshole" dans OpenSSH ouvre la porte au piratage des comptes désactivés sous Linux

La découverte d'une vulnérabilité dans OpenSSH, baptisée "*sshole", permet aux attaquants de contourner la protection des comptes dont le mot de passe a été désactivé sur les distributions utilisant la bibliothèque musl, comme Alpine Linux, en saisissant des mots de passe extrêmement longs.

2026-11-05
4 min de lecture
0 vues
certi.news Editorial Team
La vulnérabilité "*sshole" dans OpenSSH ouvre la porte au piratage des comptes désactivés sous Linux

Le chercheur en sécurité Ozgun Kultekin a révélé une nouvelle vulnérabilité dans le protocole OpenSSH, baptisée "*sshole", qui permet aux attaquants de se connecter à des comptes Linux spécifiquement configurés pour empêcher la connexion par mot de passe. Cette faille apparaît particulièrement sur les systèmes reposant sur la bibliothèque musl C, mettant ainsi en danger des distributions populaires telles qu'Alpine Linux et OpenWrt.

Mécanisme technique de la vulnérabilité

La protection traditionnelle sous Linux repose sur le remplacement du hash du mot de passe par un astérisque (*) dans le fichier /etc/shadow pour empêcher la connexion par mot de passe. Afin d'éviter les vulnérabilités d'énumération d'utilisateurs (Username Enumeration) apparues en 2016, les développeurs d'OpenSSH ont modifié le système pour effectuer l'opération de hachage même pour les comptes ne possédant pas de hash valide, afin de garantir une réponse uniforme du serveur, quel que soit l'état du compte.

Le problème réside dans le fait que la bibliothèque musl C, et plus précisément la fonction crypt(), renvoie un astérisque (*) comme valeur en cas d'échec de l'opération de hachage, ce qui se produit précisément lorsque la longueur du mot de passe saisi dépasse la limite de 256 octets. Cela conduit à une correspondance entre la valeur résultant de la tentative erronée et la valeur stockée dans le fichier /etc/shadow pour le compte désactivé, ce qui trompe OpenSSH et lui fait autoriser la connexion.

Pourquoi cette nouvelle est-elle importante ?

Le danger réel réside dans le fait que cette vulnérabilité pourrait mener à un accès complet avec les privilèges root dans les environnements de cloud computing. Le chercheur a averti que les images officielles d'Alpine Linux utilisées sur les plateformes AWS et Azure contiennent un compte par défaut nommé "alpine" possédant des privilèges doas sans nécessiter de mot de passe, ce qui pourrait permettre à un attaquant d'exploiter la faille pour prendre le contrôle total du serveur.

Conditions d'exploitation et systèmes affectés

Cette vulnérabilité ne touche pas tous les systèmes ; les systèmes reposant sur la bibliothèque glibc (tels que Debian, Ubuntu et Fedora) ou ceux utilisant l'authentification PAM restent sécurisés. Pour que l'exploitation réussisse, les conditions suivantes doivent être réunies :

  • Exécution d'OpenSSH sur un système reposant sur la bibliothèque musl (comme Alpine Linux, OpenWrt, Buildroot ou Yocto).
  • Désactivation de l'authentification PAM (ce qui est le paramètre par défaut dans le paquet openssh-server sous Alpine Linux).
  • Activation de la fonctionnalité d'authentification par mot de passe (Password Authentication) dans les paramètres SSH.
  • Existence d'au moins un compte dont le mot de passe a été désactivé à l'aide d'un astérisque (*).

Comment se protéger et vérifier

Les développeurs d'OpenSSH ont publié la version 10.6p2 qui corrige définitivement cette vulnérabilité. Il est conseillé aux administrateurs système de mettre à jour les paquets OpenSSH immédiatement. En cas d'impossibilité de mise à jour immédiate, les risques peuvent être réduits en désactivant l'authentification par mot de passe dans le fichier de configuration en réglant PasswordAuthentication no et en redémarrant le service.

Pour vérifier la probabilité d'une compromission du système, il est possible d'examiner les journaux d'authentification à la recherche de connexions réussies sur des comptes censés être désactivés, en utilisant la commande suivante sous Alpine Linux :

grep "Accepted password" /var/log/messages
Source de l’actualité
c
Auteur

certi.news Editorial Team

Dans la même catégorie

À lire également

Voir toutes les actualités