CVE-2026-41651PackageKit是一个允许跨发行版安全管理软件包的D-Bus抽象层。在1.0.2至1.3.4版本中,存在一处严重的时间检查与时间使用(TOCTOU)竞争条件漏洞。该漏洞允许本地低权限用户利用交易标志处理的竞态,绕过身份验证机制,以root权限安装任意RPM软件包并执行脚本,从而导致本地权限提升。攻击者可借此完全控制受影响的系统。
该漏洞源于PackageKit在处理交易标志时存在时间检查与时间使用(TOCTOU)竞态条件。技术细节涉及`src/pk-transaction.c`中的三个关键缺陷:首先,`InstallFiles()`函数无条件地将调用者提供的标志写入`transaction->cached_transaction_flags`,未检查事务是否已授权或正在运行,允许第二次调用覆盖标志。其次,`pk_transaction_set_state()`静默拒绝非法的向后状态转换(如从RUNNING回退到WAITING_FOR_AUTH),导致事务在标志已被篡改的情况下继续运行。最后,调度程序的空闲回调在分发时而非授权时读取缓存标志。攻击者可利用这一时间差,在授权通过后、实际执行前覆盖标志,促使后端使用攻击者提供的标志,从而绕过安全检查以root权限安装恶意软件包。