Ubuntu系統軟件中的五個漏洞潛藏了十年才被發現
Ubuntu系統中的實用程序 needrestart 近日被曝出存在5個本地權限提升 (LPE) 漏洞,這些漏洞不是最近才產生,而是已經潛藏了10年未被發現。
這些漏洞由 Qualys 發現,并被跟蹤為 CVE-2024-48990、CVE-2024-48991、CVE-2024-48992、CVE-2024-10224 和 CVE-2024-11003,由 2014 年 4 月發布的Needrestart 0.8 版本中引入,直到最近的11月19日才在3.8 版本中修復。
這5個漏洞允許攻擊者在本地訪問有漏洞的 Linux 系統,在沒有用戶交互的情況下將權限升級到 root:
- CVE-2024-48990: Needrestart 使用從運行進程中提取的 PYTHONPATH 環境變量執行 Python 解釋器。 如果本地攻擊者控制了這個變量,就可以通過植入惡意共享庫,在 Python 初始化過程中以 root 身份執行任意代碼。
- CVE-2024-48992:Needrestart 使用的 Ruby 解釋器在處理攻擊者控制的 RUBYLIB 環境變量時存在漏洞。 這允許本地攻擊者通過向進程注入惡意庫,以 root 身份執行任意 Ruby 代碼。
- CVE -2024-48991: Needrestart 中的爭用條件允許本地攻擊者用惡意可執行文件替換正在驗證的 Python 解釋器二進制文件。 通過仔細把握替換時機,可以誘使 Needrestart 以 root 身份運行他們的代碼。
- CVE-2024-10224:Needrestart 使用的 Perl ScanDeps 模塊未正確處理攻擊者提供的文件名。攻擊者可以制作類似于 shell 命令的文件名(例如 command|),以便在打開文件時以 root 身份執行任意命令。
- CVE-2024-11003:Needrestart 對 Perl 的 ScanDeps 模塊的依賴使其暴露于 ScanDeps 本身的漏洞中,其中不安全地使用 eval() 函數會導致在處理攻擊者控制的輸入時執行任意代碼。
值得注意的是,為了利用這些漏洞,攻擊者必須通過惡意軟件或被盜帳戶對操作系統進行本地訪問,這在一定程度上降低了風險。但攻擊者過去也利用過類似的 Linux 權限提升漏洞來獲得 root 權限,包括 Loony Tunables 和利用 nf_tables 漏洞,因此不能因為這些漏洞需要本地訪問權限就疏于修補。
除了升級到版本 3.8 或更高版本(包括所有已識別漏洞的補丁)之外,建議用戶修改Needrestart.conf 文件以禁用解釋器掃描功能,從而防止漏洞被利用。