跳至正文
Wener Notes

CVE-2016-5195

约 2 分钟阅读
  • Dirty COW - Linux 写时复制处理中的竞态条件,可导致本地权限提升
    • COW / Copy-on-Write / 写时复制
  • 公开披露:2016-10-19(Red Hat 公告);2016 年 10 月已发现实际利用
  • 攻击者需要能够在目标系统运行本地程序,无需目标文件的写权限
  • 严重性:CVSS 3.1 7.0 High(CISA-ADP)
    • CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H

成因与影响

  • Linux 内存子系统在处理私有只读映射的写时复制时存在竞态,涉及 mm/gup.c 与 get_user_pages()
  • 写入本应落到进程的私有副本,攻击者却可能使修改作用于文件支持的内存页,绕过普通文件权限
  • 可篡改原本只读的文件或特权程序,进而提升权限;漏洞本身是本地提权,需要先有本地执行能力
  • 与 的结果相似,但根因是写时复制竞态,不能套用 Dirty Pipe 的页边界限制

影响范围与修复

  • 影响多个旧 Linux 2.x、3.x、4.x 分支中未包含修复的内核
  • Linux 4.8 分支首个修复版本为 4.8.3;旧稳定分支及发行版另有回补
    • 不能把所有低于 4.8.3 的发行版内核都判为未修复
  • 上游修复:19be0eaffa3a
  • 安装发行版提供的已修复内核,重启进入新内核,或使用厂商明确覆盖该 CVE 的热补丁
  • 文件设为只读、限制普通文件写权限不能替代内核修复
  • 若发现特权程序或系统文件被篡改,还需恢复文件完整性并调查凭据泄露;仅更新内核不能撤销已有修改

PoC

  • dirtycow/dirtycow.github.io 中的 dirtyc0w.c 是基础文件覆写 PoC,接受目标文件和替换内容
  • 观察方法:在隔离虚拟机中准备一个测试用户可读但不可写的普通文件,比较普通写入和 PoC 后的文件内容
    • 正常权限检查:普通写入被拒绝
    • 漏洞现象:PoC 借助私有只读映射及并发操作,仍可改变该文件的可见内容
  • 该文件确实会被修改;基础 PoC 验证文件覆写,不自动等同于已获得 root shell
  • 项目的 PoCs Wiki 还列有修改特权程序或账户文件的变体,不能将这些变体当作只读检测

参考

关联信息

反向链接、本文链接的其他页面和外部资料。

反向链接

  • CVE-2022-0847
    笔记 · Dirty COW

    Dirty Pipe - Linux 管道缓冲区标志未正确初始化,导致只读文件的页缓存可被覆盖 · 公开披露:2022-03-07,发现者 Max Kellermann · 攻击者需要本地执行能力及目标文件的读权限,无需文件写权限 · 严重性:CVSS 3.1 (CISA-ADP)

  • CVE-2026-31431
    笔记 · Dirty COW

    Copy Fail - Linux AFALG 加密接口错误地原地处理共享页,可导致本地权限提升 · CVE 记录公开:2026-04-22;研究者公开披露:2026-04-29 · 上游引入版本:Linux · 严重性:CVSS 3.1 (Linux CNA)

站内链接

  • CVE-2022-0847
    笔记 · Dirty Pipe

    Dirty Pipe - Linux 管道缓冲区标志未正确初始化,导致只读文件的页缓存可被覆盖 · 公开披露:2022-03-07,发现者 Max Kellermann · 攻击者需要本地执行能力及目标文件的读权限,无需文件写权限 · 严重性:CVSS 3.1 (CISA-ADP)

参考资料

GitHub4 条
其他外链5 条
最近更新commit 0c5208b编辑