思科Talos研究人員發布 幾天前 Linux內核中的一個漏洞,可以利用它來竊取數據 並用作提升特權和損害系統的一種手段。
脆弱性 被描述為“信息洩露漏洞” 這可能會使攻擊者看到內核堆棧的內存。
CVE-2020-28588是該漏洞 在ARM設備中發現proc / pid / syscall功能 運行操作系統的32位。 根據Cisco Talos的說法,該問題最早是在運行Azure Sphere的設備上發現的。
Linux Kernel 5.1 Stable和5.4.66的/ proc / pid / syscall功能中存在一個信息洩露漏洞。 更具體地說,此問題已在v5.1-rc4中引入(提交631b7abacd02b88f4b0795c08b54ad4fc3e7c7c0),並在v5.10-rc4中仍然存在,因此所有中間版本都可能受到影響。 攻擊者可以讀取/ proc / pid / syscall來激活此漏洞,從而導致內核丟失內存內容。
Proc是一個特殊的偽文件系統 在類似Unix的操作系統上 用於動態訪問過程數據 在內核中找到。 以類似文件的分層結構顯示過程信息和其他系統信息。
例如,它包含子目錄/ proc / [pid],每個子目錄都包含文件和子目錄,這些文件和子目錄公開了有關特定進程的信息,這些信息可以通過使用相應的進程ID來讀取。 對於“ syscall”文件,它是一個合法的Linux操作系統文件,其中包含內核使用的系統調用的日誌。
對於公司,黑客可以利用此漏洞訪問操作系統和syscall文件 通過用於在內核數據結構之間進行交互的系統Proc。 如果黑客發出命令以生成24個字節的未初始化堆內存,從而繞過內核地址空間佈局隨機化(KASLR),則可以利用syscall procfs條目。
查看此特定功能,一切看起來都很好,但值得注意的是
args
傳遞的參數來自proc_pid_syscall
功能,因此實際上是類型__u64 args
。 在ARM系統中,函數定義將轉換arg
八個字節中的四個字節元素組成的數組(自unsigned long
在ARM中為4個字節),這導致memcpy
複製到20個字節(外加4個字節)args[0]
).同樣,對於i386,
unsigned long
這是4個字節args
寫入參數的前24個字節,其餘24個字節保持不變。在兩種情況下,如果我們回顧一下
proc_pid_syscall
功能。在32位ARM和i386中,我們僅在
args
數組,格式字符串最終讀取48個字節的args
矩陣,因為%llx
在32位和64位系統上,格式字符串為24個字節。 因此,XNUMX字節未初始化的堆內存最終會得到輸出,這可能會導致KASLR繞過。
研究人員指出 該攻擊“不可能在網絡上遠程檢測” 因為它正在從Linux操作系統讀取合法文件。 思科說:“如果使用得當,黑客可以利用此信息洩漏來成功利用其他未修補的Linux漏洞。”
對此,谷歌最近表示:
內存安全漏洞通常會威脅設備,特別是應用程序和操作系統的安全。 例如,谷歌表示,在Linux內核也支持的Android移動操作系統中,它發現2019年解決的安全漏洞中有一半以上是內存安全漏洞的結果。
最後但並非最不重要的 建議更新Linux內核的版本5.10-rc4、5.4.66、5.9.8,因為 此漏洞已經過測試,並確認能夠利用以下版本的Linux內核。
終於 如果您有興趣了解更多信息 關於帖子,您可以在 以下鏈接。