CVE-2025-69257theshit是一个命令行工具,用于自动检测和修复shell命令中的常见错误。在0.1.1之前的版本中,该应用从用户可写的位置(如~/.config/theshit/)加载自定义Python规则和配置文件,但当以提升的权限执行时(如sudo),不会验证这些文件的所有权或权限。攻击者可以利用此漏洞在配置文件中注入恶意Python代码,当工具以root权限运行时,这些代码将以root身份执行,从而实现本地权限提升。在支持NOPASSWD的sudo环境中,非特权用户可以在无需任何交互的情况下将权限提升至root。
该漏洞的根本原因在于theshit工具缺乏对配置文件的所有权和权限验证机制。当以sudo或EUID=0方式运行时,应用程序继续信任来自普通用户环境的配置文件。具体来说,~/.config/theshit/目录下的规则文件(.rules文件)和配置文件可以被普通用户创建或修改。攻击者只需创建一个包含恶意Python代码的规则文件或配置文件,当root用户执行theshit时,这些代码将以root权限被加载和执行。修复后的版本0.1.1引入了严格的所有权和权限检查机制:(1) 当EUID=0时,只加载root拥有的文件;(2) 非root用户执行时,不加载其他用户拥有的规则;(3) 禁止加载任何非root用户可写的文件。这种双重检查机制有效防止了垂直(普通用户到root)和水平(一个用户到另一个用户)的权限提升攻击。