明尼苏达大学因发送有问题的补丁而被暂停 Linux 内核开发

负责维护 Linux 内核稳定分支的 Greg Kroah-Hartman 决定禁止接受明尼苏达大学对 Linux 内核的任何更改,并回滚所有之前接受的补丁并重新审查。 封锁的原因是一个研究小组的活动,该研究小组正在研究将隐藏漏洞引入开源项目代码的可能性。 该小组提交了包含各种类型错误的补丁,观察社区的反应,并研究了欺骗更改审核过程的方法。 格雷格表示,进行此类实验来引入恶意更改是不可接受且不道德的。

阻止的原因是该组的成员发送了一个补丁,添加了指针检查以消除“free”函数可能的双重调用。 考虑到指针使用的上下文,检查是没有意义的。 提交补丁的目的是看看错误的更改是否能通过内核开发人员的审核。 除了这个补丁之外,明尼苏达大学的开发人员还尝试对内核进行可疑的更改,包括与添加隐藏漏洞相关的更改。

发送补丁的参与者试图为自己辩护,称他正在测试一个新的静态分析器,并且更改是根据测试结果准备的。 但格雷格提请注意这样一个事实,即所提出的修复对于静态分析器检测到的错误来说并不典型,并且所有发送的补丁根本无法修复任何内容。 鉴于该研究小组过去曾尝试推出针对隐藏漏洞的补丁,很明显他们仍在继续与内核开发社区进行实验。

有趣的是,过去进行实验的小组负责人参与了合法的漏洞修补,例如识别USB堆栈(CVE-2016-4482)和网络子系统(CVE-2016-4485)中的信息泄漏。 在一项关于隐形漏洞传播的研究中,明尼苏达大学的一个团队引用了 CVE-2019-12819 的例子,这是一个由 2014 年发布的内核补丁引起的漏洞。 该修复程序在 mdio_bus 中的错误处理块中添加了对 put_device 的调用,但五年后发现,这种操作会导致在释放内存块后对其进行访问(“释放后使用”)。

与此同时,该研究的作者声称,他们在工作中总结了 138 个补丁的数据,这些补丁引入了错误,并且与研究参与者无关。 尝试发送自己的有错误的补丁仅限于电子邮件通信,并且此类更改不会进入 Git(如果在通过电子邮件发送补丁后,维护者认为补丁正常,那么他会被要求不要包含更改,因为有是一个错误,之后他们发送了正确的补丁)。

补充1:从被批评补丁的作者的活动来看,他长期以来一直在向各个内核子系统发送补丁。 例如,radeon 和 nouveau 驱动程序最近采用了更改,在错误块中调用 pm_runtime_put_autosuspend(dev->dev),可能导致在释放与其关联的内存后使用缓冲区。

附录 2:Greg 已回滚与“@umn.edu”相关的 190 项提交,并启动了对它们的重新审查。 问题在于,拥有“@umn.edu”地址的成员不仅尝试过推送有问题的补丁,而且还修补了真正的漏洞,而回滚更改可能会导致之前修补的安全问题再次出现。 一些维护人员已经重新检查了恢复的更改,没有发现任何问题,但其中一位维护人员表示发送给他的补丁之一有错误。

来源: opennet.ru

添加评论