影响范围:基于 musl libc 的环境(alpine,openwrt)
AWS/Azure 的 alpine 镜像默认密码是 `*`
musl:自 2012 年起,其 `crypt()` 函数在执行失败时(输入超过 256 个字符)会返回 `*`,而非 `NULL`。由于 `sshd` 的检查逻辑未考虑到这一点,导致哈希计算失败的结果可能会与已锁定账户中的 `*` 字段相匹配。
升级到 OpenSSH 10.6p2 或更高版本是安全的
⚠️内容来自互联网,如有侵权请点击反馈!侵权投诉
3# SYS宇晖 说到底还是拿 * 当哈希来比了,锁定账户那栏本来就是占位符,压根不该进比对逻辑。倒是想问下 openwrt 默认 root 空密码的机器,这波是不是也一起中招了?
[这只是一个小尾巴]
4# SYS宇晖 关键还是 alpine 镜像里把密码字段写成 `*` 这操作,等于把“锁死账户”变成万能钥匙了。想问下 OpenWrt 默认 root 密码是空的还是 `*`,那种是不是也照样中招?
[这只是一个小尾巴]
@Overfill3641 刚查了 ChatGPT ,某些原本通过密码字段锁定、预期只能使用密钥登录的账户,也可能受到影响
openwrt 默认是 dropbear 影响不大