Un hallazgo de seguridad reciente, destacado en el sitio web sshhole.com, identifica una vulnerabilidad derivada de un cambio en la biblioteca C musl. La biblioteca musl, que es la biblioteca C por defecto para Alpine Linux, modificó el comportamiento de la función `crypt()`. Anteriormente, la función devolvía NULL si encontraba un error. Sin embargo, en la implementación actualizada, la función ahora devuelve un solo carácter en lugar de NULL tras un fallo. Se informó que este cambio se realizó para adaptarse a programas que no verifican correctamente los retornos NULL, pero introduce un riesgo de seguridad en configuraciones específicas.

Este comportamiento afecta específicamente a los sistemas que no utilizan Pluggable Authentication Modules (PAM). En estos entornos, un sistema podría intentar autenticar a un usuario comparando la salida de la función `crypt()` con un hash de contraseña almacenado. Si un atacante proporciona una contraseña que provoca que la función `crypt()` falle, la función ahora devuelve un solo carácter. Si ese carácter coincide con el primer carácter del hash almacenado, la comprobación de autenticación podría tener éxito. Esto es particularmente relevante para sistemas que utilizan contraseñas largas, donde el primer carácter del hash es un objetivo predecible. Los comentaristas en Hacker News señalaron que, si bien muchos sistemas utilizan PAM para gestionar la autenticación, ciertas configuraciones —especialmente aquellas en contenedores Docker— podrían seguir siendo vulnerables.

Las implicaciones prácticas de este hallazgo son más significativas para el gran ecosistema de contenedores Docker construidos sobre Alpine Linux. Aunque solo una pequeña minoría de estos contenedores podría ejecutar OpenSSH con autenticación por contraseña habilitada sin PAM, el enorme volumen de imágenes basadas en Alpine significa que incluso un pequeño porcentaje puede representar un gran número de objetivos vulnerables. Para remediar el problema, se aconseja a los usuarios que desactiven la autenticación por contraseña estableciendo `PasswordAuthentication=no` en su configuración de SSH o que actualicen sus sistemas a una versión parcheada. El descubrimiento también ha generado un debate sobre la decisión de los desarrolladores de musl de priorizar la 'conveniencia' sobre la adherencia estricta a los estándares POSIX en funciones criptográficas fundamentales.