Linux脏牛漏洞

Linux脏牛漏洞

介绍

脏牛漏洞,又叫Dirty COW,存在Linux内核中已经有长达9年的时间,在2007年发布的Linux内核版本中就已经存在此漏洞。Linux kernel团队在2016年10月18日已经对此进行了修复。

该漏洞具体为,Linux内核的内存子系统在处理写入复制(copy-on-write, COW)时产生了竞争条件(race condition)。恶意用户可利用此漏洞,来获取高权限,对只读内存映射进行写访问。竞争条件,指的是任务执行顺序异常,可导致应用崩溃,或令攻击者有机可乘,进一步执行其他代码。利用这一漏洞,攻击者可在其目标系统提升权限,甚至可能获得root权限。

触发机制

该漏洞的原因是get_user_page内核函数在处理Copy-on-Write(以下使用COW表示)的过程中,可能产出竞态条件造成COW过程被破坏,导致出现写数据到进程地址空间内只读内存区域的机会。当我们向带有MAP_PRIVATE标记的只读文件映射区域写数据时,会产生一个映射文件的复制(COW),对此区域的任何修改都不会写回原来的文件,如果上述的竞态条件发生,就能成功的写回原来的文件。比如我们修改su或者passwd程序就可以达到root的目的。

漏洞影响

攻击者可以在其目标系统提升权限,甚至可能获得root权限

漏洞修复

现在不再是把FOLL_WRITE标记去掉,而是添加了一个FOLL_COW标志来表示获取一个COW分配的页。即使是竞态条件破坏了一次完整的获取页的过程,但是因为FOLL_WRITE标志还在,所以会重头开始分配一个COW页,从而保证该过程的完整性。

CVE/ExploitDB

CVE:Common Vulnerabilities & Exposures公共漏洞和暴露,为广泛认同的信息安全漏洞或者已经暴露出来的弱点给出一个公共名称

ExploitDB:漏洞信息库,可以快速查找漏洞源代码

参考文章:

https://www.anquanke.com/post/id/84784

https://zhuanlan.zhihu.com/p/25918300?from_voters_page=true

一篇讲的非常详细的文章:https://xuanxuanblingbling.github.io/ctf/pwn/2019/11/18/race/


Linux脏牛漏洞
http://example.com/2023/01/10/Linux脏牛漏洞/
作者
Chen Shuwen
发布于
2023年1月10日
许可协议