Kata Containers 客戶機逃脫漏洞(CVE-2026-47243,CVSS 8.4):virtiofs 路徑穿越讓 guest-root 在 host 建立 cron 後門
GitHub Security Advisories · 2026-05-28
Kata Containers runtime-rs 的 virtio-fs 實作存在客戶機逃脫(guest escape)漏洞,識別為 CVE-2026-47243(GHSA-2gv2-cffp-j227),CVSS v4 基礎分數 8.4(High)。取得客戶機 root 權限的攻擊者可繞過客戶機核心的路徑驗證,在宿主的 /etc/cron.d 建立符號連結,最終以 host-root 執行任意程式碼。
漏洞機制
問題根源在於 virtiofsd 以 --sandbox none --seccomp none 旗標在宿主端以不沙盒化方式執行,且未對 FUSE 請求中的路徑進行充分驗證。攻擊路徑:
- 攻擊者以 guest-root 直接存取 virtio-fs PCI 裝置
- 映射 virtio PCI BAR,還原 guest 實體位址
- 構造自訂 virtqueue,發送
FUSE_SYMLINK請求,目標路徑指向宿主的/etc/cron.d - 符號連結的目標透過
/proc/<pid>/root/...指向 guest 內的 payload - 宿主 cron 以 root 執行 guest 控制的 payload
PoC 已確認可在宿主 /run 目錄建立 host-root 擁有的檔案。
受影響版本與修補
受影響:github.com/kata-containers/kata-containers 在 commit ffa59ce3aa78(2026-05-19)之前的所有版本。修補版本:Kata Containers 3.31.0;fix commit:ffa59ce3aa7877d067c9a372df0c329a23a01744。未能立即升級的使用者應評估限制 virtio-fs 使用或啟用額外的 seccomp/AppArmor profile。
yamcs-core 雙 Critical RCE:Jython 注入(GHSA-2g95-6x5q-xjwj)與 Mission DB Algorithm Override(GHSA-vmwp-vh32-rj75)
GitHub Security Advisories · 2026-05-28
航太任務控制框架 yamcs 的 yamcs-core(Maven)發布兩項 Critical RCE 修補,均允許已認證使用者在伺服器上執行任意程式碼。CVSS 均為 Critical 等級(9.x)。
GHSA-2g95-6x5q-xjwj:Jython Algorithm Code Injection
yamcs 的 Mission Database 支援以 Python(透過 Jython JVM 實作)定義 algorithm 的計算邏輯。API 端點允許已認證使用者上傳 algorithm 程式碼,但未充分驗證輸入,攻擊者可注入任意 Jython 程式碼,在 yamcs 伺服器的 JVM 上下文中執行,取得與 yamcs 服務帳號相同的 OS 權限。
GHSA-vmwp-vh32-rj75:Mission Database Algorithm Override
第二個漏洞與 Mission Database 的 algorithm override 機制相關:已認證使用者可透過特定 API 覆寫(override)預設 algorithm 定義,注入惡意邏輯並在 Yamcs 伺服器上執行。兩個 CVE 的攻擊面相近,但觸發路徑不同。
影響範圍
yamcs 廣泛用於航太工業的地面支援系統(GSS)與任務控制系統(MCS),包含衛星遙測遙控。受影響的任何 yamcs 部署若對不完全可信的已認證使用者開放 algorithm 設定 API,均面臨 RCE 風險。建議立即套用官方發布的修補版本,並審查 algorithm 設定 API 的存取控制策略。
Erlang/Elixir Atom Exhaustion:佔 EEF CNA 三分之一 CVE 的 DoS 攻擊面全解析
Erlang Ecosystem Foundation · 2026-05-28
Erlang Ecosystem Foundation(EEF)安全工作組發布 atom exhaustion 分析報告,指出此類漏洞佔 EEF CNA 發布的所有 CVE 的 35.8%,是 BEAM 生態系(Erlang/Elixir)最常見的單一漏洞類型,也是許多開發者低估其嚴重性的 DoS 向量。
攻擊機制
BEAM 執行時期(Erlang VM)將 atom 儲存在全域 atom table 中,atom 不被垃圾回收。當 atom table 耗盡時,整個 VM 當機——影響所有在同一 VM 上執行的所有 Erlang/Elixir 應用程式。攻擊者只需能控制觸發動態 atom 建立的輸入,即可發動 DoS。
常見漏洞模式
容易觸發 atom exhaustion 的程式碼模式,分為明顯與隱微兩類:
- 明顯:
binary_to_atom(user_input)、String.to_atom(input)、list_to_atom("field_" ++ UserInput) - 隱微:Elixir 字串插值到 atom(
:"field_#{user_input}")、JSON 解析時以 atom keys(Jason.decode(json, keys: :atoms))、URI scheme 動態轉換
JSON 解析的 keys: :atoms 選項是 Elixir 開發者常見的陷阱——看起來方便,實際上將外部 JSON 的任意 key 名稱直接轉為 atom,攻擊面極大。
緩解策略
首選:完全避免從外部輸入動態建立 atom,改用查找表:
case Scheme of
<<"http">> -> http;
<<"https">> -> https;
_ -> error
end次選:使用 binary_to_existing_atom/1、String.to_existing_atom/1——僅轉換已存在的 atom,對未知輸入拋出例外而非建立新 atom。偵測工具:Elixir 的 Credo 提供 UnsafeToAtom check(預設關閉,需手動啟用)。
原始來源:Erlang Ecosystem Foundation — Atom Exhaustion Is Not a Footgun. It's One Third of Our CVEs