整理 | 鄭麗媛
出品 | CSDN(ID:CSDNnews)
眾所周知,Linux 內核的開發是一項龐大而復雜的工程,涉及數千名開發者的協作。在這樣的高強度合作中,難免會出現一些緊張局面,甚至引發個別“火藥味十足”的交流。
在上周末 Linux 6.16 合并窗口期間,原本平靜的開發進程,突然被 Linus Torvalds 的一句怒吼打破:“WTF, Kees?”
是的,你沒看錯,Linux 內核郵件列表再起風波——而這一次的焦點,是一位老牌內核貢獻者 Kees Cook,以及他提交的幾百個“看起來非常不對勁”的補丁。
Linux 6.16 合并窗口突現“異常提交”,是惡意提交?
如開頭所說,事情發生在 Linux 6.16 的合并窗口階段。
上周末,Linus Torvalds 在例行檢查來自各子系統維護者的提交時,突然注意到了一些非常奇怪的 Git 操作:一位長期活躍的內核開發者 Kees Cook 的代碼樹中,出現了高達 330 個 Pull Request。這些提交并非簡單的代碼更新,而是篡改了作者信息、偽造了合并歷史的“假補丁”。
據悉,許多提交都聲稱是 Linus 發出的,也顯示是 Linus 提交的。可 Linus 本人對此毫不知情:“根本就不是事實,這都是你憑空捏造出來的一堆垃圾!”
Linus 認為這種行為“具有明顯惡意”,他指出其中存在偽造的合并提交,其 SHA-1 簽名與原始提交不符。例如,Linus 的某個真實補丁的 SHA1 是 9d230d500b0e,而 Kees 提交中的“假版本”則使用了 f8b59a0f90a2。
(左邊是 Linus 的原始 PR,右邊是偽造的 PR)
憤怒之下,Linus 當即在郵件列表上直言不諱地質問道:
“你這是在惡意修改整個代碼樹。這些完全是假的提交!這根本不像是單純的 rebase 錯誤,而是故意偽造提交者信息,這種行為完全不能接受。在你解釋清楚這到底是怎么回事之前,我不會再合并你任何一條提交。你得刪掉這個樹,并給出一個合理解釋。”
甚至,Linus 還直接把這件事同步給了 Linux 基礎設施維護者 Konstantin Ryabitsev,要求其立即禁用 Kees 的 kernel.org 賬號:
“我認為這種‘玩火’行為在 kernel.org 是絕對不能容忍的。Konstantin,請立即禁用 Kees 的賬號,直到事情搞清楚為止。這看起來像是惡意行為。”
330 個“偽造”提交,背后到底是什么?
郵件列表瞬間炸鍋,畢竟指控“惡意提交”在 Linux 社區中是非常嚴重的事情。
在收到質疑后,Kees 自然也不敢怠慢,立刻響應并啟動排查。經初步判斷,他推測可能是他使用的 SSD 出現故障,導致數據傳輸出錯,從而生成了“損壞的代碼樹”和“異常的合并記錄”。Kees 為此道歉,并承諾將刪除受影響的代碼樹,重新構建一套干凈的補丁集再提交。
盡管 Kees 的解釋顯得合情合理,但 Linus 并不輕易買賬。他進一步指出:
“正常的 Git rebase 合并操作應當會重寫提交者信息。所以我看到的這種歷史重寫,幾乎不可能是‘無心之過’。至少可以說,這背后有些腳本邏輯已經爛到離譜了。 而且,問題不是一兩個提交,而是大量的提交都被重寫了——我之前提到的那條只是冰山一角。你那個糟糕的分支里有 330 個 PR 被算到了我頭上,但實際上并非來自于我。”
隨后,Kees 再度澄清道:“這真不是我有意為之。我懷疑是 SSD 錯誤 + 手動 rebase 操作 + 某些腳本繞過檢查共同導致的。”
真相浮出水面:一場由 b4 工具引發的“自動化烏龍”
在后續的排查與溝通中,Kees、Linus 和 Konstantin 終于找到了“罪魁禍首”——并不是人為蓄意攻擊,也不是 Git 本身的問題,而是一款輔助工具 b4 的歷史重寫操作出了問題。
具體來說,b4 是 Linux 開發流程中常用的郵件補丁打包工具,結合 Git 使用時可大幅簡化維護者的 patch 應用流程。可問題在于,Kees 使用的 b4 腳本中調用了 git-filter-repo,在某次歷史重寫中,意外篡改了大批量的提交元數據,導致提交者信息被重寫,從而看起來像是“偽造”了提交。
簡而言之:這不是一場人為攻擊,而是一場“自動化烏龍”。
對此,Konstantin 也親自向 Linus 解釋了問題所在,并提出解封 Kees 賬號:“Linus,我相信他百分之百沒有惡意,對于因工具造成的混亂,我深表歉意。我會恢復 Kees 的賬戶,這樣他就能繼續工作了。”
而后 Linus 也冷靜下來,同意了解封 Kees 賬戶的提議,并要求 Konstantin 盡快修復 b4 工具的問題:
“所以,真正的危險在于對提交者信息的造假。這是任何標準都不應涉足的領域,也是讓我如此憤怒的原因。Konstantin,能否請你修改一下 b4,讓它永遠都不會重寫提交者信息與當前用戶不同的提交?”
這場風波最終平息了,但不少開發者卻對此次事件展開了一些爭論。
部分開發者認為 Linus 反應過激、沒必要如此暴怒:
“翻看郵件列表后,我覺得 Linus 的回復太不尊重人了。從目前的情況來看,這事只是個意外,沒必要一開始就把事情往最壞的方面想。他這種行為只會讓人們遠離 Linux 內核。試想一下,如果你在 git 分支上犯了錯誤,卻被指試圖向內核注入惡意代碼,你會怎么想?”
但也有開發者指出,Linus Torvalds 或許脾氣急躁,但他作為“看門人”,一直都保持著對流程、規則和開發者責任感的極高要求:
“Linux 內核項目的運行之所以穩定,并不是因為“沒人出錯”,而是因為總有人在盯緊每一次提交、每一行代碼。”
那么,對于這起事件,你的看法又是什么呢?
參考鏈接:https://lore.kernel.org/all/CAHk-=wj4a_CvL6-=8gobwScstu-gJpX4XbX__hvcE=e9zaQ_9A@mail.gmail.com/
——對話 IEEE 首位華人主席、美國雙院院士劉國瑞 | 萬有引力
2025 全球產品經理大會
2025 年 8 月 15–16 日
北京·威斯汀酒店
2025 全球產品經理大會將匯聚互聯網大廠、AI 創業公司、ToB/ToC 實戰一線的產品人,圍繞產品設計、用戶體驗、增長運營、智能落地等核心議題,展開 12 大專題分享,洞察趨勢、拆解路徑、對話未來。
更多詳情與報名,請掃碼下方二維碼。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.