musl 的 crypt() 失败不再返回 NULL,openssh 弱密码漏洞潜伏九年
cramforce · x · 2026-11-05
sshhole.com 长文复盘一个潜伏自 2016 年的问题:在 musl libc(Alpine、OpenWrt、buildroot、yocto 及大量 Docker 镜像的基础)上,本应完全禁止密码登录的账户(root、仅密钥的部署用户、LDAP 用户、Alpine 云镜像默认用户等)竟能接受任意超过 256 字符的密码登录。
文章脉络:
- 1980 年 Bill Joy 在 /etc/passwd 中用 标记 daemon 账户, 不是哈希,任何密码都无法匹配
- 现代系统哈希存于 /etc/shadow,sshd 用相同 salt 哈希比对验证
- Single Unix Spec 规定 crypt() 失败时返回 NULL,但很多程序不检查 NULL 直接比对导致崩溃
- 2012 年 musl 改为 crypt() 失败时返回单字符而非 NULL,由此引出后续与 openssh 交互的 bug
所属事件:musl 系统 OpenSSH 漏洞:超 256 字符密码可登录锁定账户(7 条相关)→
「安全」频道最新
- Pinokio 8.3.7 发布:因 eMudhra 证书事件转向安全优先架构 — cocktailpeanut · 2026-11-06
- 密码学家:可验证 LLM 或让智能体互信协作成为可能 — matthew_d_green · 2026-11-06
- 密码学学者发问:「去审查版」GLM 能否产出 0day,实测即知 — matthew_d_green · 2026-11-06
- 文章:AI 让攻击成本骤降,下一场网络危机将瞄准中小机构 — aleximm · 2026-11-06
- 谷歌 Astra 被拒请求真相:本地层触发真实安全训练,而非拒绝安全研究 — thebasepoint · 2026-11-06
- Wintermute 因虚荣地址被爆 1.6 亿美元:GPU 农场的算力恐怖故事 — LexSokolin · 2026-11-06