Lobsters | 📄 原文链接 | 2026-11-06 收录

一个星号就能进门:musl 版 sshd 的密码校验旁路

来源:sshhole.com — 2026-11

📋 概述

研究者用约 1.76 万次构造登录,把 OpenSSH 在各种 libc、PAM、shadow 组合下跑了一遍,只有「musl 且无 PAM」这一组放了不该放的人进门。根因是两条相隔二十天的老提交:musl 为了让 crypt() 不再返回 NULL,把失败结果改成单个星号;接着又给 sha512crypt 加了 256 字节上限,超长口令于是「失败并返回星号」,恰好等于 shadow 里表示账号被锁定的那个字段。结果是一个星号账号会接受 257 到 1024 字符之间的任意密码,而 Alpine 官方云镜像里的默认用户正是这种状态,并且可以免密 doas 到 root。

🔑 核心要点

💡 金句

于是那个星号账号会接受 257 到 1024 个字符之间的任意密码。
← 返回 Lobsters 首页