DirtyC0W漏洞学习 [CVE-2016-5195]

DirtyC0W漏洞学习 [CVE-2016-5195]

DirtyC0W, “脏牛”漏洞是一个相当著名的漏洞了。为什么说著名呢?是因为它已经在Linux内核中存在了长达9年的时间,已经影响了Linux内核>=2.6.22(2007年发行)的全部版本。而且这个漏洞是由Linus本人修复的。

本菜一直非常好奇这是个什么东西,最近下定决心想要深入学习堆漏洞的利用,所以重看了 LiveOverflow 的视频。其中就有一个小视频讲到了DirtyC0W。但是我无论如何都看不懂(太菜),以及网上的很多分析文章都看不太懂。主要是没有Linux内核管理方式的基础(以后要好好补课)。

最后在YouTube上看了另一个视频,帮助我基本理解了这个漏洞的原理。是来自Kevin Du的一个lecture。非常感谢他。Lecture on the Dirty COW Vulnerability and Attack

理解DirtyC0W主要需要以下背景知识:

  • 竞态条件(Race Condition)
  • 写时拷贝技术(Copy-On-Write, COW的来源)
  • 页式内存管理
  • 缺页中断处理

这堆东西估计是操作系统课学的。很惭愧,又要补课。理解最后两个内容的整个逻辑是非常重要的。

请允许我再看一次源码再来填坑吧…


未完待续…

Leave a Comment