Linux中國

Linux 5.10 終於拋棄了造成了安全隱患的老函數

Linus Torvalds 開啟了 Linux 內核的又一個開發周期,宣布 5.10-rc1 發布了,而且這一次還有一個歷史性的轉折:新內核標誌著一個幾十年前的函數的落幕,這個函數在被發現會導致安全漏洞後早已成為多餘的函數。

隨著長達兩周的,每一次新的 Linux 內核迭代發布前的合併窗口的關閉,Torvalds 在 Linux 內核郵件列表上分享了他的感想,他認為「事情似乎相當順利」。

「合併窗口」是 Linux 新內核發布過程中的一個關鍵部分,在此窗口期間,每天有多達 1000 個由開發者社區提交的補丁被合併到 Torvalds 管理的主線倉庫中。而審查過程會確保每個補丁都能實現理想的變化。

這一次,Torvalds 提請大家注意移除了一個叫 set_fs() 的定址函數,這個函數可以追溯到 Linux 的最初版本。「對我來說,這是最有趣的變化,set_fs() 被移除了,」他寫道,「這不是一個巨大的變化,但很有趣,因為 set_fs() 指定用戶空間副本是否真正進入用戶空間或內核空間的這個模式,幾乎可以追溯到 Linux 的最初版本。」

正如 Torvalds 所解釋的那樣,set_fs() 函數可以通過取消用戶空間和內核空間之間的分界來覆蓋地址空間。該函數在管理英特爾早期 x86 處理器時被廣泛使用,以控制非特權代碼可以訪問的虛擬地址範圍。

然而,2010 年,「[常見漏洞和暴露](Common%20Vulnerabilities and Exposures)」(CVE)詳細披露了 set_fs() 帶來的安全問題。通過繞過某些訪問限制,證實該函數能夠「覆蓋任意內核內存位置」和「獲得特權」 —— 在某些情況下,這可以讓用戶空間覆蓋內核數據。

鑒於該工具的安全缺陷,包括 x86、PowerPC、s390 和 RISC-V 在內的一些架構已經取消了地址空間覆蓋功能。但是,正如 Torvalds 寫道:「我們仍然留著 set_fs(),因為並不是每個架構都已經轉換為新的世界秩序。」

除了這個久違的歷史補救之外,5.10-rc1 版本和大多數內核版本一樣,還伴隨著無數的變化。Torvalds 統計了近 1700 人的近 1.4 萬次提交,改動範圍從支持自動駕駛汽車和機器人的 Nvidia SOC 晶元到支持任天堂 Switch 控制器。

統計結果表明。大約新增了 70.4 萬行代碼和刪除了 41.9 萬行代碼,這使得 5.10-rc1 的大小與 Linux 有史以來最大的內核 5.8 相當。「這看起來是一個比我預期的更大的版本,雖然合併窗口比 5.8 的窗口小,但也小不了多少,」Torvalds 說,「而 5.8 是我們有史以來最大的版本。」

按照 Linux 典型的時間表,5.10-rc1 之後將有幾個星期時間來提交修復問題的補丁,在預計 12 月發布穩定內核之前,將發布幾個候選版本。

via: https://www.zdnet.com/article/linux-5-10-finally-ditches-decades-old-tool-that-caused-security-bugs/

作者:Daphne Leprince-ringuet 譯者:wxy 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國