内容提要
在Ubuntu 24.04中发现了特权升级漏洞,攻击者可以通过利用DBus接口和cupsd.conf配置文件从默认用户升级到root用户并执行任意命令。Ubuntu和cups团队已发布补丁修复漏洞。
延伸解读
漏洞利用链的复杂性
该漏洞并非单一缺陷,而是由多个组件的小问题串联而成:从DBus接口的Polkit规则绕过,到cupsd配置文件的符号链接攻击,再到利用cups外部程序执行和wpa_supplicant加载恶意共享库。攻击者需要逐步提升权限,最终获得root。这种链式利用展示了即使每个环节看似受限,组合后仍可能造成严重危害。
AppArmor的双重角色
AppArmor在漏洞利用中既是障碍也是帮手。它限制了cupsd对/etc和用户目录的写入,阻止了直接修改关键文件,但同时也迫使攻击者转向cups自身的配置文件,从而发现了通过cups-files.conf控制外部程序用户/组的途径。此外,AppArmor的规则还意外消除了竞态条件,使利用更稳定。这提醒我们安全机制可能产生非预期的副作用。
及时修补与缓解措施
Ubuntu安全团队和cups团队在收到报告后迅速响应,cups在报告当天就提出了补丁,移除了不安全的chmod调用并依赖umask设置权限,同时当cupsd通过systemd套接字激活时不再处理Listen指令。wpa_supplicant则通过强制共享库路径前缀来防止恶意加载。这些措施有效阻断了攻击链,强调了及时更新系统的重要性。
对安全研究的启示
作者强调,在寻找提权漏洞时应全面审视系统,不局限于单一组件。通过枚举DBus接口、分析Polkit规则和AppArmor策略,可以找到看似无关但可组合的弱点。此外,不必按顺序发现所有环节,平时积累对系统特性的知识有助于在利用时灵活拼接。这种整体性思维是发现复杂漏洞链的关键。
Q&A
Ubuntu 24.04中的特权升级漏洞是如何被发现的?
该漏洞是通过利用DBus接口和cupsd.conf配置文件,从默认用户升级到root用户并执行任意命令被发现的。
DBus在Ubuntu 24.04中的作用是什么?
DBus是一个客户端/服务器的远程过程调用框架,允许特定用户调用其他进程中的方法,可能导致特权升级。
如何通过cupsd.conf配置文件实现权限提升?
攻击者可以通过修改cupsd.conf配置文件,控制外部程序的执行用户和组,从而实现特权升级。
Ubuntu和cups团队是如何应对这个漏洞的?
Ubuntu和cups团队迅速发布了补丁,修复了该漏洞并增强了系统安全性。
AppArmor在此漏洞中的作用是什么?
AppArmor限制了cupsd对某些文件的访问,防止了直接的权限提升,增强了系统的安全性。
利用cups的FoomaticRIPCommandLine选项有什么风险?
该选项可以执行任意命令,可能导致攻击者获得root权限,存在严重的安全风险。