近日,GitHub 安全研究員 Kevin Backhouse 發(fā)現(xiàn)了 Ubuntu 20.04(一個長期支持版本)中的漏洞,該漏洞可以使任何桌面用戶無需系統(tǒng)密碼,即可添加新的 sudo 用戶,并獲得 root 訪問權(quán)限。
Backhouse 指出,利用該漏洞攻擊系統(tǒng)的方法非常簡單,只需要一些簡單的命令就能為自己創(chuàng)建一個管理員賬戶。“現(xiàn)代操作系統(tǒng)中的漏洞如此容易被利用是不尋常的。“Backhouse 還錄制了視頻詳細(xì)展示了自己如何利用這個漏洞對系統(tǒng)進(jìn)行攻擊。
據(jù)悉,該漏洞利用了 Ubuntu 系統(tǒng)中的兩個錯誤。一個是管理計算機(jī)上用戶賬戶的服務(wù) accountsservice,另一個是 GNOME 顯示管理器(gdm3) 的 BUG。
accountsservice 漏洞
accountservice 的守護(hù)進(jìn)程 accounts-daemon 是管理機(jī)器上用戶賬戶的系統(tǒng)服務(wù),它可以創(chuàng)建一個新的用戶賬戶或更改用戶的密碼,但它也可以做一些安全敏感度較低的事情,比如更改用戶的圖標(biāo)或他們喜歡的語言。守護(hù)進(jìn)程是在后臺運行的程序,沒有自己的用戶界面。然而,系統(tǒng)設(shè)置對話框可以通過一個稱為 D-Bus 的消息系統(tǒng)與賬戶-守護(hù)進(jìn)程進(jìn)行通信。
而 Ubuntu 使用了一個修改過的 accountsservice 版本,其中包含了一些額外的代碼,而這些代碼在 freedesktop 維護(hù)的上游版本中并不存在。Ubuntu 的補丁增加了一個名為 is_in_pam_environment 的函數(shù),它在用戶的主目錄中尋找一個名為 .pam_environment 的文件,并讀取它。
accounts-daemon 漏洞的工作原理是將 .pam_environment 作為一個指向 /dev/zero 的軟鏈接。/dev/zero 是一個特殊的文件,實際上并不存在于磁盤上,它是由操作系統(tǒng)提供的,它的行為就像一個無限長的文件,其中的每一個字節(jié)都是 0 。當(dāng) is_in_pam_environment 試圖讀取 .pam_environment時,它會被軟鏈接重定向到 /dev/zero,然后陷入無限循環(huán),因為 /dev/zero 是無限長的。
這樣一來,accounts-daemon 就會喪失其 root 權(quán)限,轉(zhuǎn)而采用用戶的較低特權(quán),然后將 SIGSEGV 發(fā)送給賬戶守護(hù)程序并使其崩潰。
GNOME 漏洞
GNOME 顯示管理器(gdm3)是 Ubuntu 用戶界面的一個基本組件。它負(fù)責(zé)處理諸如在用戶登錄和退出時啟動和停止用戶會話等事宜,還負(fù)責(zé)管理登錄屏幕。
gdm3 處理的另一件事是新電腦的初始設(shè)置。當(dāng)你在新電腦上安裝 Ubuntu 時,首先需要做的事情之一就是創(chuàng)建一個用戶賬戶。初始用戶賬戶需要設(shè)置一個管理員,這樣用戶才能繼續(xù)設(shè)置機(jī)器,做一些諸如配置 wifi 和安裝應(yīng)用程序的事情。下面是初始設(shè)置界面的截圖(取自漏洞視頻)。
gnome-initial-setup(初始設(shè)置)
截圖中看到的對話框是一個單獨的應(yīng)用程序,叫做 gnome-initial-setup。當(dāng)系統(tǒng)上的用戶賬戶為 0 時,它就會被gdm3 觸發(fā),這也是新電腦初始設(shè)置時的情況。而 gdm3 恰好就是通過詢問 accounts-daemon 來檢查當(dāng)前機(jī)器的賬戶數(shù)量。因為在上一個漏洞中導(dǎo)致 accounts-daemon 已經(jīng)崩潰,其用于查詢賬戶數(shù)量的 D-Bus 方法調(diào)用由于超時而失敗。所以現(xiàn)在 gdm3 認(rèn)為用戶賬戶為零,并啟動了 gnome-initial-setup。
Backbouse 已經(jīng)在上個月將該漏洞報告提交給了 Ubuntu 和 GNOME 維護(hù)人員,目前官方已經(jīng)進(jìn)行了修復(fù)。使用 Ubuntu + GNOME 的用戶還請盡快安裝修復(fù)補丁。(沒有使用 GNOME 的用戶暫時不受影響)
本文轉(zhuǎn)自O(shè)SCHINA。
本文標(biāo)題:JetBrains 發(fā)布 Kotlin 桌面 UI 框架,共享 Android UI 代碼
本文地址:https://www.oschina.net/news/120434/jetbrains-jetpack-compose-for-desktop