Osegi
Seguridad·2 min de lectura

OpenSSH: 257 caracteres abrían cuentas bloqueadas en Linux

Durante diez años, una contraseña de 257 a 1.024 caracteres abría cuentas bloqueadas mediante OpenSSH en sistemas Linux con musl. OpenSSH 10.6p2 corrige el fallo.

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

Durante más de diez años pasó inadvertido un fallo de OpenSSH: en algunos servidores Linux, una cuenta bloqueada podía abrirse con cualquier contraseña de entre 257 y 1.024 caracteres. Apodado «*sshole», afecta a sistemas que usan la biblioteca musl, como Alpine Linux. OpenSSH 10.6p2, publicada el 5 de noviembre, lo corrige.

El fallo lo reveló a principios de noviembre Ozgun Kultekin, investigador de Wakefield. Según explica, compiló OpenSSH de doce maneras distintas y sometió cada versión a unos 17.600 intentos de acceso inusuales, generados por agentes de IA. Solo una configuración reaccionaba de forma diferente.

Cuando el asterisco se convierte en llave

Un servidor no compara las contraseñas tal cual: las pasa por una función matemática y compara el resultado con el valor guardado. Para las cuentas que nunca deben aceptar contraseña, como root en muchos sistemas, la convención de Unix desde 1980 es guardar un simple asterisco, que ningún cálculo puede producir.

En 2012, musl hizo que su función también devolviera un asterisco al fallar, y falla cuando la contraseña supera los 256 caracteres. En 2016, OpenSSH corrigió un defecto de tiempos de respuesta que delataba qué cuentas existían. Para igualarlos, el servidor empezó a hacer el cálculo incluso con cuentas bloqueadas. Así, una contraseña larga producía un asterisco idéntico al almacenado y el acceso se aceptaba.

Quién está expuesto

Deben darse varias condiciones: el servidor usa musl (como Alpine, OpenWrt, Buildroot o Yocto), no pasa por PAM, permite el acceso por contraseña, algo que OpenSSH hace por defecto, y tiene una cuenta bloqueada con asterisco y otra con contraseña real. Desde Alpine 3.16, de 2022, root se bloquea así. En las imágenes oficiales de Alpine para AWS y Azure, la cuenta por defecto puede además obtener derechos de administrador sin contraseña.

Debian, Ubuntu, Fedora y los sistemas con PAM no se ven afectados. El investigador no tiene constancia de explotación activa.

Los administradores deben instalar OpenSSH 10.6p2 o, si no, desactivar el acceso por contraseña.

Apps que merecen la pena

SUMO: el puzle de números

Toca las casillas correctas, suma y alcanza el objetivo. Fácil de aprender, difícil de dominar. Gratis, para todas las edades.

Etiquetas:opensshlinuxmuslalpine linuxvulnerabilitysshole

Más de este día

Ver todas →

Más en: Seguridad

Ver todas →