Después de seis meses de desarrollo, se ha publicado la versión OpenSSH 10.3, una implementación abierta del cliente y servidores para trabajar con los protocolos SSH 2.0 y SFTP. Principales cambios:
- Se ha corregido una vulnerabilidad que permite a un atacante, que controla el nombre de usuario transmitido al iniciar la herramienta ssh, potencialmente ejecutar comandos shell arbitrarios. La vulnerabilidad se presenta en sistemas que utilizan la sustitución «%u» en algunas directivas del archivo de configuración, como «Match exec». El problema surge de la verificación de caracteres especiales en el nombre de usuario en la etapa posterior a la ejecución de las sustituciones %- en el archivo de configuración ssh_config.
- Se ha eliminado un problema de seguridad en sshd, causado por una comparación incorrecta de la opción authorized_keys principals=»» con la lista de nombres (principal) en el certificado en situaciones donde se especifica el carácter «,». Para explotar la vulnerabilidad, es necesario que la opción authorized_keys principals=»» contenga varios nombres y que la autoridad certificadora emita un certificado con varios nombres, separados por comas (lo cual normalmente no se permite). Se ha modificado el comportamiento respecto a los certificados con nombres vacíos: anteriormente, un nombre vacío se incluía en todas las opciones authorized_keys principals=»», pero ahora no se incluye.
- En scp se ha solucionado un problema que hacía que, después de cargar un archivo con permisos de root utilizando la opción «-O» y sin la opción «-p», no se limpiaran los flags setuid/setgid.
- En sshd se ha corregido un problema con el manejo de claves ECDSA en las directivas PubkeyAcceptedAlgorithms y HostbasedAcceptedAlgorithms, que hacía que al especificar cualquier algoritmo ECDSA (por ejemplo, «ecdsa-sha2-nistp384») también se aceptaran todos los demás algoritmos basados en ECDSA, incluso si no estaban explícitamente enumerados en la lista de permitidos.
- En ssh y sshd, al interactuar con los agentes SSH, se ha agregado soporte para los identificadores (codepoint) definidos por IANA en la especificación draft-ietf-sshm-ssh-agent. Se ha mantenido el soporte para los identificadores previamente utilizados en forma de «@openssh.com».
- En ssh-agent se ha implementado la extensión «query», definida en la especificación draft-ietf-sshm-ssh-agent, que permite determinar las funciones soportadas por el agente. Para solicitar una lista de las extensiones del protocolo soportadas a través de la solicitud «query», se ha agregado la opción «-Q» a la utilidad ssh-add.
- En sshd_config se permite especificar varios archivos en la directiva RevokedKeys, mientras que en ssh_config se permite en la directiva RevokedHostKeys.
- Se ha agregado el comando de escape «~I» y la opción «-O conninfo» en ssh para mostrar información sobre la conexión actual, así como la opción «-O channels» para mostrar información sobre los canales abiertos.
- En sshd, en la directiva PerSourcePenalties se ha implementado la opción 'invaliduser' para añadir un retraso en caso de intento de acceso con un usuario inexistente (por defecto, 5 segundos). También se ha añadido la posibilidad de establecer valores no enteros para el retraso.
- Se ha añadido la opción GSSAPIDelegateCredentials en sshd para gestionar la recepción de credenciales delegadas proporcionadas por el cliente.
- Se ha añadido soporte para guardar claves ED25519 en formato PKCS8 en ssh-keygen.
- Se ha añadido soporte para el esquema de firmas digitales ed25519, implementado a través de libcrypto.
Fuente: opennet.ru
