Tecnología

Vulnerabilidad en Linux permite acceso sin contraseña

Vulnerabilidad en Linux permite acceso sin contraseña
Imagen: xataka.com. Uso informativo; los derechos pertenecen a su titular.

Una falla de seguridad que permaneció oculta durante años

Una vulnerabilidad en Linux ha expuesto un grave problema de seguridad que afecta a sistemas donde se intenta impedir el acceso mediante contraseña en ciertas cuentas. Esta falla en Linux, identificada con el código CVE-2026-123158 y bautizada como *sshole, permite a atacantes remotos acceder a determinadas cuentas sin necesidad de conocer la contraseña válida. El descubrimiento realizado por el investigador Özgün Kültekin de Wakefield revela cómo una serie de cambios aparentemente seguros implementados a lo largo de una década terminaron interactuando de manera imprevista.

El problema afecta específicamente a configuraciones de Alpine Linux que combinan OpenSSH con musl (una biblioteca básica del sistema) y que no utilizan PAM, el mecanismo estándar para gestionar la autenticación en sistemas Linux. Aunque el fallo se confirmó originalmente en Alpine, otras plataformas basadas en Linux podrían resultar comprometidas si reúnen las mismas condiciones técnicas. El 5 de noviembre, tanto OpenSSH como Alpine publicaron parches de seguridad para corregir esta vulnerabilidad de acceso sin contraseña.

Cómo funciona este fallo de seguridad

Para entender cómo es posible este acceso sin contraseña, es fundamental conocer SSH (Secure Shell), un protocolo ampliamente utilizado para administrar equipos de forma remota. SSH permite conectarse de manera segura a través de la red mediante contraseñas o claves criptográficas. OpenSSH es una de las implementaciones más populares de este protocolo.

En sistemas Linux, el archivo /etc/shadow almacena la información necesaria para verificar las contraseñas de las cuentas de usuario. Cuando el campo de contraseña en este archivo contiene un asterisco (*), la autenticación ordinaria por contraseña debería quedar bloqueada completamente, aunque otros métodos de autenticación como claves SSH podrían seguir siendo válidos.

El mecanismo detrás de la vulnerabilidad

El fallo de acceso sin contraseña surge cuando OpenSSH intenta verificar una contraseña para una cuenta que no debería aceptarlas. Al no encontrar los datos de contraseña en la cuenta protegida, el sistema utiliza información de otra cuenta local para efectuar la verificación. Cuando la contraseña introducida tiene una longitud entre 257 y 1.024 bytes, la función encargada de procesarla en la biblioteca musl devuelve un asterisco para indicar un error de validación.

El problema crítico es que ese mismo asterisco figura como marcador en la cuenta protegida (indicando que no se aceptan contraseñas). El servidor OpenSSH interpreta ambos valores como coincidentes y, de manera incorrecta, permite el acceso. Este es el mecanismo exacto que posibilita la vulnerabilidad de acceso sin contraseña en estos sistemas.

Origen histórico de esta falla de seguridad

La historia de este fallo es compleja y remonta varios años atrás. En 2012, musl implementó cambios en la forma de comunicar determinados errores y estableció límites de longitud al procesar contraseñas para prevenir ataques de denegación de servicio. En 2016, OpenSSH introdujo modificaciones adicionales para evitar que los atacantes pudieran averiguar qué usuarios existían en un sistema midiendo los tiempos de respuesta del servidor (un ataque conocido como timing attack).

Cuatro años después, en 2020, Alpine Linux ajustó la configuración de su cuenta de administrador para permitir acceso mediante claves SSH. Cada una de estas soluciones abordaba problemas de seguridad legítimos y diferentes, pero cuando se combinaron en determinadas configuraciones, terminaron generando esta nueva vulnerabilidad de acceso sin contraseña de forma completamente inesperada.

¿Qué sistemas Linux están realmente en riesgo?

Una pregunta crucial es identificar qué equipos y servidores pueden estar afectados por esta vulnerabilidad. Simplemente utilizar Alpine Linux no garantiza automáticamente ser vulnerable. Como explican especialistas en ciberseguridad, el fallo requiere que se cumplan varias condiciones muy específicas y simultáneamente.

Condiciones necesarias para la vulnerabilidad

Entre los requisitos técnicos están: que OpenSSH funcione sin PAM, que admita contraseñas como método de autenticación, que exista una cuenta con el asterisco de bloqueo mencionado, y que al menos otra cuenta local activa tenga un hash de contraseña generado mediante SHA-256 o SHA-512. Los sistemas que desactivan completamente la autenticación por contraseña no son vulnerables, al igual que aquellos que utilizan PAM para gestionar la autenticación.

Las imágenes oficiales de Alpine utilizadas en entornos cloud son particularmente preocupantes. En muchos casos, la cuenta alpine puede ejecutar comandos de administrador mediante doas sin introducir contraseña. Aunque estas imágenes son seguras al arrancar inicialmente, pueden volverse vulnerables si posteriormente se configura una cuenta local con un hash de contraseña compatible.

Riesgos y explotación en el mundo real

Las consecuencias pueden ser especialmente graves cuando la cuenta comprometida dispone de permisos elevados o acceso administrativo. Un atacante que logre acceso sin contraseña a través de esta vulnerabilidad podría potencialmente controlar completamente el sistema afectado. Existen ya indicios confirmados de que esta vulnerabilidad está siendo explotada activamente en el mundo real.

La empresa de seguridad Previdian ha detectado ocho intentos de explotación desde una misma dirección IP y ha confirmado al menos un acceso exitoso con privilegios de administrador en uno de sus servidores señuelo utilizados específicamente para detectar este tipo de ataques.

Soluciones y recomendaciones de seguridad

La respuesta a este descubrimiento ha sido rápida. OpenSSH publicó el 5 de noviembre la versión 10.6p2 que corrige el fallo, mientras que Alpine distribuye actualizaciones para distintas ramas de su sistema operativo, incluyendo versiones antiguas que aún reciben soporte de seguridad.

Pasos para protegerse

Los responsables de seguridad aclaran que instalar los parches de actualización no es suficiente por sí solo. También es absolutamente necesario reiniciar el servicio SSH para que el sistema utilice el código corregido. Para aquellos que aún no pueden actualizar inmediatamente, se recomienda desactivar la autenticación mediante contraseña en la configuración de OpenSSH y reiniciar también el servicio para aplicar este cambio. Antes de implementar estos cambios, es esencial verificar que el acceso mediante claves criptográficas funciona correctamente para evitar bloqueos accidentales.

Este incidente subraya la importancia de las actualizaciones de seguridad y cómo las capas de protección, aunque se implementen correctamente de forma individual, pueden interactuar de maneras inesperadas cuando se combinan en configuraciones específicas.

Más de Tecnología