高科技
Junius @ 2015.05.22 , 13:52
漏洞警告:EXT4可能吃掉你的所有数据
一个已知存在于EXT4文件系统中的漏洞,可能导致Linux 4.0 内核以上的系统丢失文件数据。
来自Debian的报告指出,这个漏洞可能导致严重的文件系统损坏,特别对于组件 RAID0 的用户,和不升级不舒服arch党,以及不编译不虔诚Debian党影响颇大。
Linux 内核开发的邮件列表里,开发者Lukas Czerner表示补丁已经在路上。并且这个漏洞存在了很长时间,可以追朔到linux3.12版内核。但有开发者表示受影响最大的还是 Linux 4.x 的用户。
[-]
Czerner 对这个漏洞的解释是:
当我们有延迟数据区块( delayed extent)需要写入,向 extent status tree 插入状态的时候,我们必须先写出一部分缓存空间。但是在 delayed extent tree 的实现细节上有局限,就是哪怕整个 extent 只里有一个区块的数据处于delayed状态,那整个extent都会被标注为delayed。于是悲剧的事情发生了,缓存被写满的时候,我们就没法跳过这些extent,虽然被标注了「不可写」,但是数据状态被强制改成「可写」,于是数据被覆盖掉了,但状态还是delayed。
当我们试图写入这些区块的时候,函数 ext4_da_map_blocks() 将更新缓存并将delayed状态映射到无效的缓存区域,造成区块被清零并丢失数据。
虽然我努力翻译了以上解释,但还是不太明白的样子。不过这种惊悚的感觉还是明摆着的。所以赶紧打补丁才是正事。
本文译自 theregister,由 Junius 编辑发布。