尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
一文读懂 DirtyPipe(CVE-2022-0847):container-escape-check 检测逻辑与逃逸利用原理
一文读懂 DirtyPipeCVE-2022-0847container-escape-check 检测逻辑与逃逸利用原理【免费下载链接】container-escape-checkdocker container escape check || Docker 容器逃逸检测项目地址: https://gitcode.com/gh_mirrors/co/container-escape-checkDirtyPipeCVE-2022-0847曾被称为新一代 DirtyCow是一个影响 Linux 内核 5.8 及以上版本的本地提权漏洞而container-escape-check 容器逃逸检测工具从 v0.1 版本起就把它列入检测清单通过比对内核版本号快速判断容器是否存在逃逸风险。这篇文章将用通俗的语言讲清楚 DirtyPipe 的漏洞成因、逃逸利用原理以及 container-escape-check 的具体检测逻辑与它的局限性。DirtyPipeCVE-2022-0847是什么能改写只读文件的 Linux 内核漏洞DirtyPipe 由安全研究员 Max Kellermann 于 2022 年初发现并公开编号 CVE-2022-0847核心信息如下影响范围Linux 内核 5.8 及以后版本5.8 之前不受影响漏洞本质管道pipe缓冲区中的PIPE_BUF_FLAG_CAN_MERGE标志未被正确清除导致普通进程可以往只读文件的页缓存page cache中写入数据危害程度攻击者能修改/etc/passwd等只读文件、改写 setuid 程序把普通用户直接提权到 root属于典型的本地提权LPE漏洞它之所以叫 DirtyPipe是为了致敬 2016 年的脏牛漏洞DirtyCowCVE-2016-5195——两者都能改写只读文件只是 DirtyPipe 利用的是全新的内核管道机制。为什么 DirtyPipe 会成为 Docker 容器逃逸的入口很多新手会疑惑一个提权漏洞和容器逃逸有什么关系关键在于——容器与宿主机共享同一个内核。容器本身只是宿主机内核之上的隔离进程无论容器内权限多低只要内核存在漏洞攻击者就能在容器内触发漏洞、直接影响宿主机内核。DirtyPipe 正是典型的内核级漏洞攻击者在容器内获得任意代码执行权限哪怕只是低权限用户利用 DirtyPipe 改写宿主机上的关键文件如 root 密码、SSH 公钥等拿到宿主机 root 权限完成容器逃逸因此检测容器所在内核是否存在 DirtyPipe是容器安全巡检中至关重要的一环。container-escape-check 如何检测 DirtyPipecontainer-escape-check 的检测思路非常直接读取当前内核版本号再与已知的受影响版本区间做比对。整个过程分为两步。第一步解析内核版本号脚本通过uname -r拿到内核版本再拆解为主版本号、次版本号和修订号三部分见 container-escape-check.shKernelVersionuname -r | awk -F - {print $1} | awk -F . {print $1} MajorRevisionuname -r | awk -F - {print $1} | awk -F . {print $2} MinorRevisionuname -r | awk -F - {print $1} | awk -F . {print $3}第二步比对受影响版本区间CheckCVE_2022_0847函数见 container-escape-check.sh只对5.x 内核做判断核心逻辑是# 5.8 ver 5.10 if [[ $MajorRevision -ge 8 $MajorRevision -lt 10 ]];then echo [] 当前容器存在 CVE-2022-0847 DirtyPipe 漏洞 fi # 5.10.x 5.10.102 if [[ $MajorRevision -eq 10 $MinorRevision -lt 102 ]];then echo [] 当前容器存在 CVE-2022-0847 DirtyPipe 漏洞 fi # 5.10 ver 5.15 if [[ $MajorRevision -gt 10 $MajorRevision -lt 15 ]];then echo [] 当前容器存在 CVE-2022-0847 DirtyPipe 漏洞 fi只要命中任意一个区间脚本就会输出[]结果并把漏洞标记置为存在。受影响内核版本速查表内核版本是否受影响说明 5.8❌ 不受影响漏洞在 5.8 引入5.8 ~ 5.9✅ 受影响全部存在漏洞5.10.0 ~ 5.10.101✅ 受影响5.10.102 修复5.11 ~ 5.14✅ 受影响该分支未单独修复5.15.0 ~ 5.15.24✅ 受影响5.15.25 修复5.16.0 ~ 5.16.10✅ 受影响5.16.11 修复≥ 5.17❌ 不受影响新版本已修复 官方修复版本为5.16.11 / 5.15.25 / 5.10.102如果你的内核版本高于这些版本理论上已免疫。这种检测方式的优点与局限优点无需任何攻击载荷一条命令、几毫秒就能完成检测非常适合批量巡检与自动化安全扫描。局限作者在 README 中也明确提醒过基于版本号推断可能存在误报脚本采用宁滥勿缺的策略部分已修复的 5.10.x、5.15.x 版本也会被标记为存在漏洞需要人工二次确认可能存在漏报不同发行版会自行 backport 安全补丁内核版本号相同不代表修复状态相同不验证 Docker 版本作者在 README_ZH.md 中提到暂时还没有找到从容器内部获取 Docker 版本的方法因此部分与 Docker 版本相关的逃逸检测暂不支持简单来说它告诉你大概率有风险但最终结论仍需人工研判。DirtyPipe 逃逸利用原理速览为了便于理解这里用三步走概括整个利用过程省略具体攻击代码准备管道创建管道并写入 1 字节数据让管道缓冲区进入可合并状态污染标志用splice()把只读文件的 1 字节拼接进管道利用内核 bug 让该缓冲区残留CAN_MERGE标志覆写文件再向管道写入恶意数据内核会把数据直接写进文件对应的页缓存——于是只读文件被悄悄改写配合这三步攻击者就能改掉/etc/passwd或 setuid 程序在容器内直接拿下宿主机 root 权限。在容器中一键运行检测在目标 Docker 容器内执行以下命令即可完成全部检测git clone https://gitcode.com/gh_mirrors/co/container-escape-check cd container-escape-check chmod x container-escape-check.sh ./container-escape-check.sh脚本会自动检测特权模式、Docker Socket 挂载、procfs 挂载、DirtyCow、DirtyPipe 等 15 项风险并汇总输出全程无需人工干预。如何防御 DirtyPipe 容器逃逸最后给出一份可直接落地的加固清单升级内核第一时间升级到 5.16.11 / 5.15.25 / 5.10.102 及以上的修复版本并重启宿主机最小权限原则避免使用特权容器严格控制 Linux Capability 与危险目录挂载️启用安全机制配置 seccomp、AppArmor / SELinux限制容器系统调用定期巡检把 container-escape-check 集成进 CI/CD 或安全巡检流程内核升级后第一时间复查总结一下DirtyPipe 是一个影响面极广的 Linux 内核提权漏洞在容器场景下天然是逃逸的高危入口container-escape-check 用版本比对这种轻量方式把它纳入自动化检测虽然存在一定误报率但胜在快速、零依赖、适合批量巡检。看懂它的检测逻辑你就能在安全巡检时更准确地判断结果而不是被满屏的[]吓到。【免费下载链接】container-escape-checkdocker container escape check || Docker 容器逃逸检测项目地址: https://gitcode.com/gh_mirrors/co/container-escape-check创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

