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