Rust 進駐 Pixel Baseband:Pixel 10 數據機韌體中的 DNS 解析器
Google Security Blog · 2026-05-02
Google 將 Rust 語言整合至 Pixel 10 的數據機(modem)韌體中,以記憶體安全的 DNS 解析器取代原有的 C 實作,消除這個攻擊面上的整類記憶體安全漏洞。
選擇 DNS 解析器的原因
DNS 解析需要解析不受信任的網路資料,歷史上是記憶體不安全語言(如 C/C++)中漏洞的高發區。選用 hickory-proto(前身為 trust-dns-proto)開源函式庫,理由是:超過 75% 的測試覆蓋率、良好的維護狀態以及廣泛的生產採用。
技術實作
嵌入式環境(bare-metal)要求 no_std 支援:Google 團隊為 hickory-proto 及其相依套件新增了 no_std 相容性,透過實作 GlobalAlloc trait(以 FFI 呼叫現有 C 記憶體分配器)滿足 Rust 的記憶體分配需求,以 bindgen 生成對 C++ 回呼函數的 FFI 繫結,並使用 Pigweed 建構系統整合 Rust 靜態函式庫。
挑戰與解決方案
- 程式碼大小:hickory-proto 加上相依套件共 371 KB(其中 350 KB 為 hickory-proto 本身)。
- 弱符號衝突(Weak Symbol Conflicts):數據機優化版本的
memset與memcpy被 Rust 的compiler_builtins意外覆蓋;解決方案是在連結前用llvm-ar從 staticlib 中剝除compiler_builtins物件檔案。 - 相依性管理:透過
cargo-gnaw工具自動為 30+ 個相依 crate 生成 GN 建構規則。
原始來源:Google Security Blog
CVE-2026-42354:Sentry SAML SSO 身分驗證繞過(嚴重,CVSS 9.1)
GitHub Advisory GHSA-rcmw-7mc7-3rj7 · 2026-05-02
Sentry(開源錯誤追蹤平台)版本 21.12.0 至 26.4.0 中存在一個嚴重的 SAML SSO 身分驗證繞過漏洞(CWE-290,Authentication Bypass by Spoofing),CVSS 分數 9.1。
漏洞機制
攻擊者可透過控制一個惡意 SAML Identity Provider(IdP),在同一個 Sentry 實例上以另一個組織的身分,接管任意使用者帳號。攻擊者只需知道受害者的電子郵件地址。整個攻擊過程中,Sentry 的 SAML SSO 流程對 Identity Provider 的驗證存在不正確的邏輯,導致攻擊者可以跨組織進行身分連結(identity linking)。
自託管部署的前提條件
對於自託管(self-hosted)Sentry,需要滿足兩個條件:設定 SENTRY_SINGLE_ORGANIZATION = False(啟用多組織模式),且攻擊者擁有另一個組織的存取權限並可修改 SSO 設定。SaaS 版本(sentry.io)已於 2026 年 4 月部署修補。
受影響版本與修補
受影響範圍:版本 21.12.0–26.4.0。修補版本:26.4.1 及以後。在修補前,Sentry 建議對所有使用者帳號啟用雙因素驗證(2FA)作為緩解措施(組織管理員無法強制要求個別使用者啟用)。
CVE-2026-42560:go-pkgz/auth Patreon 提供者將所有使用者對應至同一 ID
GitHub Advisory GHSA-f6qq-3m3h-4g42 · 2026-05-02
go-pkgz/auth(一個 Go OAuth 身分驗證函式庫)的 Patreon 提供者中存在一個嚴重邏輯錯誤,導致所有透過 Patreon 登入的使用者被對應至同一個本地身分。
根本原因
程式碼在尚未將 Patreon API 回應填入 userInfo 結構體之前,就提前計算了使用者的本地 ID:
// 錯誤:此時 userInfo.ID 尚未從 API 回應中填入(為空字串)
userInfo.ID = "patreon_" + token.HashID(sha1.New(), userInfo.ID)
// 應該是:
userInfo.ID = "patreon_" + token.HashID(sha1.New(), uinfoJSON.Data.ID)對空字串計算 SHA-1 的結果是固定值 da39a3ee5e6b4b0d3255bfef95601890afd80709,因此所有 Patreon 使用者都獲得本地 ID patreon_da39a3ee5e6b4b0d3255bfef95601890afd80709。此 ID 被嵌入 JWT claim,透過 middleware 傳播至所有應用程式處理器。
攻擊影響
所有使用 Patreon 登入的使用者都共用同一個身分,可存取彼此的資料,實現跨使用者資料存取、提權以及訂閱狀態洩漏。
受影響版本
github.com/go-pkgz/auth:1.18.0–1.25.1github.com/go-pkgz/auth/v2:2.0.0–2.1.1
修正方式:在 provider/providers.go 與 v2/provider/providers.go 第 257 行,將雜湊運算的輸入從 userInfo.ID 改為 uinfoJSON.Data.ID。
uutils coreutils 0.8.0 安全審計:73 項發現含 7 項嚴重問題
oss-security mailing list · 2026-05-02
Ubuntu 委託 Zellic 對 uutils coreutils(以 Rust 重寫的 GNU coreutils)進行了兩輪安全審計,結果顯示即使是以記憶體安全語言撰寫的系統工具,邏輯錯誤仍是主要風險來源。
審計結果
- 第一輪審計:73 項發現(7 嚴重、11 高危、29 中危、26 低危)
- 第二輪審計:40 項額外發現
- 大部分問題已在 uutils coreutils 0.8.0 版本中修復,相關 PR 標記為
reported-canonical-2
技術意義
審計揭示的問題主要屬於邏輯錯誤(logic errors)而非記憶體安全問題,印證了「記憶體安全語言無法捕獲所有類別的 bug」的觀察。Unix coreutils 的工具(mkfifo、cp、chmod 等)在許多 Linux 發行版中以提升的權限執行,且頻繁處理不受信任的檔案系統路徑,使邏輯漏洞的安全影響不可小覷。完整審計報告已由 Zellic 發布,可透過 Ubuntu Discourse 公告取得。
Apache Polaris CVE-2026-42809 至 CVE-2026-42812:四項安全漏洞
oss-security mailing list · 2026-05-02
Apache Polaris(開源 Apache Iceberg 目錄伺服器)在同一批次披露了四個安全漏洞,嚴重程度從中危到高危。
- CVE-2026-42809:身分驗證繞過(Authentication Bypass),高危
- CVE-2026-42810:憑證暴露(Credential Exposure),高危
- CVE-2026-42811:元資料保護問題(Metadata Protection Issue),中危
- CVE-2026-42812:元資料保護問題,中危
Apache Polaris 作為 Iceberg REST Catalog 的參考實作,廣泛用於雲端資料湖(data lake)架構中管理資料表元資料。身分驗證繞過漏洞(CVE-2026-42809)的影響尤為嚴重,因為 Polaris 通常具備對底層儲存的完整讀寫權限。建議使用者立即升級至修補版本,並審查服務帳號的最小權限配置。