IPBUF安全漏洞报告
English
CVE-2025-31133 CVSS 7.8 高危

CVE-2025-31133: runc绑定挂载验证不足导致容器逃逸漏洞

披露日期: 2025-11-06

漏洞信息

漏洞编号
CVE-2025-31133
漏洞类型
容器逃逸/绑定挂载验证不足
CVSS评分
7.8 高危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
runc (Open Container Initiative runtime)

相关标签

容器逃逸runcOCI容器运行时绑定挂载权限提升主机信息泄露拒绝服务Linux容器安全CVE-2025-31133

漏洞概述

runc是一个用于根据OCI规范生成和运行容器的CLI工具,在1.2.7及以下版本、1.3.0-rc.1至1.3.1版本以及1.4.0-rc.1和1.4.0-rc.2版本中存在严重的绑定挂载验证不足漏洞。该漏洞允许攻击者利用容器的/dev/null文件进行恶意挂载操作,由于runc未能充分验证绑定挂载的源(即容器的/dev/null)是否实际上是真实的/dev/null inode,攻击者可创建伪造的/dev/null文件来绕过安全检查,进而实现主机信息泄露、主机拒绝服务、容器逃逸或绕过maskedPaths安全机制。此漏洞需要本地低权限访问即可利用,无需用户交互,CVSS评分达到7.8分,属于高危漏洞。

技术细节

该漏洞源于runc在处理容器绑定挂载时对/dev/null的验证不足。当容器使用/dev/null作为挂载源来屏蔽特定路径时,runc未能正确验证该/dev/null是否为真实的设备文件节点。攻击者可以通过以下方式利用:1) 在容器内创建一个伪装为/dev/null的特殊文件;2) 利用runc的绑定挂载功能将该伪造文件挂载到目标路径;3) 由于验证不足,系统认为这是合法的/dev/null操作;4) 攻击者可通过此方式访问宿主机文件系统、获取敏感信息或导致拒绝服务。此漏洞暴露了两个主要攻击面:任意挂载攻击导致的信息泄露和文件访问,以及绕过容器的maskedPaths机制。攻击者利用容器内非特权用户权限即可发起攻击,攻击复杂度为高,但成功利用后可获得完整的容器控制权甚至主机访问权限。

攻击链分析

STEP 1
步骤1: 获取容器访问权限
攻击者获得容器的低权限访问权限,可以在容器内执行命令
STEP 2
步骤2: 创建伪造的/dev/null文件
在容器内创建一个伪装成/dev/null的普通文件或符号链接,而非真实的字符设备文件
STEP 3
步骤3: 利用runc绑定挂载功能
利用存在漏洞的runc版本执行绑定挂载操作,将伪造的/dev/null挂载到容器的敏感路径
STEP 4
步骤4: 绕过安全验证
由于runc未充分验证挂载源是否为真实的/dev/null inode,验证被绕过,挂载操作成功
STEP 5
步骤5: 实现攻击目标
攻击者可选择:读取宿主机敏感文件、修改系统配置、导致拒绝服务或实现容器逃逸

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/bin/bash # CVE-2025-31133 PoC - runc bind mount verification bypass # This PoC demonstrates creating a fake /dev/null to exploit the bind mount vulnerability # Create a fake /dev/null device (a regular file instead of a real device) # In a vulnerable runc version, this can be used to bypass maskedPaths FAKE_DEV_NULL="/tmp/fake_dev_null" TARGET_PATH="/etc/passwd" # Create a regular file to act as fake /dev/null echo "malicious content" > "$FAKE_DEV_NULL" # Attempt to bind mount the fake /dev/null over protected paths # This exploits the insufficient verification in runc's mount handling # Note: Actual exploitation requires specific container configuration and runc version # Example attack scenario: # 1. Attacker creates fake /dev/null in container # 2. Uses runc's mount functionality to bind mount it over sensitive paths # 3. Due to insufficient verification, the mount succeeds # 4. Attacker can now read/write to normally masked paths # Cleanup rm -f "$FAKE_DEV_NULL" echo "PoC demonstrates the concept of creating fake /dev/null for bind mount attack"

影响范围

runc <= 1.2.7
runc 1.3.0-rc.1 - 1.3.1
runc 1.4.0-rc.1
runc 1.4.0-rc.2

防御指南

临时缓解措施
立即升级runc到修复版本(1.2.8、1.3.3或1.4.0-rc.3)。如果无法立即升级,可采取以下临时措施:限制容器特权操作、监控异常的文件系统访问行为、使用AppArmor或SELinux强制访问控制策略、避免在生产环境中运行不受信任的容器镜像。同时,应审查容器配置,确保maskedPaths和readonlyPaths配置正确,以减少攻击面。

参考链接

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