谷歌零項目團隊的研究人員宣布 最近通過一篇博文 一種利用漏洞的新方法 (CVE-2020-29661) 在 TIOCSPGRP ioctl 處理程序實現中 Linux 內核 tty 子系統,以及可以阻止此類漏洞的詳細保護機制。
帖子中提到 該問題是由鎖配置錯誤引起的,導致 /tty/tty_jobctrl.c 代碼中的競爭條件,該條件用於創建啟動後訪問內存的條件(釋放後使用),由用戶空間通過調用 TIOCSPGRP 使用 ioct- 進行操作來利用。
除了已公佈的信息外,還 進行了有效利用的演示 用於權限升級 帶有內核 10-4.19.0-amd13 的 Debian 64 並且也不排除它可能會影響各種發行版,其中當然包括基於 Debian 和派生自 Debian 的發行版。
我在這裡描述的許多單獨的利用技術和緩解選項並不新穎。 然而,我認為將它們寫在一起以展示各種緩解措施如何與相當正常的免費使用漏洞相互作用是有價值的。
本博文中與漏洞利用相關的代碼片段取自舊版本 4.19.160,因為這是目標 Debian 內核所基於的; 其他一些代碼片段來自主線linux。
與此同時,在發表的文章中, 重點不在於創建有效漏洞的技術,而在於使用什麼工具 有 在內核中 保護自己 針對此類漏洞。
結論令人失望 因為有人提到,在堆上對內存進行分段以及在釋放內存後控制對內存的訪問等方法在實踐中並未應用,因為它們會導致性能下降和基於CFI(控制流)的保護(完整性),從而阻止稍後的漏洞利用攻擊階段,需要改進。
一種特殊類型的終端設備是偽終端,例如,當您在圖形環境中打開終端應用程序或通過 SSH 連接到遠程計算機時,就會使用偽終端。 當其他終端設備附加到某種硬件時,偽終端的兩端都由用戶空間控制,並且偽終端可以由用戶空間自由創建(沒有特權)。
每當打開/dev/ptmx(“偽終端多路復用器”的縮寫)時,生成的文件描述符表示新偽終端的設備端(在文檔和內核源代碼中稱為“主偽終端”) 。
相應的終端設備(shell 通常連接到的終端設備)由內核在 /dev/pts/ 下自動創建。
當考慮從長遠來看什麼可能會產生影響時,重點是使用高級靜態分析器或使用內存安全語言,例如 Rust 方言和帶有擴展註釋的 C(例如checked C)來構建狀態檢查器,鎖、對象和指針。 保護方法還提到啟用panic_on_oops模式,使內核結構只讀,並使用seccomp等機制限制對系統調用的訪問。
導致問題的錯誤 去年 3 月 XNUMX 日已在 Linux 內核中修復。 問題 在 5.9.13 版本之前的內核中表現出來, 但大多數發行版都在去年發布的內核包更新中修復了該問題。
還提到了在 TIOCGSID ioctl 調用的實現中同時發現的類似漏洞(CVE-2020-29660),但也已在各處刪除。
終於 如果您有興趣了解更多信息, 您可以查看詳細信息 在下面的鏈接中。