威胁简报
恶意软件
漏洞攻击
今天,我们与发行版维护者合作,公开披露了一个高危漏洞(CVSS 3.1:8.8),该漏洞会影响多个 Linux 发行版的默认安装。任何本地非特权用户都可以利用 Pack2TheRoot 漏洞获取易受攻击系统的 root 权限。
漏洞存在于 PackageKit 守护进程中,这是一个跨发行版的软件包管理抽象层。
该漏洞允许非特权攻击者在未经授权的情况下安装或删除系统软件包。攻击者可以利用此漏洞获取完全 root 权限或以其他方式入侵系统。
Pack2TheRoot (CVE-2026-41651) 漏洞是由 德国电信红队 在针对现代 Linux 系统本地权限提升途径进行专项研究时发现的。我们最初注意到 PackageKit 是一个候选漏洞,因为我们发现一个 pkcon install 命令可以在 Fedora 工作站上无需密码即可安装系统软件包。从 2025 版本开始,我们着手调查这种行为是否可以被滥用以实现任意软件包安装。通过引导人工智能辅助研究朝着特定方向发展(使用 Anthropic 公司的 Claude Opus),我们发现了一个可利用的漏洞。该发现经过人工审核和验证后,我们负责任地将其报告给了 PackageKit 的维护者,他们确认了该问题及其可利用性。
哪些版本和系统存在漏洞?
>= 1.0.2 所有介于和之间的 PackageKit 版本 <= 1.3.4 均存在漏洞。由于 PackageKit 1.0.2 发布至今已超过 12 年,这导致其在 Linux 发行版中存在广泛的攻击面。已在以下发行版的默认安装中,使用 apt 和 dnf 包管理器后端,对漏洞的可利用性进行了明确的测试和确认:
- Ubuntu Desktop 18.04 (EOL)、24.04.4 (LTS)、26.04 (LTS beta)
- Ubuntu Server 22.04 - 24.04 (LTS)
- Debian Desktop Trixie 13.4
- RockyLinux Desktop 10.1
- Fedora 43 桌面版
- Fedora 43 服务器
可以合理推断,所有启用了 PackageKit 的发行版都存在漏洞。由于 PackageKit 是 Cockpit 项目的可选依赖项,因此许多安装了 Cockpit 的服务器也可能存在漏洞,包括 Red Hat Enterprise Linux (RHEL)。
PackageKit 1.3.5 版本及其后续版本已修复此漏洞。更新将于今日(2026年4月22日)12:00 CEST 起提供。
如何检查您的系统是否存在漏洞
仅仅检查进程列表是不够的 grep,因为 PackageKit 和 Cockpit 不一定作为持久进程运行,它们可以通过 D-Bus 按需激活。首先检查您的系统是否安装了 PackageKit,并将其与存在漏洞的版本进行比较,例如:
dpkg -l | grep -i packagekit
or
rpm -qa | grep -i packagekit
注意 grep 标志 -i,因为该软件包可能以驼峰命名法安装为 PackageKit。
要检查 PackageKit 守护进程是否可用,请运行 sudo systemctl status packagekit 或 pkmon。如果 systemctl 显示为 loaded 或 running,或者 pkmon 显示事务输出,则表示该守护进程处于活动状态,如果未打补丁,您的系统可能存在安全漏洞。
更新后的软件包
尽管官方发布了修复版本 1.3.5,但多个发行版仍然发布了打过补丁的软件包。以下链接提供了各个发行版的软件包概览,其中展示了各发行版特有的打过补丁的版本。
妥协指标(IOC)
尽管该漏洞可在数秒内被可靠地利用,但它会留下痕迹,足以作为系统遭到入侵的有力证据。成功利用后,PackageKit 守护进程会遭遇断言失败并崩溃。Systemd 会在下一次 D-Bus 调用时恢复该守护进程,从而防止拒绝服务攻击,但系统日志中仍可观察到此次崩溃:
# journalctl --no-pager -u packagekit | grep -i emitted_finished
Apr 18 09:56:36 Rocky10 packagekitd[2082]: PackageKit:ERROR:../src/pk-transaction.c:514:pk_transaction_finished_emit: assertion failed: (!transaction->priv->emitted_finished)
Apr 18 09:56:36 Rocky10 packagekitd[2082]: PackageKit:ERROR:../src/pk-transaction.c:514:pk_transaction_finished_emit: assertion failed: (!transaction->priv->emitted_finished)
技术细节
我们目前暂不公开漏洞根本原因的技术细节。我们计划稍后在此处添加这些信息。
概念验证
我们已开发出一个可行的概念验证方案,该方案能够可靠地利用此漏洞,在各种发行版的默认安装中,以非特权本地用户身份执行 root 代码。然而,出于显而易见的原因,目前我们不会公开分享该概念验证方案的代码。

鸣谢
非常感谢 PackageKit 维护者 Matthias Klumpp (@ximion) 迅速修复此漏洞并创建补丁,以及协调与发行版维护者的沟通。该漏洞由德国电信红队发现并报告。如果您对此漏洞有任何疑问,或对我们的安全服务(包括红队评估)感兴趣,请随时联系 redteam@telekom.de。
时间线
- 2026-04-08:向 Red Hat(通过 Fedora)和 PackageKit 项目提交了漏洞的私人报告
- 2026-04-10:PackageKit 维护者确认收到漏洞报告并认为其合理性
- 2026-04-13:PackageKit 维护者 Matthias Klumpp (@ximion) 提交的私有补丁初稿
- 2026-04-15:已将此问题告知 Canonical;与 Red Hat 和 Canonical 共享补丁
- 2026-04-19:通过发行版邮件列表私下通知发行版供应商,共享补丁和发布日期
- 2026-04-21:与发行版维护者再次确认了发布日期
- 2026-04-22:PackageKit 补丁发布,并通过 oss-security 邮件列表和这篇博客文章公开披露;获得 CVE-2026-41651 编号
更多安全漏洞分析与资源,可访问 云栈社区 获取持续更新。