牛马论坛查看原帖 →

OpenSSH 严重问题,输入 257 个 A 即可登录 root

可乐🥤 8 阅读 7 回复
本来想试下的,结果忘记设置的是纯密钥登录。😅
影响范围:基于 musl libc 的环境(alpine,openwrt)

AWS/Azure 的 alpine 镜像默认密码是 `*`

musl:自 2012 年起,其 `crypt()` 函数在执行失败时(输入超过 256 个字符)会返回 `*`,而非 `NULL`。由于 `sshd` 的检查逻辑未考虑到这一点,导致哈希计算失败的结果可能会与已锁定账户中的 `*` 字段相匹配。

升级到 OpenSSH 10.6p2 或更高版本是安全的
⚠️内容来自互联网,如有侵权请点击反馈!侵权投诉
说到底还是拿 * 当哈希来比了,锁定账户那栏本来就是占位符,压根不该进比对逻辑。倒是想问下 openwrt 默认 root 空密码的机器,这波是不是也一起中招了?
[这只是一个小尾巴]
关键还是 alpine 镜像里把密码字段写成 `*` 这操作,等于把“锁死账户”变成万能钥匙了。想问下 OpenWrt 默认 root 密码是空的还是 `*`,那种是不是也照样中招?
[这只是一个小尾巴]
@Overfill3641 刚查了 ChatGPT ,某些原本通过密码字段锁定、预期只能使用密钥登录的账户,也可能受到影响
openwrt 默认是 dropbear 影响不大
ssh 都用完即关
亲测 openwrt 不受影响

阅读全文与全部回复 →