安全 - apport 和 systemd-coredump 中的本地信息泄露

主要观点:发现 apport 和 systemd-coredump 中的本地信息泄露漏洞(CVE-2025-5054 和 CVE-2025-4598),本地攻击者可利用 race condition 使 SUID 程序崩溃并获取核心转储读取权限,进而获取敏感信息如 /etc/shadow 中的密码哈希等。
关键信息

  • apport 多年来已加固,但处理命名空间内崩溃的函数调用在安全检查之前,易受攻击,可通过特定步骤利用 unix_chkpwd 程序获取密码哈希。
  • systemd-coredump 曾有允许用户读取所有核心文件的漏洞,后引入新函数 grant_user_access 但仍存在 kill-and-replace race condition,可通过特定方式利用 unix_chkpwd 程序获取密码哈希。
    重要细节
  • apport 漏洞利用步骤:fork 并 execve 一个 SUID 或 SGID 程序,使其加载秘密信息,然后在合适时间用 SIGSEGV 或 SIGSYS 使其崩溃,在 apport 启动但未分析之前用 SIGKILL 替换为非 SUID 进程并获取核心转储。
  • systemd-coredump 漏洞利用方式:通过特定方式使 SUID 进程崩溃,替换为匹配的非 SUID 进程获取核心文件读取权限。
  • 相关团队及人员:感谢 Ubuntu 安全团队、apport 开发者、systemd 开发者等,以及 Christian Brauner 提供 %F/pidfd 内核功能。
  • 时间线:2025 年 3 月 21 日发送咨询草案和第一个 poc 给 Ubuntu 安全团队,4 月 10 日给 systemd 开发者等,5 月 29 日协调发布日期等。
阅读 8
0 条评论