← 返回 Siami 首頁

Red Hat 旗下多個 npm 套件遭植入 4.2MB 惡意預裝腳本,自走蟲能繞過 2FA 自主再發布

▲ 506 💬 257
Red Hat 旗下多個 npm 套件遭植入 4.2MB 惡意預裝腳本,自走蟲能繞過 2FA 自主再發布

資安公司 StepSecurity 於 2026 年 6 月 1 日揭露,Red Hat 旗下 @redhat-cloud-services 範圍的多個 npm 套件遭植入會在每次 npm install 自動執行的惡意 payload,總計約 30 個套件、超過 60 個版本受到影響。這個 preinstall 腳本檔案大小高達 4.2 MB,正常函式庫腳本頂多幾 KB,明顯異常;外部分析顯示惡意程式以四層混淆包裝真實酬載,包括 ROT-21 凱撒密碼、AES-128-GCM、改造版 obfuscator.io、以及自製 B5 加密(PBKDF2 跑 20 萬輪),靜態分析幾乎無法還原。技術上最值得警惕的兩點:一是直接讀取 /proc//mem 把 Runner.Worker 行程記憶體中的 GITHUB_TOKEN 與其他 isSecret 變數整包撈出,連 GitHub 預設的 log masking 都會被繞過;二是它會用盜來的 npm token 搭配 bypass_2fa 參數,把受害維護者底下其他套件以「含木馬的新版本」形式重新發布,等同具備 2FA 防護的帳號也會被當成下一波散播節點,攻擊完全自主、攻擊者不必介入。所有受影響套件都是從 RedHatInsights/javascript-clients repo 透過 GitHub Actions OIDC 發布,代表上游 CI/CD pipeline 本身已被入侵,不是單純開發者電腦遭殃。StepSecurity 已同步於三個上游 repo 開立揭露 issue,C2 流量刻意走 api.github.com、User-Agent 偽裝為 python-requests/2.31.0,網路層完全與正常 GitHub API 呼叫無法區分;除了直接 HTTPS 外洩,部分樣本還會用 GitHub Contents API 在受害者自己的 repo 內建立 refs / commit 藏 base64 編碼的贓資料,exfil 通道幾乎藏身在 CI 普遍放行的 GitHub 流量中。凡是裝過任何受影響版本 @redhat-cloud-services/* 的人,StepSecurity 明確建議把整台機器視同淪陷,AWS、GCP、Azure、Kubernetes、HashiCorp Vault、npm、與 CircleCI 等所有曾出現在該機器的 token 都要立即 rotate,不要只換 npm token。本次事件也讓業界重新檢視一個老問題:當 CI 採用 OIDC 自動發套件時,攻擊鏈只要能寫入 pipeline,整個套件生態就會被污染。

Reddit 熱門留言 (5)

#1 Hacker News 用戶 ▲ 412
供應鏈攻擊的教科書案例:攻擊者不只偷憑證,還用 bypass_2fa 把受害者的 npm 帳號變成下一波散播跳板。整個 RedHatInsights CI pipeline 都被 OIDC token 接管,dev 機器一裝就出事。
#2 Hacker News 用戶 ▲ 287
整個 4.2MB 的 preinstall script,本來應該只有幾 KB,這麼明顯的異常任何 linter 應該都要跳出來。StepSecurity 還抓到它特別針對 Harden-Runner 做反偵測,攻擊者真的很認真。
#3 Hacker News 用戶 ▲ 198
/proc/<pid>/mem 直接讀 Runner.Worker 記憶體這個技巧太狠了,比抓環境變數強太多 — 那些被 mask 掉的 GITHUB_TOKEN 全部都讀得到,CI 的 log masking 完全失效。
#4 Hacker News 用戶 ▲ 156
C2 走 api.github.com,User-Agent 還偽裝成 python-requests,網路層根本看不出來。整條 exfil channel 都藏在 GitHub 自家流量裡,SIEM 規則要重寫。
#5 Hacker News 用戶 ▲ 134
慘案 — 已經裝過任何 @redhat-cloud-services/* 的人,建議整台機器視同淪陷,AWS/GCP/Azure/K8s/Vault/npm/CircleCI 全部 token 都要 rotate,不是只有 npm token。