Rabel 安全机制详解:验证码、CanCanCan 权限控制与用户封禁

Rabel 安全机制详解:验证码、CanCanCan 权限控制与用户封禁

Rabel 安全机制详解:验证码、CanCanCan 权限控制与用户封禁 【免费下载链接】rabel An open-source web forum built on the Ruby on Rails framework. 项目地址: https://gitcode.com/gh_mirrors/ra/rabel Rabel 是一款基于 Ruby on Rails 框架构建的开源社…

📅 2026/9/9 21:29:10
零门槛音乐解锁:一个网页解密 NCM、QMC 加密音频,几分钟搞定

零门槛音乐解锁:一个网页解密 NCM、QMC 加密音频,几分钟搞定

零门槛音乐解锁:一个网页解密 NCM、QMC 加密音频,几分钟搞定 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web …

📅 2026/10/6 11:13:34
想下载网页视频?免费开源的猫抓插件三步就能搞定

想下载网页视频?免费开源的猫抓插件三步就能搞定

想下载网页视频?免费开源的猫抓插件三步就能搞定 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓插件是一款免费开源的浏览器资源嗅…

📅 2026/10/15 16:06:31
MORE NEWS

更多资讯

📰

基于GIN-PPO的飞机脉动装配调度:技能约束与工程落地

1. 飞机脉动装配调度为什么难:从工位节拍到技能瓶颈飞机总装和普通机械产品装配最大的区别在于:节拍不是由机器决定的,而是由人决定的。脉动装配线(Pulse Assembly Line)的核心逻辑是每个工位在固定节拍内完成规定装配…

📰

OpenCode全解析:开发者必备的智能代码管理平台

1. OpenCode初探:为什么每个开发者都需要掌握它第一次接触OpenCode是在三年前的一个跨团队协作项目中。当时我们团队需要快速整合多个部门的代码库,而传统的版本控制工具在跨组织协作时显得力不从心。OpenCode的出现彻底改变了我们的工作方式——它不仅解…

📰

PostIn自动化接口测试实践与CI/CD集成指南

1. 项目概述PostIn作为一款流行的API测试工具,正在被越来越多的开发团队采用。在实际项目中,我们常常会遇到这样的场景:新功能上线后,因为某个接口的改动导致整个系统崩溃;或者开发人员修改了某个参数,但没…

📰

Typora弹窗问题终极解决方案与优化技巧

1. 问题现象与背景分析Typora作为一款轻量级Markdown编辑器,因其简洁的界面和流畅的写作体验深受用户喜爱。但在Windows系统下,部分用户会遇到频繁弹窗干扰的问题,主要表现为:启动时弹出"Welcome"欢迎窗口编辑过程中突然…

📰

ArangoDB多模型数据库在电商推荐系统的实战应用

1. 项目概述:当电商遇上多模型数据库去年双十一期间,某头部电商平台技术团队找到我们,提出了一个棘手的问题:他们的推荐系统在用户行为激增时,响应延迟从平均200ms飙升到1.2秒,转化率直接掉了15%。这个案例…

📰

JWT单Token续期方案在SpringBoot中的实践

1. 为什么需要单Token方案在分布式系统和微服务架构中,身份认证和授权一直是核心挑战。传统Session方案存在服务器存储压力大、跨域共享困难等问题,而JWT(JSON Web Token)凭借其自包含、无状态、跨域友好的特性成为主流选择。但JWT在实际落地时会遇到一个…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