[{"data":1,"prerenderedAt":226},["ShallowReactive",2],{"seo-verification":3,"blog-openssh-10-6p2-alpine-omision-contrasena-verificar-ma-es":6,"promo-bar-likely":20},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-openssh-10-6p2-alpine-omision-contrasena-verificar-ma-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":20,"publishedAt":21,"updatedAt":22,"category":23,"categories":29,"featuredImage":31,"bgImage":32,"posterImage":33,"relatedSolution":31,"intro":34,"sections":35,"ctaTitle":166,"ctaBody":167,"ctaButton":168,"ctaUrl":169,"relatedPosts":170},570,"openssh-10-6p2-alpine-omision-contrasena-verificar",{"fr":12,"en":13,"ar":14,"es":10},"openssh-10-6p2-alpine-contournement-mot-de-passe-verifier","openssh-10-6p2-alpine-password-bypass-check-fix","ثغرة-openssh-10-6p2-تجاوز-كلمة-المرور-alpine-فحص","OpenSSH 10.6p2: evasión de contraseña en Alpine","OpenSSH 10.6p2 corrige una evasión de la autenticación por contraseña en Alpine y musl: compruebe su exposición, actualice y busque rastros en los registros.",9,0,false,true,"2026-11-06T00:00:00+00:00","2026-11-08T01:13:02+00:00",{"id":24,"name":25,"slug":26,"color":27,"icon":28},8,"Seguridad y monitorización","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[30],{"id":24,"name":25,"slug":26,"color":27,"icon":28},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fopenssh-10-6p2-alpine-contournement-mot-de-passe-verifier-poster.svg","El 5 de noviembre de 2026, OpenSSH 10.6p2 corrigió una evasión de la autenticación por contraseña que afecta a los sistemas Linux con musl cuyo `sshd` está compilado sin PAM, empezando por Alpine. Una contraseña de 257 a 1024 bytes basta para entrar en una cuenta que no tiene ninguna, si otra cuenta de la máquina sí la tiene. Los sistemas Debian, Ubuntu y AlmaLinux no están afectados. Aquí tiene las cinco condiciones, el procedimiento de comprobación, los paquetes corregidos por rama de Alpine y los rastros que conviene buscar en los registros, incluidos sus contenedores y sus imágenes.",[36,40,49,52,85,88,116,147,150,153,156,163],{"type":37,"title":38,"body":39},"h2","Lo que dicen OpenSSH y Alpine, y lo que no dicen","OpenSSH 10.6p2 se publicó el 5 de noviembre de 2026. Sus notas de versión anuncian la corrección de una evasión de la autenticación por contraseña, explotable a través de `sshd`, en ciertos sistemas Linux compilados sin PAM. Ese mismo día, Alpine Linux publicó un aviso que detalla el mecanismo, las condiciones y los paquetes corregidos. El fallo fue comunicado por Özgün Kültekin, de Wakefield.\n\nDos precisiones útiles antes de actuar. Primero, no se había asignado ningún identificador CVE en la fecha del aviso de Alpine; algunos artículos de prensa citan uno, y no lo recogemos por falta de fuente primaria. Segundo, los mantenedores de OpenSSH consideran que la causa raíz está fuera de `sshd` y han esquivado el problema dentro de `sshd`: la corrección está, por tanto, en el paquete OpenSSH, no en la biblioteca C. En el momento de escribir, no conocemos ningún informe público de explotación, pero el detalle técnico es público: dé por hecho que habrá escaneos.",{"type":41,"title":42,"items":43},"ul","Las cinco condiciones, todas necesarias",[44,45,46,47,48],"**Una biblioteca C musl** — es el caso de Alpine y de otros sistemas embebidos que usan musl, como OpenWrt. Debian, Ubuntu, Fedora y AlmaLinux usan glibc y no están afectados.","**`sshd` sin PAM** — el paquete `openssh-server` de Alpine se compila sin PAM; `openssh-server-pam` con `UsePAM no` también. Con `UsePAM yes`, no está afectado.","**`PasswordAuthentication yes`** — es el valor por defecto de OpenSSH. Si lo ha cambiado a `no`, el fallo no es alcanzable.","**Una cuenta cuyo campo de contraseña vale `*`** — un usuario creado sin contraseña para conectarse con clave, un usuario de directorio gestionado por musl-nscd, o el usuario `alpine` de las imágenes cloud oficiales.","**Al menos otra cuenta con una contraseña real** (un hash `$5$` o `$6$`) — basta una sola para exponer todas las cuentas sin contraseña.",{"type":37,"title":50,"body":51},"Por qué basta una contraseña de 257 bytes","Sin PAM, `sshd` calcula el hash de la contraseña introducida con `crypt()` y compara el resultado con el campo almacenado en `\u002Fetc\u002Fshadow`. Para las cuentas cuyo campo es demasiado corto para contener una sal, `sshd` toma prestada la de otra cuenta, para no revelar por el tiempo de respuesta que un nombre de usuario no tiene contraseña.\n\nEn musl, `crypt()` devuelve la cadena `*` como valor de error cuando la clave supera los 256 bytes. Pues bien, `*` es también, en `\u002Fetc\u002Fshadow`, el valor de una cuenta sin contraseña. La comparación tiene éxito: la conexión pasa sin que nadie haya adivinado nada. El aviso de Alpine indica la ventana explotable: una contraseña de 257 a 1024 bytes. No es un defecto criptográfico ni una corrupción de memoria, es un error de lógica: un valor de error tomado por un resultado.",{"type":53,"title":54,"headers":55,"rows":59},"comparison","Quién está afectado y quién no",[56,57,58],"Configuración","¿Afectado?","Por qué",[60,64,68,71,74,77,81],[61,62,63],"Alpine, `openssh-server`, contraseñas activadas, una cuenta con `*` y una cuenta con `$6$`","Sí","Se cumplen las cinco condiciones",[65,66,67],"Alpine, `openssh-server-pam` con `UsePAM yes`","No","La autenticación pasa por PAM, no por `crypt()` en `sshd`",[69,66,70],"Alpine con `PasswordAuthentication no`","No se intenta ninguna autenticación por contraseña",[72,66,73],"Debian, Ubuntu, AlmaLinux, Rocky (glibc)","La comparación no recibe el valor de error `*`",[75,66,76],"Contenedor Alpine sin `sshd`","No hay ningún servicio SSH que atacar",[78,79,80],"Cuenta bloqueada con `!` en lugar de `*`","No para esa cuenta","`!` no coincide con el valor de error",[82,83,84],"Imagen cloud oficial de Alpine, sin contraseña definida","No en el primer arranque","El aviso la da por explotable en cuanto aparece un hash `$6$`, por ejemplo una contraseña definida desde la consola",{"type":37,"title":86,"body":87},"«Uso Debian o Ubuntu: ¿me afecta?»","No, no por este fallo: exige musl. Aun así, la objeción merece plantearse, porque la pregunta útil para un parque de servidores está en otra parte: ¿dónde hay Alpine sin haberlo elegido? Una imagen de contenedor que incluye un `sshd` para depuración, un equipo de red, un router con OpenWrt, una imagen construida con Buildroot o Yocto: todos pueden apoyarse en musl, según cómo se hayan construido. En un VPS con sistema Debian o Ubuntu, la exposición procede de un contenedor Alpine con `sshd` que usted ejecute en él, no del sistema anfitrión.\n\nUn inventario cabe en dos comandos por máquina: `ls \u002Flib\u002Fld-musl*` indica si el sistema usa musl, y `ps aux | grep sshd` indica si hay un servicio SSH en marcha. Hágalo también en sus contenedores, porque una imagen reconstruida el año pasado puede incluir todavía el paquete antiguo.",{"type":89,"title":90,"steps":91},"steps","Comprobar su exposición y después corregir",[92,95,98,101,104,107,110,113],{"title":93,"body":94},"Confirmar que el sistema usa musl","Ejecute `ls \u002Flib\u002Fld-musl*` o `ldd --version 2>&1 | head -1`. En Alpine, la respuesta menciona musl. En glibc, no hay nada que hacer para este fallo.",{"title":96,"body":97},"Anotar la versión de OpenSSH y la variante PAM","`apk info -vv | grep '^openssh'` lista los paquetes instalados. Anote si `openssh-server-pam` está presente y revise `UsePAM` en `\u002Fetc\u002Fssh\u002Fsshd_config`.",{"title":99,"body":100},"Leer la configuración realmente aplicada","`sshd -T | grep -i -E 'passwordauthentication|usepam|permitrootlogin'` muestra los valores efectivos, incluidos los de los bloques `Match` y los archivos incluidos. Una línea leída en el archivo no sustituye este control.",{"title":102,"body":103},"Listar las cuentas con `*` y las cuentas con contraseña real","`awk -F: '$2==\"*\" {print $1}' \u002Fetc\u002Fshadow` da las cuentas sin contraseña; `awk -F: '$2 ~ \u002F^\\$[56]\\$\u002F {print $1}' \u002Fetc\u002Fshadow` da las que tienen un hash. Si ninguna de las dos listas está vacía, se cumplen las condiciones 4 y 5.",{"title":105,"body":106},"Actualizar el paquete","`apk upgrade -U -a` instala la versión corregida. Alpine ha publicado paquetes corregidos para todas sus ramas, hasta la 3.16, incluidas las que ya no tienen soporte.",{"title":108,"body":109},"Reiniciar el servicio; sin ello, nada queda corregido","`rc-service sshd restart`. La actualización del paquete no sustituye al demonio en ejecución: mientras no se reinicie, responde el código antiguo. Mantenga una sesión abierta durante el reinicio y pruebe una segunda conexión antes de cerrarla.",{"title":111,"body":112},"Comprobar el resultado","Vuelva a leer `apk info -vv | grep '^openssh'` y después `sshd -T | grep -i passwordauthentication`. A continuación, abra una conexión con clave desde otro equipo para verificar que el acceso funciona.",{"title":114,"body":115},"Reconstruir las imágenes","Una imagen de contenedor o una imagen de VM no se corrige sobre el terreno: reconstrúyala a partir de una base corregida y vuelva a desplegarla. Anote la fecha de la corrección en el expediente del entorno.",{"type":53,"title":117,"headers":118,"rows":122},"Los paquetes corregidos por rama de Alpine",[119,120,121],"Rama","Paquete openssh corregido","Versión de la rama",[123,127,131,135,139,143],[124,125,126],"edge","10.6_p2-r0","—",[128,129,130],"3.24","10.3_p1-r2","3.24.4",[132,133,134],"3.23","10.2_p1-r1","3.23.8",[136,137,138],"3.22","10.0_p1-r11","3.22.8",[140,141,142],"3.21","9.9_p2-r1","3.21.10",[144,145,146],"3.20 y anteriores (hasta la 3.16)","9.7_p1-r6 (3.20) ; 9.0_p1-r6 (3.16)","Ramas sin soporte",{"type":37,"title":148,"body":149},"Buscar rastros antes de concluir que todo está en orden","Una corrección suprime el fallo; no borra lo que un atacante haya hecho antes. El aviso de Alpine recomienda buscar, en `\u002Fvar\u002Flog\u002Fmessages`, las líneas `Accepted password for` que afecten a cuentas que se supone que no tienen contraseña: `alpine`, `root` o un usuario reservado a las conexiones con clave. Una línea así es un indicio fuerte, ya que esas cuentas nunca deberían conectarse con contraseña.\n\nPara las cuentas que aparezcan, revise después el uso de `doas`, los usuarios creados recientemente, los archivos modificados y el contenido de cada `authorized_keys`. El aviso no deja dudas sobre la conducta a seguir: si no puede descartar una conexión, trate la máquina como comprometida, reconstrúyala y renueve los secretos que contenía. En las imágenes cloud oficiales el riesgo es mayor: el usuario `alpine` dispone allí de `doas` sin contraseña, lo que permite pasar a root una vez dentro.",{"type":151,"body":152},"tip","¿No puede actualizar de inmediato? Desactive la autenticación por contraseña, tras comprobar que una conexión con clave funciona y manteniendo abierta la sesión actual. Alpine propone un archivo en `\u002Fetc\u002Fssh\u002Fsshd_config.d\u002F` con `PasswordAuthentication no` (el directorio se lee por defecto desde la 3.19), siempre que no quede ninguna línea `PasswordAuthentication yes` en un bloque `Match`. Termine con `sshd -t`, un reinicio y después `sshd -T | grep -i passwordauthentication`, que debe mostrar `passwordauthentication no`. Para deshacerlo, elimine ese archivo.",{"type":37,"title":154,"body":155},"Solución de problemas: lo que puede ver al aplicar la corrección","Los mensajes siguientes son los de OpenSSH; aparecen en el cliente, en el terminal, y en el servidor, en el registro del servicio.",{"type":41,"title":157,"items":158},"Mensajes y remedios",[159,160,161,162],"**`Permission denied (publickey).`** — tras cortar las contraseñas, su clave no es aceptada. Mantenga la sesión abierta, revise `~\u002F.ssh\u002Fauthorized_keys` de la cuenta (permisos `600`, directorio `700`) y vuelva a leer `sshd -T | grep -i pubkeyauthentication`. No cierre la sesión de origen antes de tener una segunda conexión que funcione.","**`Bad configuration option`** seguido de un nombre, con un número de línea de `\u002Fetc\u002Fssh\u002Fsshd_config` — una errata en el archivo o en el archivo incluido. `sshd -t` la señala antes del reinicio: no reinicie nunca sin ese control.","**`sshd: no hostkeys available -- exiting.`** — faltan las claves de host, por ejemplo en una imagen donde no se generaron. Genérelas con `ssh-keygen -A` y vuelva a lanzar el servicio.","**El demonio sigue respondiendo con la versión antigua** — actualizó el paquete sin reiniciar. `rc-service sshd restart` y después vuelva a leer la versión anunciada al conectar.",{"type":37,"title":164,"body":165},"Lo que este fallo dice de su parque","No procede de una mala práctica espectacular: una cuenta sin contraseña, otra con contraseña, un valor por defecto. Cada una de esas decisiones es habitual, y es su combinación en un sistema poco frecuente lo que crea la exposición. La respuesta duradera es la misma de antes del fallo: en todo servidor accesible desde Internet, autentíquese con clave, desactive las contraseñas y sepa qué imágenes y qué contenedores incluyen un `sshd`.\n\nSi ya ha reforzado sus accesos, esta alerta se resuelve en diez minutos por máquina. Si no, es la ocasión de hacerlo: el procedimiento completo se describe en nuestra guía del primer acceso SSH, y la actualización de OpenSSH 10.6 sin perder el acceso, en el artículo dedicado a esa versión. Un VPS ServOrbit le da acceso root y la elección del sistema, lo que le deja el control de estos parámetros.","Un servidor cuyos accesos controla usted","En un VPS ServOrbit tiene el acceso root, la elección del sistema y el control de la configuración SSH: claves, contraseñas desactivadas y actualizaciones a su ritmo.","Descubrir los VPS","\u002Fvps-cloud",[171,188,207],{"id":172,"slug":173,"slugs":174,"title":178,"excerpt":179,"readTime":180,"views":181,"isPinned":19,"noindex":19,"publishedAt":182,"updatedAt":183,"category":184,"categories":185,"featuredImage":31,"bgImage":32,"posterImage":187,"relatedSolution":31},494,"openssh-10-6-actualizacion-seguridad-sshd",{"fr":175,"en":176,"ar":177,"es":173},"openssh-10-6-mise-a-jour-securite-sshd","openssh-10-6-security-update-sshd","تحديث-openssh-10-6-أمان-sshd","OpenSSH 10.6: actualizar sshd sin perder el acceso","Actualización de seguridad OpenSSH 10.6: comprobar la versión realmente activa, qué puede romperse (ProxyCommand, Compression) y recargar sshd sin riesgo.",12,2,"2026-10-22T00:00:00+00:00","2026-11-09T20:55:16+00:00",{"id":24,"name":25,"slug":26,"color":27,"icon":28},[186],{"id":24,"name":25,"slug":26,"color":27,"icon":28},"\u002Fblog\u002Fcovers\u002Fopenssh-10-6-mise-a-jour-securite-sshd-poster.svg",{"id":189,"slug":190,"slugs":191,"title":195,"excerpt":196,"readTime":181,"views":197,"isPinned":19,"noindex":20,"publishedAt":198,"updatedAt":199,"category":200,"categories":204,"featuredImage":31,"bgImage":32,"posterImage":206,"relatedSolution":31},452,"primer-acceso-ssh-vps",{"fr":192,"en":193,"ar":194,"es":190},"premier-acces-ssh-vps","first-ssh-login-vps","أول-اتصال-ssh-بخادم-vps","Conectarse por SSH a su VPS por primera vez","Obtenga la contraseña root de su VPS con el enlace de un solo uso recibido por correo y conéctese por SSH por primera vez.",1,"2026-10-16T00:00:00+00:00","2026-10-16T01:57:35+00:00",{"id":180,"name":201,"slug":202,"color":203,"icon":202},"Guías","guides","bg-emerald-500\u002F10 text-emerald-400",[205],{"id":180,"name":201,"slug":202,"color":203,"icon":202},"\u002Fblog\u002Fcovers\u002Fpremier-acces-ssh-vps-poster.svg",{"id":208,"slug":209,"slugs":210,"title":214,"excerpt":215,"readTime":216,"views":197,"isPinned":19,"noindex":19,"publishedAt":217,"updatedAt":218,"category":219,"categories":220,"featuredImage":31,"bgImage":32,"posterImage":222,"relatedSolution":223},109,"fail2ban-en-vps-bloquear-ataques-repetidos",{"fr":211,"en":212,"ar":213,"es":209},"proteger-vps-fail2ban","fail2ban-enhanced-on-vps-blocking-repeated-attacks","fail2ban-enhanced-على-خادم-vps-حجب-الهجمات-المتكررة","Fail2Ban Enhanced en VPS: bloquear ataques repetidos","Conecte Fail2Ban Enhanced al catálogo ServOrbit: bloqueo SSH\u002FNginx, logs legibles y documentación oficial.",11,"2026-03-03T00:00:00+00:00","2026-11-01T14:14:36+00:00",{"id":24,"name":25,"slug":26,"color":27,"icon":28},[221],{"id":24,"name":25,"slug":26,"color":27,"icon":28},"\u002Fblog\u002Fcovers\u002Fproteger-vps-fail2ban-poster.svg",{"categorySlug":224,"appSlug":225},"securite","fail2ban-enhanced",1794270640109]