昨日,V社員工@percybysshe主動披露了一份標題為“Steam Deck Single Click Root Remote Code Execution”的安全報告,結合上下文可翻譯為“Steam Deck的最新系統存在單擊便可以獲得root權限的遠程代碼執行漏洞”。
這個漏洞意味Steam Deck用戶只需要點擊Steam聊天中好友發給你的精心設計的鏈接便可以獲得系統最高權限,從而可以盜賣你的遊戲皮膚或者向其他人發送釣魚和欺詐信息。
V社官方對漏洞的描述較為委婉:“(Steam Deck所用的) Linux客戶端中包含的 Chromium 嵌入式框架版本容易受到允許修改本地文件的 v8 漏洞的影響。研究人員演示了將本地文件修改鏈接到本地權限升級”。
這個漏洞屬於高危漏洞,但是Valve僅將報告記為“信息豐富”,這意味著Valve暫未採取行動去修復漏洞。因此,請各位玩家謹慎點擊Steam聊天中的鏈接。
Valve的簡報
該漏洞的報告者@g1a55er似乎覺得V社的總結太簡單繼而給出了更加詳細的補充:
Steam Deck的最新系統存在容易受到遠程代碼執行漏洞的影響,該漏洞可以與權限提升漏洞交互,以便在用戶單擊 Steam 聊天中指向惡意製作的網頁的鏈接後,為攻擊者提供完全 root 執行權限。用戶單擊連接後,漏洞就可以成功運行,無需進一步的用戶交互。
具體來說,steamwebhelper 中使用的 Chromium 嵌入式框架 (CEF) 基於 Chromium 版本 85.0.4183.121。此版本容易受到CVE-2020-16040的攻擊。如果steamwebhelper加載惡意頁面,則可以利用該CVE在steamwebhelper進程中獲取RCE。
steamwebhelper 進程以禁用 CEF 沙箱的用戶“deck”身份運行。這意味著攻擊者在利用後立即可以訪問所有用戶的文件,因為所有用戶內容都可以通過“deck”讀取。可能最關鍵的是,這包括存儲在 ~/.local/share/Steam/ssfn* 中的 Steam Sentry 憑證文件,該文件將出現在所有 Steam Decks 上並促進 Steam 帳戶接管。
從這裡,我們可以轉向獲得完全的 root 訪問權限。默認情況下,deck 用戶具有 sudoers 權限,且未設置密碼。因此,我們需要做的就是設置一個密碼,然後將該密碼提供給“sudo”二進制文件以獲得完整的 root shell。
然而,steamwebhelper 執行時設置了“無新權限”標誌,這阻止我們直接sudo從初始 RCE 上下文進行調用。通過修改甲板用戶有權訪問的另一個進程最終將在 steamwebhelper 進程之外執行的某些可執行文件,可以輕鬆規避此問題。考慮到套牌用戶的大量文件訪問權限(例如訪問所有遊戲、整個 Steam 可執行文件、其他應用程序等),有多種選項可供選擇。我驗證了至少存在一個這樣的易受攻擊的站點,通過在 中植入惡意負載來促進這種權限升級~/.bashrc,該負載似乎至少在設備重新啟動時就會執行。所有這些步驟都可以在 Chrome RCE 執行的 shellcode 中實現。
一旦獲得持久根訪問權限,您就可以訪問設備上的所有文件和外圍設備。
g1a55er的簡報
#逆天bug#