前端前線 2026 年 5 月 31 日

2026-05-31 — Canonical 接手 Flutter Desktop 維護、TanStack npm 三層攻擊鏈

primary=https://x.com/FlutterDev/status/2057151435167441175 primary=https://www.omgubuntu.co.uk/2026/05/flutter-desktop-canonical-maintained primary=https://tanstack.com/blog/npm-supply-chain-compromise-postmortem primary=https://grafana.com/blog/grafana-labs-security-update-latest-on-tanstack-npm-supply-chain-ransomware-incident/

Canonical 接手 Flutter Desktop 主要維護權,成為跨平台嵌入層策略主導者

Flutter / Canonical · 2026-05-30

Google 在 Google I/O 2026 宣布,Canonical 正式成為 Flutter Desktop 的 lead maintainer 與 strategic steward,負責 Linux、Windows、macOS 三個平台 embedder 的日常維護及路線圖規劃。這是 Flutter 治理架構首次將特定平台的主導權移交至外部組織。

背景

Flutter 支援六個平台,但 Google 內部長期以 mobile 為優先,desktop 側的維護資源相對吃緊。2024 年 HN 上已有討論指出 Flutter 團隊對三個桌面平台處於 maintenance mode,Linux embedder 的 issue 積壓尤為明顯。Canonical 自 2021 年起將 Flutter 訂為 Ubuntu 桌面的預設開發框架,以此打造 App Center、Firmware Updater、Security Center 等核心應用,累積了對 Linux embedder 的深度認識

技術職責範圍

Canonical 取得的職責包含:

  • Linux、Windows、macOS embedder 的 PR review 與 merge 權限
  • Desktop 路線圖的優先順序決策
  • 平台特定 bug 的 triage 與修復
  • 與 Flutter engine 核心團隊協調 API 演進

Flutter embedder 層負責將 engine 的 rendering output 與宿主作業系統的視窗系統、輸入事件、accessibility 框架對接。Linux 實作目前以 GTK3 為主,Wayland 直接支援仍在進行中,是 Canonical 短期優先項目之一。Google I/O 2026 同步發布 Flutter 3.44,帶來 impeller 渲染引擎在 Linux 的 beta 支援。

影響範圍

對 Flutter desktop 開發者而言,最直接的改變是 Linux platform 的 issue 回應速度預期提升。Canonical 在 Ubuntu 上擁有完整 CI 基礎設施,可提供更密集的 regression test coverage。Windows 與 macOS embedder 雖非 Canonical 核心業務,同屬此次接管範圍,計畫引入外部貢獻者協同維護。Flutter 官方稱此安排為「治理擴展的第一步」,未來不排除其他平台也採用類似模式。

原始來源:Flutter on XOMG Ubuntu


TanStack Mini Shai-Hulud:42 個 npm 套件的三層攻擊鏈如何讓 Grafana 原始碼遭竊

TanStack / Grafana Labs · 2026-05-21

2026 年 5 月 11 至 12 日,威脅組織 TeamPCP 在 20 分鐘內將 84 個惡意版本發佈至 42 個 @tanstack/* npm 套件,接著以供應鏈蠕蟲方式擴散至 160 餘個 npm/PyPI 套件。Grafana Labs 的 GitHub repository 因此遭到存取,原始碼被竊並收到勒索要求,公司拒絕付款。

三層攻擊鏈

第一層:Pwn Request(pull_request_target 濫用):TanStack 的 bundle-size.yml workflow 使用 pull_request_target trigger,允許 fork PR 在 base repo 的 runner 上執行任意指令,取得 GITHUB_TOKEN 的高權限。

第二層:GitHub Actions Cache Poisoning:惡意 workflow 步驟將感染的建構工具鏈寫入共用 cache 條目,後續合法 workflow run 在 actions/cache 的 restore 步驟載入受污染的二進位。

第三層:OIDC Token 記憶體提取:從 GitHub Actions runner 行程記憶體 dump 出 npm Trusted Publishing 的 OIDC token,在無需 2FA 的情況下發佈套件。

偵測與後果

StepSecurity 外部研究員在 20–26 分鐘後偵測到異常,所有 84 個版本在 1 小時 43 分鐘內被 deprecate。TanStack 本身無任何自動監控觸發警報,完全依靠外部偵測。攻擊者選用的 payload 剛好會破壞測試,加速了被發現的速度。Grafana Labs 在輪換所有 workflow token 的過程中遺漏一個,導致攻擊者在 5 月 16 日存取其 GitHub repository 並發出勒索要求。客戶生產環境未受影響。

根本修復

  • pull_request(隔離 fork 上下文)替換 pull_request_target
  • 設定 GitHub Actions cache isolation,限制 cache 只能由同一 repository 恢復
  • 為 npm Trusted Publishing 設定 environment protection rules,限制 OIDC token 只能從受保護的 release workflow 取得

原始來源:TanStack PostmortemGrafana Labs Security Update


End of article
0
Would love your thoughts, please comment.x
()
x