專家在 Linux 內核中發現三個有 15年歷史的新漏洞
具有基本用戶權限的本地攻擊者可以利用Linux內核中的三個15年漏洞來獲取易受攻擊的Linux系統上的root用戶特權。
GRIMM研究人員在Linux內核的SCSI(小型計算機系統接口)組件中發現了三個漏洞,這些漏洞可以由具有基本用戶權限的本地攻擊者利用,以在未打補丁的Linux系統上獲得root權限。
小型計算機系統接口定義了并行I / O總線和數據協議,以將各種外圍設備(磁盤驅動器,磁帶驅動器,調制解調器,打印機,掃描儀,光盤驅動器,測試設備和醫療設備)連接到主機電腦。
自2006年開發以來,該組件中就存在漏洞。
第一個漏洞(跟蹤名稱為CVE-2021-27365)是iscsi子系統中的堆緩沖區溢出。
“通過將iSCSI字符串屬性設置為大于一頁的值,然后嘗試讀取它,可以觸發該漏洞。” 閱讀GRIMM研究人員發表的分析。* “更具體地說,沒有特權的用戶可以將netlink消息發送到iSCSI子系統(在drivers / scsi / scsi_transport_iscsi.c中),該子系統可通過drivers / scsi中的助手功能設置與iSCSI連接相關的屬性,例如主機名,用戶名等。 /libiscsi.c。這些屬性的大小僅受Netlink消息的最大長度限制(2 *32或2** 16取決于處理消息的特定代碼)。”
第二個漏洞(跟蹤名稱為CVE-2021-27363)是堆溢出漏洞。研究人員發現了一個內核指針泄漏,可用于確定iscsi_Transport結構的地址。
最后一個漏洞(跟蹤名稱為cve-2021-27364)是一個駐留在libiscsi模塊(driver/scsi/libiscsi.c)中的越界內核讀取問題。
“類似于第一個漏洞,沒有特權的用戶可以制作網絡鏈接消息,這些消息指定驅動程序無法驗證的緩沖區大小,從而導致可控的越界讀取。” 繼續分析。“存在多個未經驗證的用戶控制值,包括計算前一個標頭的大小,從而允許從原始堆緩沖區以可控制的32位偏移量讀取最多8192個字節。”
這三個漏洞還可能導致數據泄漏,并且可以被利用來觸發拒絕服務條件。
“由于堆溢出的不確定性,第一個漏洞可能被用作不可靠的本地DoS。但是,與信息泄漏一起使用時,此漏洞可以進一步用作LPE,使攻擊者可以從無特權的用戶帳戶升級到root用戶。不過,不必單獨進行信息泄漏,因為此漏洞也可以用來泄漏內核內存。” 繼續分析。“第二個漏洞(內核指針泄漏)的影響較小,只能充當潛在的信息泄漏。同樣,第三個漏洞(越界讀取)也僅限于充當潛在的信息泄漏甚至是不可靠的本地DoS。”
攻擊者可能利用這些漏洞繞過安全功能,即內核地址空間布局隨機化(KASLR)繞過,主管模式執行保護(SMEP),主管模式訪問阻止(SMAP)和內核頁表隔離(KPTI)。
這些缺陷會影響所有已裝載scsi_transport_iscsi內核模塊的Linux發行版,但是好消息是這不是默認設置。
“上面討論的漏洞來自Linux內核中一個非常老的驅動程序。由于采用了相當新的技術(RDMA)以及基于兼容性而非風險的默認行為,該驅動程序變得更加明顯。” 分析結束。“ Linux內核加載模塊是因為檢測到新硬件,還是因為內核功能檢測到缺少模塊。”
以下是這些漏洞的時間表:
- 02/17/2021 –已通知Linux安全團隊
- 02/17/2021 –申請和收到的CVE編號
- 20/03/07 –修補程序在主線Linux內核中可用
- 2021年3月12日– 公開披露(NotQuite0DayFriday)