Alerte de sécurité · Critique
Alpine Linux OpenSSH : contournement de l'authentification par mot de passe dans sshd sans PAM (CVE-2026-123158)
· 6 minutes de lecture · Centoculus Security Team
Connue depuis le · attaques confirmées depuis le
Concernés: sshd d'OpenSSH sur Alpine Linux 3.16 à 3.24 et edge, compilé sans PAM ou avec UsePAM no, avant les paquets openssh corrigés (correctif amont : OpenSSH 10.6p2)
Ce qui s'est passé
Alpine Linux a publié un avis de sécurité pour son serveur OpenSSH le 2026-11-05. Il décrit un contournement de l'authentification par mot de passe. Une personne pouvant atteindre le port SSH peut se connecter aux comptes qui n'ont pas de mot de passe défini. Elle n'a besoin de connaître aucun mot de passe, et une seule connexion suffit. Aucun identifiant CVE n'avait été attribué au moment de la publication de l'avis par Alpine. Le problème est désormais suivi sous le nom CVE-2026-123158.
Le 2026-11-09, la CISA a ajouté la CVE-2026-123158 à son catalogue des vulnérabilités connues comme exploitées. La CISA ne donne aucun détail sur les attaques.
Selon Alpine, la cause réside dans la manière dont sshd vérifie les mots de passe lorsqu'il est compilé sans PAM. Il calcule l'empreinte de la tentative de mot de passe avec la fonction de la bibliothèque C crypt() et compare le résultat au champ de mot de passe stocké. Pour les comptes sans mot de passe, sshd emprunte le sel d'un autre compte. musl, la bibliothèque C utilisée par Alpine, renvoie la chaîne * depuis crypt() comme erreur lorsque le mot de passe dépasse 256 octets. * est aussi la valeur stockée dans le champ de chaque compte sans mot de passe ; la comparaison réussit donc et la connexion aboutit. Les développeurs d'OpenSSH ont modifié sshd pour éviter ce cas (commit 4353fdc, dans OpenSSH 10.6p2). Ils décrivent ce contournement comme touchant « certaines configurations et certaines configurations d'exécution ».
Qui est concerné
Le problème ne touche pas OpenSSH sous Linux de manière générale. L'avis d'Alpine indique que vous n'êtes concerné que si toutes les conditions suivantes sont réunies :
- Vous exécutez sshd sur Alpine Linux avec le paquet
openssh-server, compilé sans PAM. Ou vous exécutezopenssh-server-pamavecUsePAM no. PasswordAuthenticationvautyes. C'est la valeur par défaut d'OpenSSH.- Le système comporte un compte dont le champ de mot de passe dans
/etc/shadowvaut*. Cela inclut :root, livré avecroot:*depuis environ Alpine 3.16.rootne peut être atteint directement que siPermitRootLogin yesest défini. Cependant, tout autre compte accessible qui peut devenir root, par exemple viadoas, suffit.- Les utilisateurs n'utilisant que des clés, créés avec
addusersans mot de passe, ou avecusermod -p '*'. - Les utilisateurs d'annuaires passant par musl-nscd (nslcd, winbind, sssd).
- L'utilisateur
alpinedes images officielles tiny-cloud.
- Au moins un compte local possède un hachage de mot de passe
$5$ou$6$.
Alpine indique que les versions concernées sont 3.21 à 3.24, edge, ainsi que les versions plus anciennes 3.16 à 3.20.
Images tiny-cloud : les images officielles tiny-cloud de la version 3.18.11 à 3.24.3 contiennent un utilisateur alpine dont le champ de mot de passe vaut *, ainsi qu'un doas sans mot de passe. Elles deviennent exploitables dès qu'un hachage $6$ existe sur la machine. Cela se produit, par exemple, lorsqu'un administrateur définit un mot de passe pour la console ou lorsque les données utilisateur ajoutent un utilisateur avec hashed_passwd. Un attaquant peut alors se connecter en tant qu'alpine et devenir root.
Non concerné :
- Debian, Ubuntu, RHEL et les autres distributions basées sur glibc, dont sshd utilise PAM. Le comportement défectueux de
crypt()provient de musl. - Docker et les autres conteneurs n'exécutant pas sshd.
- Les systèmes avec
PasswordAuthentication no. - Les systèmes utilisant
openssh-server-pamavecUsePAM yes. - Les comptes verrouillés dont le champ de mot de passe commence par
!. - Les systèmes où aucun compte ne possède de hachage de mot de passe de type
$. - Les images cloud configurées avec cloud-init, qui définit
PasswordAuthentication no.
Que faire maintenant
-
Mettez à jour openssh sur chaque système Alpine qui exécute sshd :
apk upgrade -U -a. Le paquet corrigé est inclus dans Alpine 3.21.10, 3.22.8, 3.23.8 et 3.24.4. Les versions corrigées du paquetopensshsont :- edge : 10.6_p2-r0
- 3.24 : 10.3_p1-r2
- 3.23 : 10.2_p1-r1
- 3.22 : 10.0_p1-r11
- 3.21 : 9.9_p2-r1
- 3.20 : 9.7_p1-r6
- 3.19 : 9.6_p1-r3
- 3.18 : 9.3_p2-r4
- 3.17 : 9.1_p1-r7
- 3.16 : 9.0_p1-r6
La version 3.21 a atteint sa fin de support le 2026-11-01. Alpine a tout de même publié des paquets corrigés pour toutes les versions remontant à 3.16.
-
Redémarrez sshd :
rc-service sshd restart. La mise à jour du paquet ne redémarre pas le démon en cours d'exécution. Sans redémarrage, le système reste vulnérable. -
Si vous ne pouvez pas mettre à jour immédiatement, désactivez les connexions par mot de passe. Vérifiez d'abord que la connexion par clé SSH fonctionne, et gardez votre session actuelle ouverte jusqu'à ce qu'une nouvelle connexion ait réussi. Définissez ensuite
PasswordAuthentication no, y compris à l'intérieur des blocsMatchéventuels. Vérifiez la configuration avecsshd -t, redémarrez avecrc-service sshd restart, puis confirmez le réglage avecsshd -T | grep -i passwordauthentication. L'avis d'Alpine indiqué ci-dessous fournit des commandes prêtes à l'emploi pour cela. La mise à jour ou la désactivation des connexions par mot de passe suffit à fermer la faille. -
Mettez à jour toutes les instances en cours d'exécution issues d'images tiny-cloud antérieures à 3.21.10, 3.22.8, 3.23.8 et 3.24.4, ou désactivez l'authentification par mot de passe sur celles-ci. Ces images ne contiennent pas le paquet corrigé.
-
Si vous compilez vous-même OpenSSH sur un système basé sur musl sans PAM, passez à OpenSSH 10.6p2.
-
Recherchez sur les systèmes exposés des signes d'intrusion, comme décrit ci-dessous.
Comment vérifier si vous êtes concerné
- Vérifiez la distribution :
cat /etc/alpine-release. Si le fichier n'existe pas, le système n'est pas Alpine et cet avis ne s'applique pas. - Vérifiez le paquet installé :
apk info -v | grep openssh. Comparez la version avec la liste ci-dessus. - Vérifiez les réglages actifs de sshd :
sshd -T | grep -i -E 'usepam|passwordauthentication'. Vous n'êtes pas concerné par ce problème sipasswordauthentication noest affiché, ou si vous utilisezopenssh-server-pamet queusepam yesest affiché. - Recherchez les comptes sans mot de passe :
grep -E '^[^:]+:\*:' /etc/shadow. - Recherchez les comptes avec un hachage
$5$ou$6$:grep -E '^[^:]+:\$[56]\$' /etc/shadow.
Si les deux recherches renvoient des résultats, que l'authentification par mot de passe est activée et que le paquet n'est pas encore corrigé, le système est vulnérable.
Signes d'intrusion : recherchez dans /var/log/messages les lignes sshd Accepted password for concernant un compte sans mot de passe, comme alpine, root ou tout utilisateur n'utilisant que des clés. Examinez aussi l'utilisation de doas, les utilisateurs créés récemment, les fichiers modifiés récemment et les fichiers authorized_keys sur les machines exposées. Le conseil d'Alpine : si vous ne pouvez pas exclure une telle connexion, considérez la machine comme compromise.
Sources
Si vous exploitez des serveurs Linux, vérifiez aussi
Autres articles
Alertes de sécurité ·
Citrix NetScaler ADC et Gateway : failles mémoire critiques permettant un déni de service (CVE-2026-120868)
Citrix a corrigé neuf failles mémoire critiques dans NetScaler ADC et NetScaler Gateway pouvant entraîner un déni de service. La CVE-2026-120868 concerne tous les déploiements. Mettez à jour vers 14.1-73.57, 13.1-64.39 ou les builds FIPS correspondants.
Alertes de sécurité ·
PostgreSQL CVE-2026-6460 : les utilisateurs de base de données pouvant créer des objets peuvent exécuter du code sur le serveur
PostgreSQL 18.7, 17.12, 16.16, 15.20 et 14.25 corrigent CVE-2026-6460 ainsi que 51 autres failles. Un utilisateur de base de données pouvant créer des objets peut exécuter du code avec le compte système qui fait fonctionner PostgreSQL. Mettez à jour le serveur et les extensions C en même temps.
Alertes de sécurité ·
Node.js : les failles HTTP/2 et HTTPS permettent à des clients de faire planter des serveurs et de lire les données d'autres utilisateurs
Node.js a corrigé 16 vulnérabilités, dont sept classées à haut risque. Des clients non authentifiés peuvent faire planter des serveurs HTTP/2 ou lire la mémoire d'autres connexions, y compris des clés TLS. Les versions corrigées sont 22.23.5, 24.22.3 et 26.13.1.