Osegi
Sécurité·2 min de lecture

OpenSSH : 257 caractères suffisaient à ouvrir un compte verrouillé

Pendant dix ans, un mot de passe de 257 à 1 024 caractères suffisait à ouvrir un compte verrouillé via OpenSSH sur les systèmes musl. La version 10.6p2 corrige la faille.

Terminal window showing an SSH login prompt on a Linux server with a very long password being typed.
Image: Numerama

Pendant plus de dix ans, une faille d’OpenSSH est passée inaperçue : sur certains serveurs Linux, un compte verrouillé pouvait être ouvert avec n’importe quel mot de passe de 257 à 1 024 caractères. Surnommée « *sshole », elle touche les systèmes reposant sur la bibliothèque musl, comme Alpine Linux. OpenSSH 10.6p2, publiée le 5 novembre, la corrige.

La faille a été révélée début novembre par Ozgun Kultekin, chercheur chez Wakefield. Selon lui, il a compilé OpenSSH de douze manières différentes, puis soumis chaque version à environ 17 600 tentatives de connexion inhabituelles générées par des agents d’IA. Une seule configuration réagissait différemment.

Quand l’astérisque devient la clé

Un serveur ne compare pas directement les mots de passe : il les transforme avec une fonction mathématique, puis compare le résultat à la valeur enregistrée. Pour les comptes qui ne doivent jamais accepter de mot de passe, comme root sur de nombreux systèmes, la convention Unix veut depuis 1980 qu’on enregistre un simple astérisque, qu’aucun calcul ne peut produire.

En 2012, musl a décidé que sa fonction renverrait aussi un astérisque en cas d’échec, ce qui arrive dès qu’un mot de passe dépasse 256 caractères. En 2016, OpenSSH a ensuite corrigé un défaut de chronométrage qui révélait les comptes existants. Pour uniformiser les temps de réponse, le serveur effectue désormais le calcul même pour un compte verrouillé. Un mot de passe long produisait donc un astérisque, identique à celui enregistré : la connexion était acceptée.

Qui est exposé

Plusieurs conditions sont nécessaires : le serveur repose sur musl (Alpine, OpenWrt, Buildroot, Yocto), n’utilise pas PAM, autorise la connexion par mot de passe, ce qu’OpenSSH fait par défaut, et compte un compte verrouillé par astérisque ainsi qu’un autre avec un vrai mot de passe. Depuis Alpine 3.16, en 2022, root est verrouillé ainsi. Sur les images Alpine officielles d’AWS et d’Azure, le compte par défaut peut en outre devenir administrateur sans mot de passe.

Debian, Ubuntu, Fedora et les systèmes avec PAM ne sont pas concernés. Le chercheur n’a pas connaissance d’une exploitation active.

Les administrateurs doivent installer OpenSSH 10.6p2 ou, à défaut, désactiver la connexion par mot de passe.

Des apps à découvrir

SUMO : le puzzle de nombres

Touche les bonnes cases, additionne, atteins l'objectif. Facile à apprendre, difficile à maîtriser. Gratuit, pour tous les âges.

Mots-clés:opensshlinuxmuslalpine linuxvulnerabilitysshole

Plus d'actus de ce jour

Tout voir →

Plus dans: Sécurité

Tout voir →