明尼蘇達大學因發送有問題的補丁而被暫停 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

添加評論