vlambda博客
学习文章列表

Linus:“我删除了Linux,因为它就是个垃圾!”

文 | 罗奇奇

出品 | OSC开源社区(ID:oschina2013)

1月 25日, Linus Torvalds 在 Linux 的 GitHub 仓库中提交了一个 恶作剧 README 页面: https://github.com/torvalds/linux/tree/8bcab0346d4fcf21b97046eb44db8cf37ddd6da0 ,其备注名为《delete linux because it sucks》—— 我删除了 Linux ,因为它就是个垃圾。
大家好,我是 linus torvalds,红极一时的 linux 的作者。你可以查看 repo 的 url 和文件顶部的名字,它们可以证明是我本人在提交。
我删除了 linux,因为我讨厌它,我认为它很烂。你应该去用这个很棒的操作系统,它叫做 windows xp,我刚刚发现它真的很棒。
为什么说这是一场恶作剧呢?因为 Linux 的源代码并没有被删除,而且有细心的网友发现:该 README 最底部还有一个链接:
Linus:“我删除了Linux,因为它就是个垃圾!”
这个链接指向 Hacker News  黑客论坛的一个帖子 ,帖子详细介绍了 GitHub 现存的“虚假提交”漏洞:可以在 https://github.com/my/project 的 URL下发布任意提交。
比如用 https://github.com/my/project/blob/<faked_commit>/README.md 这种 URL ,就可以发布虚假的 README 页面,这种虚假提交不会出现在项目的提交记录里面,也不属于任何一个分支,只能通过访问特定的 URL 看到。而 Linus 这个恶作剧 README 文件正是利用了这个虚假提交漏洞,看一下这个 README 的 URL :
Linus:“我删除了Linux,因为它就是个垃圾!”
如果是正常的提交,URL 应该带有 commit 字眼,比如:
Linus:“我删除了Linux,因为它就是个垃圾!”
Linus:“我删除了Linux,因为它就是个垃圾!”
除了 URL 不对外,该 README 文件也未出现在提交记录中:
Linus:“我删除了Linux,因为它就是个垃圾!”
由此可见,Linus 只是开了个玩笑,并非真的删库跑路。
对此漏洞感兴趣的可以去看看 Hacker News 的原帖,这个虚假提交漏洞结合 GitHub 另一个“ 通过 git 电子邮件地址冒充用户”漏洞:https://bounty.github.com/ineligible.html#impersonating_a_user_through_git_email_address ,能创造出以假乱真的钓鱼页面。
比如
https://github.com/slimsag/linux/tree/5895e21f3c744ed9829e3afe9691e3eb1b1932ae#linux-kernel  这个仓库,看起来似乎 Linus 本人参与了这个仓库的建设:
Linus:“我删除了Linux,因为它就是个垃圾!”
然而这只是通过替换电子邮件地址漏洞,把 slimsag 换成了 torvalds 而已。
Linus:“我删除了Linux,因为它就是个垃圾!”
左边是通过漏洞替换邮件地址的 torvalds ,右边是正常的,仔细观察对比可以发现,障眼法换出来的 torvalds 是不显示活动记录的。
这些 GitHub 漏洞都是 2020 年公开的,然而漏洞作者称“GitHub 完全不把这些问题当作漏洞”,不知道 GitHub 是无法处理,或是认为没必要处理,反正直到现在它们仍能被利用。

往期精彩回顾




觉得不错,请点个在看