最近有消息說 在 ksmbd 模塊中發現了一個嚴重漏洞,它包含在基於 SMB 協議的文件服務器的實現中 內置於 Linux 內核中。
檢測到故障 允許遠程實現代碼執行 具有內核權限。 無需身份驗證即可執行攻擊,在系統中激活 ksmbd 模塊就足夠了。
在這一刻 確切的細節 關於用於利用該漏洞的方法 還沒有透露 目前只知道該漏洞是由於在對對象執行操作之前未能檢查對像是否存在而訪問已經釋放(Use-After-Free)的內存區域引起的。
漏洞詳情
此漏洞允許遠程攻擊者在受影響的 Linux 內核安裝上執行任意代碼。 利用此漏洞不需要身份驗證,但只有啟用了 ksmbd 的系統容易受到攻擊。SMB2_TREE_DISCONNECT 命令的處理過程中存在特定缺陷。 問題是由於在對對象執行操作之前沒有驗證對象的存在造成的。 攻擊者可以利用此漏洞在內核上下文中執行代碼。
有人提到 問題與 事實上,在函數中 smb2_tree_disconnect(), 分配的內存被釋放 對於 ksmbd_tree_connect 結構,但之後在處理包含 SMB2_TREE_DISCONNECT 命令的某些外部請求時仍使用指針。
除了ksmbd中提到的漏洞, 還修復了 4 個不太危險的問題:
- ZDI-22-1688 – 由於在文件屬性處理代碼中將外部數據複製到分配的緩衝區之前未能檢查外部數據的實際大小,因此具有內核權限的遠程代碼執行。 由於攻擊只能由經過身份驗證的用戶執行,因此可以減輕該漏洞的危險。
- ZDI-22-1691 – 由於錯誤檢查 SMB2_WRITE 命令處理程序中的輸入參數導致內核內存遠程信息洩漏(攻擊只能由經過身份驗證的用戶執行)。
- ZDI-22-1687:由於 SMB2_NEGOTIATE 命令處理程序中不正確的資源釋放導致可用系統內存耗盡導致遠程拒絕服務調用(無需身份驗證即可執行攻擊)。
- ZDI-22-1689 – 由於缺乏對 SMB2_TREE_CONNECT 命令參數的正確驗證導致遠程內核故障,導致讀出緩衝區(攻擊只能由經過身份驗證的用戶執行)。
自版本 4.16.0 以來,Samba 包中就支持使用 ksmbd 模塊運行 SMB 服務器。
與用戶空間 SMB 服務器不同,ksmbd 在性能、內存消耗和與高級內核功能的集成方面更高效。 Ksmbd 被提升為高性能、即插即用的 Samba 擴展,它根據需要與 Samba 工具和庫集成。
ksmbd 代碼由三星的 Namjae Jeon 和 LG 的 Hyunchul Lee 編寫,由微軟的 Steve French 維護,他是 Linux 內核中 CIFS/SMB2/SMB3 子系統的維護者和團隊的長期成員。對在 Samba 和 Linux 中實現 SMB/CIFS 協議支持做出了重大貢獻。
值得一提的是 該問題自內核 5.15 以來一直存在, 於 2021 年 5.15.61 月發布,並在 5.18.18 年 5.19.2 月生成的更新 2022、XNUMX 和 XNUMX 中默默修復。由於尚未為該問題分配 CVE 標識符,因此尚無關於如何修復該問題的確切信息發行版中的問題。
最後,如果你是 有興趣了解更多,您可以查看詳細信息 在下面的鏈接中。