导师带学生卡Bug,这波操作~
共 2119字,需浏览 5分钟
·
2021-04-29 04:43
本文来自知乎
https://www.zhihu.com/question/455891395/answer/1847953969
事情的起因是明尼苏达大学计算机科学&工程系的助理教授 Kangjie Lu 和他的 Ph. D. 学生 Qiushi Wu 的论文《通过伪君子提交在开源软件中隐蔽地引入漏洞的可行性》,据称将在 2021 年五月的 42 届 IEEE 安全隐私研讨会发表)这篇文章(可以在 Wu 的 github 上找到)。
摘要如下:
他们试图研究这种伪善提交导致的安全问题,并且选择 Linux 内核项目作为目标,开发了一系列用于产生这种测试补丁和验证的工具。
Linux 内核的维护者发现来自明尼苏达的一些提交是毫无意义甚至显著错误的代码(来自 Aditya Pakki,明尼苏达大学计算机科学&工程系的博士,导师正是 Kangjie Lu),这招致了维护者们的愤怒(by Al Viro,内核维护者)
简单地说,这个补丁要么意味着这个人(对内核)完全不了解要么他的行动不真诚,如果是后者,我可以建议***(粗口)的社会学家们***(粗口,滚开),不要再用***(粗口,意思是垃圾)来测试(代码)评审吗?
以及警告(Greg K H,内核维护者):
请停止提交已知无效的补丁。你的教授正试图玩弄(代码)评审程序以用古怪的方式完成论文。
这是不对的,浪费了我们的时间,我们将不得不再次向你们的大学报告此事……
但是 Aditya Pakki 回应称:
诚挚的,我要求你停止进行近乎诽谤的疯狂指责。
这些补丁是作为我写的一个新的静态分析器的一部分发送的,他们显然不是非常敏感。我发送补丁的目的是希望得到反馈。我们不是Linux内核方面的专家,反复发表这些言论让人听了很反感。
显然,这个步骤是错误的,但你的先入为主的偏见是如此强烈,以至于你提出的指控毫无根据,也不给我们辩解(无罪推定)的任何机会。
这种态度不仅不受欢迎,而且对新手和非专家也是一种恐吓,因此我将不会再发送任何补丁。
最终, Greg K-H 最终决定禁止明尼苏达大学向内核贡献任何代码,并且取消之前的全部贡献。
涉及的提交:
我截图其中一个提交:
这个bug卡的有点意思,其中有一个判断,是从读取函数里面获取返回值的,新的代码修改是不判断函数的返回值,这看起来其实并没有多大的问题,如果能够正确读取到val值,并且val是0x01的话,才会返回返回正确。其他情况下就会返回ret,但是实际上read函数里面有很多种情况,这里都只能返回 -EINVAL 了。
这个提交看起来不会引发非常严重的错误。
但是我们再看看另一个提交:
这个修改就有点意思了,释放了内存空间,对应的指针本来是要执行NULL的,这家伙把这行代码给注释掉了。
然后,
在另一个判断的位置,直接去掉这个判断。这样做比较危险的情况是,如果有一个地方使用rm和NULL判断作为它是否被初始化,就会出现致命的问题了。
在这个提交上,也明显的标志了revert这个提交的原因
我看了我们量产项目中的代码,没有完全比对,发现我上面看了这两个提交都已经合入了MTK主分支中。至于真的会不会卡到bug,那也是要出现问题了才知道了。
参考:
1. 报告这件事的新闻:Here's Why University of Minnesota is Getting Banned from Contributing to Linux Kernel Code - It's FOSS News
2. Gerg 决定撤销来自 umn.edu 的所有更改:
https://lore.kernel.org/lkml/20210421130105.1226686-1-gregkh@linuxfoundation.org/
3. Gerg 对这件事的回应(以及讨论串) Re: [PATCH] SUNRPC: Add a check for gss_release_msg
4. 文章的地址 github.com/QiushiWu/Qiu
5. 作者 Wu 的博客 Qiushi Wu
6. Wu github 中的 issues,大部分针对这个问题,特别“不诚信的研究”:github.com/QiushiWu/qiu
7. 作者 Lu 的主页 www-users.cs.umn.edu/~kjlu/papers/clarifications-hc.pdf
8. Lu 关于这件事的澄清:www-users.cs.umn.edu/~kjlu/papers/clarifications-hc.pdf