信息来源:hackernews
苹果的安全专家Joe Vennix发现了一个漏洞(CVE-2019-18634),它允许非特权Linux和macOS用户以root身份运行命令。
此漏洞仅能在特殊配置下利用。
仅当“pwfeedback”选项已在sudo配置文件中启用时才能利用该漏洞。root的 pwfeedback 选项允许在用户输入密码时提供视觉反馈。
专家指出,即使用户不在用户文件中也可以触发此漏洞。
“无需获得 root 权限即可触发此漏洞,只需启用 pwfeedback 即可。” sudo 开发人员 Todd C. Miller 写道。
“在输入密码时,可以通过管道大量输入sudo进行复现。例如:”
$ perl -e 'print(("A" x 100 . "\x{00}") x 50)' | sudo -S id
Password: Segmentation fault
造成此漏洞的原因有两个:
-
从终端设备以外的其他设备读取时一般不会忽略pwfeedback选项。由于缺少终端,因此行擦除字符的版本始终为初始值0。
-
如果存在写错误,擦除星号行的代码将无法正确重置缓冲区位置,但是会重置剩余的缓冲区长度。这将导致getln()函数写到缓冲区以外。”
如果启用了该选项,可以在用户配置文件中将“Defaults pwfeedback” 改为 “Defaults !pwfeedback” 。
sudo 维护人员发布了 root 的 1.8.31版本。
“虽然 sudo 的1.8.26到1.8.30版本中也有逻辑错误,但是由于1.8.26之后的版本对EOF处理进行了改动,所以无法利用漏洞。”Miller解释道。
在2019年10月,Vennix 发现了一个Sudo绕过问题,即使“sudo用户配置”不允许进行root访问,恶意用户或恶意程序仍然可以在目标Linux系统上以root用户身份执行任意命令。