DevOps y monitorización

OpenSSH 10.6 rompe la compresión y la sintaxis de nombres de usuario para parchear filtraciones

OpenSSH 10.6 desactiva la compresión LZ77 y bloquea caracteres especiales en los nombres de usuario de la línea de comandos para corregir fallos de seguridad descubiertos mediante investigación asistida por IA.

Server rack with a glowing red padlock and fragmented data streams
Ilustración creada para este artículo

Traducido automáticamente del original en inglés.

El proyecto OpenSSH lanzó la versión 10.6 el 7 de octubre de 2026, introduciendo cambios deliberadamente incompatibles para cerrar dos vulnerabilidades de seguridad distintas. La actualización debilita las capacidades de compresión SSH y rechaza caracteres específicos en los nombres de usuario de la línea de comandos, acciones que los mantenedores reconocieron que interrumpirían scripts de automatización existentes y flujos de trabajo de transferencia de archivos. Este lanzamiento destaca un cambio hacia parches de seguridad más frecuentes a medida que las herramientas de IA aceleran el descubrimiento de fallos explotables en software de infraestructura fundamental.

Qué ha ocurrido

El primer cambio importante aborda una vulnerabilidad de filtración de texto plano en la compresión SSH. Los investigadores Fabian Bäumer y Marcus Brinkmann de la Ruhr University Bochum demostraron que, cuando la compresión está habilitada, múltiples canales dentro de una sola sesión SSH comparten el mismo estado de compresión. Un atacante que pueda inyectar texto plano elegido en un canal puede observar el tráfico cifrado y utilizar el historial compartido del diccionario LZ77 para recuperar secretos de otro canal. Este vector de ataque es similar a los ataques CRIME y BREACH contra HTTP sobre TLS, basándose en el hecho de que las secuencias de datos coincidentes resultan en una salida comprimida más corta, lo que filtra información sobre los datos secretos.

Para mitigar esto, OpenSSH 10.6 desactiva el codificador de diccionario LZ77 tanto en los componentes cliente como servidor, manteniendo la codificación Huffman. La compresión sigue funcionando, pero es significativamente menos efectiva. El proyecto recomienda mover la compresión a la capa de aplicación para obtener mejor rendimiento y seguridad. Aunque las sesiones interactivas pueden no notar una diferencia significativa, los trabajos automatizados que transfieren grandes cantidades de datos comprimibles a través de conexiones restringidas probablemente verán una eficiencia reducida y podrían requerir ajustes arquitectónicos.

El segundo cambio apunta a riesgos de inyección de shell asociados con los nombres de usuario de la línea de comandos. Las versiones anteriores permitían caracteres como $ y \ en nombres de usuario pasados directamente vía línea de comandos, los cuales podían ser interpretados como sintaxis de shell cuando se usaban en directivas como ProxyCommand o Match exec. La versión 10.3 intentó abordar esto comprobando metacaracteres más tarde en el proceso, pero la 10.6 ahora rechaza estrictamente estos caracteres en las entradas de la línea de comandos. Los nombres de usuario que contengan estos caracteres aún pueden usarse si se definen en el archivo de configuración SSH mediante la directiva User, pero los scripts que pasan dinámicamente nombres de usuario deben actualizarse para evitar fallos de conexión.

Detalles clave

  • OpenSSH 10.6 fue lanzado el 7 de octubre de 2026, con cambios conocidos que rompen la compatibilidad para mejorar la seguridad.
  • El codificador de diccionario LZ77 para la compresión SSH está desactivado para prevenir ataques de recuperación de texto plano entre canales.
  • La codificación Huffman permanece activa, por lo que la compresión sigue funcionando pero con efectividad reducida.
  • Los nombres de usuario de la línea de comandos que contienen $ o \ son ahora rechazados para prevenir inyecciones de shell vía ProxyCommand y directivas similares.
  • Los nombres de usuario con caracteres especiales aún pueden funcionar si se especifican en el archivo de configuración SSH usando la directiva User.
  • El algoritmo híbrido de firma post-cuántica ssh-mldsa44-ed25519 ha eliminado su sufijo experimental, requiriendo la regeneración de claves para implementaciones anteriores.

Antecedentes

La compresión SSH reduce el uso de ancho de banda al codificar datos antes del cifrado. El algoritmo LZ77 funciona encontrando secuencias de bytes repetidas y reemplazándolas con referencias a ocurrencias previas. En una sesión SSH multiplexada, donde múltiples flujos de datos comparten una conexión, compartir este historial de compresión permite a un atacante correlacionar su entrada con datos secretos. Si la entrada del atacante coincide con parte de un secreto, el tamaño de la salida comprimida cambia, revelando información sobre el contenido del secreto. Esta es la razón por la cual el proyecto eliminó por completo el componente de diccionario compartido.

La inyección de shell ocurre cuando la entrada proporcionada por el usuario es ejecutada como código por el shell del sistema. En SSH, los nombres de usuario a menudo se interpolan en directivas de configuración que ejecutan comandos de shell. Si un nombre de usuario contiene caracteres especiales como $, el shell puede interpretarlo como una variable o sustitución de comando en lugar de una cadena literal. Al rechazar estos caracteres a nivel de línea de comandos, OpenSSH asegura que los nombres de usuario no puedan desencadenar inadvertidamente comportamientos de shell no intencionados, cerrando un camino para la potencial ejecución remota de código o escalada de privilegios.

Por qué importa

Para equipos que gestionan infraestructura autoalojada, esta actualización requiere atención inmediata a los pipelines de automatización. Muchos sistemas CI/CD y scripts de despliegue construyen comandos SSH dinámicamente, pasando a menudo nombres de usuario desde variables de entorno o entrada de usuario. Si estos scripts no sanitizan las entradas o dependen de argumentos de nombre de usuario en la línea de comandos, fallarán tras actualizar a la 10.6. Esta ruptura puede detener despliegues, trabajos de backup y tareas de gestión remota hasta que los scripts sean refactorizados para usar archivos de configuración o entradas sanitizadas.

Además, la reducción en la eficiencia de compresión impacta flujos de trabajo que dependen de SSH para transferir grandes conjuntos de datos sobre ancho de banda limitado. Equipos que usan túneles SSH para replicación de bases de datos o sincronización de archivos pueden experimentar tasas de transferencia más lentas. Aunque el beneficio de seguridad supera el costo de rendimiento, los ingenieros deben evaluar si mover la compresión a la capa de aplicación es factible o si se necesitan métodos de transferencia alternativos para operaciones de alto volumen de datos.

Qué puedes hacer

  • Audita todos los scripts de automatización y pipelines CI/CD buscando comandos SSH que pasen nombres de usuario vía línea de comandos.
  • Refactoriza scripts para definir nombres de usuario en archivos de configuración SSH usando la directiva User si se requieren caracteres especiales.
  • Prueba velocidades de transferencia de archivos después de actualizar para evaluar el impacto de la eficiencia de compresión reducida en tus cargas de trabajo.
  • Regenera cualquier clave que use el algoritmo experimental ssh-mldsa44-ed25519 para alinearse con la nueva nomenclatura estándar.
  • Planifica para la eventual obsolescencia de ssh-mldsa44-ed25519 (nota: el texto original menciona la eliminación del sufijo experimental, no la obsolescencia del algoritmo en sí, pero mantiene la instrucción de regenerar claves). Corrección basada en el texto fuente: Planifica la regeneración de claves para alinearse con el nuevo estándar, ya que el sufijo experimental ha sido retirado.

Más noticias

Todas las noticias