
2026年5月15日,Linux内核中一项信息泄露安全漏洞被公开披露。该漏洞由Qualys研究团队上报,并已通过主线内核代码完成修复。公开后不久,相应的概念验证(PoC)利用程序也随之公布。该漏洞被分配了编号CVE-2026-46333,根据PoC利用程序的特征,也被称为“ssh-keysign-pwn”。
这是一类条件竞争(race condition)漏洞,可导致无特权的本地用户读取系统中的敏感文件。PoC演示了如何利用该漏洞获取/etc/shadow文件内容(其中包含本地用户的哈希密码)以及OpenSSH服务器主机私钥。后者可能被用于SSH中间人攻击,或影响基于主机认证(host-based authentication)的安全性。
CISA为该漏洞分配了CVSS 3.1评分5.5(中等严重性),Canonical认同该评分。但Ubuntu将其安全优先级评定为“高”,原因是无特权用户可借此窃取本地敏感信息。本文介绍一种缓解措施,可阻止漏洞被利用,代价是无特权用户将无法使用调试工具(如gdb和gcore)。
漏洞的核心机制是:当SUID或SGID可执行文件在退出时仍然保持敏感文件打开状态,攻击者可通过调用该特权程序,在其退出的一小段窗口内,利用ptrace()系统调用检查被调用进程的内存,从而读取这些文件的内容。具体已演示的利用场景包括:
/usr/bin/chage读取/etc/shadow文件。该文件包含本地用户的密码哈希值,攻击者需要额外进行暴力破解才能还原明文密码。Ubuntu使用的密码哈希算法强度较高,但前提是用户密码符合当前最佳实践。/usr/lib/openssh/ssh-keysign读取OpenSSH服务器主机私钥。这些私钥用于向客户端证明服务器身份,防止中间人攻击。此外,主机密钥还用于基于主机的认证(host-based authentication)场景,泄露后可能导致部署了该认证方式的环境中出现用户冒充风险。在容器部署环境中,可被泄露的信息仅限于容器内部,通常不会对攻击者产生实际价值。
在Ubuntu系统中,漏洞修复将通过Linux内核镜像包分发。在内核安全更新可用之前,可按以下说明应用缓解措施。注意,缓解措施会影响调试工具(如gdb),但一旦内核更新完成,便不再需要此措施。
| 发布版本 | 软件包名称 | 修复状态 |
|---|---|---|
| Trusty Tahr (14.04 LTS) | linux | 受影响 |
| Xenial Xerus (16.04 LTS) | linux | 受影响 |
| Bionic Beaver (18.04 LTS) | linux | 受影响 |
| Focal Fossa (20.04 LTS) | linux | 受影响 |
| Jammy Jellyfish (22.04 LTS) | linux | 受影响 |
| Noble Numbat (24.04 LTS) | linux | 受影响 |
| Questing Quokka (25.10) | linux | 受影响 |
| Resolute Raccoon (26.04 LTS) | linux | 受影响 |
上表中列出的所有Ubuntu发布版本均受影响,无例外。
缓解措施的核心是禁止无特权用户通过ptrace()系统调用附加到其他进程。此功能通常被调试器使用。通过设置kernel.yama.ptrace_scope sysctl参数,可以限制该调用的使用条件。Ubuntu默认值为1,要求攻击者的进程与目标进程存在祖先-后代关系。以下两个值可进一步缩小范围:
2:禁止没有CAP_SYS_PTRACE权限的用户使用ptrace(),大多数用户不具备该能力。因此攻击者通常无法利用此功能。但这也意味着无特权用户将无法使用依赖ptrace的调试工具(如gdb和gcore)。3:完全禁用通过ptrace()附加到进程的功能。所有用户(包括root)的调试工具都会受影响。注意:如果将sysctl设置为3,在系统重启之前无法更改该值。
以下命令可立即更改当前运行值,并创建持久化配置文件(/etc/sysctl.d/99-CVE-2026-46333.conf)以在重启后保持该设置。我们建议将值设为2作为足够的缓解措施。若需使用3,可相应调整命令。
echo kernel.yama.ptrace_scope=2 | sudo tee /etc/sysctl.d/99-CVE-2026-46333.conf
sudo sysctl -p /etc/sysctl.d/99-CVE-2026-46333.conf
在内核安全更新可用并安装后,可移除该缓解配置:
sudo rm /etc/sysctl.d/99-CVE-2026-46333.conf
sudo sysctl kernel.yama.ptrace_scope=1
建议不要将该参数设为0,因为这样做会禁用该特性的保护功能,具体说明可参考此文档。
关注微信号:智享开源 ,访问网站:www.imcn.me
原文链接:https://ubuntu.com//blog/ssh-keysign-pwn-linux-vulnerability-fixes-available
| 投稿作者 | 作者网站 |
|---|---|
你必须 登录 才能发表评论.
| 微信捐赠 | 支付宝捐赠 |
|---|---|
![]() |
![]() |
扫码关注公众号:智享开源

[blog_mailer_subscribe]
还没有任何评论,你来说两句吧!