跳到正文
Hacker News 首页hasheddan

musl libc 的 crypt 返回 "*" 哨兵值,导致 Alpine 上 sshd 可被未认证用户拿到(可能是 root)shell

*sshole, or when are we going to get rid of C?

musl libc 的 crypt 函数自 2012 年起对过长密码返回字符串 "*",与 Unix 上 "*" 表示锁定账户的旧约定冲突,在无 PAM 的 musl 系统(如官方 Alpine AWS 镜像)上让未认证用户获得可能是 root 的 shell。作者指出这不是内存安全漏洞,C 类型系统无法强制检查 NULL 返回值,而 Rust 社区规范不允许这种 in-band 哨兵值。

读原文 ↗导出 Markdown