深藍色背景上的抽象技術插圖:左側有一根垂直細線懸掛著發光的琥珀色鑰匙剪影,一條細水平線從它向右延伸,連接到一面由高大磨砂玻璃板構成、向遠處退去的牆。其中三塊面板從背後透出溫暖的琥珀色光,其餘保持鋼藍色。一道帶有小刻度標記的細青色弧線從左下方攀升,橫跨牆面。畫面中沒有出現人物、標誌或可讀文字。OrcaRouter 標誌位於右下角的白色條帶中。
AI Safety Incidents

CrowdSec 因離職流程缺口,在九分鐘內遺失 170 個私有儲存庫

作者

Elias Hawthorne

發佈日期

最新模型 · 20查看全部模型 →
基準測試:Artificial Analysis · 每日更新
返回全部文章

2026 年 5 月 22 日,UTC 05:52:29 至 06:01:33 之間,一名從加拿大 多倫多的 IP 位址作業的人,使用了剛離開 CrowdSec 的開發者的 GitHub 帳號,複製了這家法國安全公司約 170 個私人儲存庫。CrowdSec 在 2026 年 9 月 18 日 的自家事件報告中公布了該時間線——這是 AI 事件檔案庫指派給此紀錄的日期——此前其原始碼的封存檔已於 9 月 16 日在 pwnforum 網路犯罪市集浮現。該帳號仍然有效,因為公司刻意保留該開發者的 GitHub 存取權限,好讓他們完成一些工作。其背後的筆記型電腦早在十一天前就已遭 Mini Shai-Hulud 憑證竊取蠕蟲感染,該蠕蟲是由 TeamPCP 透過 TanStack 的 npm 套件散布。 本記述取自 2026 年 9 月 18 日歸檔的紀錄,而完整記載的事件集——每筆條目都帶有自己的嚴重性、信心評級、爭議標記與來源——位於 Orca AI Incident Archive,在那裡可與同年的其他供應鏈案例並列閱讀。

這起竊取事件並未僅限於程式碼。CrowdSec 的報告還揭露了以下使用者的電子郵件地址:83 名使用者,這些資料取自一份內部的資料科學監控清單,且多為 Gmail 帳號,另外還有2020 年的 51 位潛在投資人的姓名、電子郵件地址與投資背景。相對於約 15 萬名使用者,83 個地址只是極小的一部分,但並非為零。執行長 Philippe Humeau 僅針對投資人表達了個人的歉意:「洩漏各位的姓名與電子郵件地址,是我們將直接與各位及主管機關討論的問題,為此我個人致上歉意。」

九分鐘實際上奪走了什麼

Dark navy HTML timeline card with a faint grid, kicked 'crowdsec · 22 may to 18 september 2026 · times as published' and headed 'The nine minutes, and the 117 days after'. Two columns of timestamped rows. Left, headed 'Upstream, then the copy': 11 May, 84 malicious versions across 42 TanStack npm packages ship the Mini Shai-Hulud credential harvester; 22 May 05:52:29, the copy window opens with a first fetch logged at 05:52:32.138 UTC; 22 May 06:01:33, the window closes with about 170 private repositories copied from an IP in Toronto, machine timezone UTC-4; 25 May, the former developer's account is removed from the GitHub organisation, three days after the copy. Right, headed 'Before disclosure, then discovery': 17 August, the exposed AWS SNS token is probed from 23.234.84.102 and reaches no further than a single topic; 16 September 17:45, an archive of CrowdSec source code is published on the pwnforum marketplace; 16 September 20:00, the Fuites Info team contacts CrowdSec and a crisis cell is stood up; 17 September, token rotation begins and GitHub support traces the token's lifecycle; 18 September, the full report discloses 83 user email addresses and the details of 51 potential investors from 2020. A highlighted band reads 'The account was left open on purpose so a departing developer could finish some work. It was revoked on 25 May, after the repositories were already gone.' A footer cites CrowdSec's analysis of 18 September 2026. The OrcaRouter logo sits in a white strip at the bottom right.

GitHub 交還給 CrowdSec 的 Git 紀錄始於 UTC 05:52:32.138,當時對該公司其中一個儲存庫進行了一次 fetch,而活動於 06:01:33 停止。該封存檔中約 170 個私人儲存庫的數字來自該 Git 資料。Humeau 在其文章中將這次暴露描述為「僅限於 CrowdSecurity 的原始碼,包括 130 多個公開儲存庫以及許多私人儲存庫」。DevOps.com 於 9 月 24 日報導此事件時,將公開與私人儲存庫的合計數量寫為約 300 個儲存庫——這個數字大於 CrowdSec 自身的私人儲存庫數字,且該公司的報告並未提及。

這些內容是一家快速成長的 SaaS 公司常見的資產:Web 主控台的原始碼、部署與自動化指令碼,以及其分析功能背後的資料科學指令碼與模型。CrowdSec 指出,其中最敏感的項目是決定哪些 IP 位址會進入其封鎖清單的「共識演算法」。該演算法的架構早已公開,但其多樣性與偵測閾值並未公開,而這些現在都已為人所知。Humeau 主張,這些閾值是會變動的目標,而且就算要操控共識,仍需要龐大且昂貴的伺服器機群;該公司表示,它可以調整這些閾值,並正在留意是否有不一致之處。

憑證是原本可能糟得多的部分。「我們當時非常接近完全乾淨,」Humeau 寫道。外洩資料中唯一可用的祕密是 AWS Simple Notification Service 權杖,權限範圍僅限於在單一主題上發布。有人在 2026 年 8 月 17 日從 IP 23.234.84.102 測試了它,呼叫 GetCallerIdentity 和 ListTopics,對象包括 dev 與 env 兩個主題,之後便無法再進一步。程式碼中大多數其他權杖與祕密在外洩前已被撤銷或輪替。CrowdSec 表示,其基礎設施與資料庫未被存取,且開源專案、其私有原始碼或建置管線中沒有任何程式碼遭到變更。

Dark navy HTML card headed 'What left the building', kicked 'the exposure, as crowdsec counted it'. Five tiles across the top. 170, private repositories copied in the nine-minute window per the Git activity GitHub returned, noted 22 May 2026 05:52 to 06:01 UTC. 130+, public repositories the CEO says were also in the leak alongside many private ones, with a note that DevOps.com puts the combined figure at about 300. 83, user email addresses mostly Gmail drawn from a data-science monitoring list, out of roughly 150,000 users. 51, potential investors from 2020 with names, addresses and investment context, described as the group the CEO apologised to personally. 1, usable credential in the dump, an AWS SNS token scoped to one topic, probed 17 August from 23.234.84.102. Four smaller tiles below read: console source, the SaaS web console not open-sourced and not intended to be; data-science scripts and models, of little use without the data that trains them; automation scripts, deployment, QA and Slack bots that the company calls no-risk; consensus thresholds, the diversity and detection limits that were not public before. A highlighted band reads 'No infrastructure, no databases, no code changes, CrowdSec's finding. The data-science scripts and models and the blocklist consensus thresholds went with the source.' A footer cites CrowdSec on 18 September 2026, Dark Reading on 22 September and DevOps.com on 24 September. The OrcaRouter logo sits in a white strip at the bottom right.

為什麼帳號仍然可用

離職流程的失誤很小且具體。等到這名開發者離開時,CrowdSec 已經移除了他的其他存取權限;Humeau 寫道,GitHub 帳號之所以被保留,是因為「我們與開發者好聚好散,他想完成一些工作。」該帳號於5月25日從 GitHub 組織中移除,此時儲存庫已被複製三天。

CrowdSec 當時無法察覺這起竊取事件,箇中原因值得準確說明。該 OAuth 權杖並未出現在該組織的稽核記錄中,也未出現在任何現任成員的稽核記錄中;而等到有人開始追查時,它早已不存在:它被建立、使用並過期,卻未留下任何公司能讀取的痕跡。正如 CrowdSec 自己所指出的,對於未採用企業方案的組織,GitHub 僅保留滾動式七天窗口內的 Git 活動。突破點來自 GitHub 支援團隊,他們追查了該權杖的完整生命週期,並提供了複製前後兩小時窗口內的 Git 活動。該公司正是藉此追查到一名已離職員工的帳號。同樣的追查也建立了與 TanStack 之間的關聯。

外洩的封存檔本身即附帶證據。這份 .github/.git/config 記錄了來源 URL,格式為 oauth2:gho_xxxxxxxxx@github.com,將該憑證識別為 GitHub OAuth 權杖,並符合 TeamPCP 已記錄的方法論。CrowdSec 表示,它檢查了開發人員機器是否有惡意套件,並在其自家儲存庫中未發現任何遭植入後門的 TanStack 版本——這項結果它形容為不具結論性,而非可證明無罪。

是誰做的,以及這種歸因有多確定。

CrowdSec 將該下載歸因於「BreachForum 的創辦人之一與成員 diencracked」,該成員的地址為 diencracked@cock.li,使用來自多倫多的 IP 運作,機器時區設為 UTC-4。該公司在同一句話中也為自身說法加上保留條件:「至少 Git 資料顯示是如此。」Dark Reading 於 9 月 22 日的報導也給出相同歸因,指向該 BreachForum 創辦人與 diencracked 這個帳號。

這起上游行動的紀錄比其背後的身分更完整。TanStack 的套件於 2026 年 5 月 11 日被植入後門,當時 42 個套件中共有 84 個惡意版本被發布;The Hacker News 將此入侵事件記錄為 CVE-2026-45321,並引用 TanStack 自身的公告來說明該竊取憑證的酬載。CrowdSec 的時間線指出,在 22 日,也就是與儲存庫副本同一天,TeamPCP——被 CrowdSec 追蹤為 UNC6780——宣稱對入侵屬於 Mistral AI 的儲存庫負責。

什麼是已經確立的,什麼不是

Dark navy HTML card headed 'Established, asserted, and simply absent', kicked 'crowdsec · what the record supports', subtitled 'The archive grades this record confidence A, disputed false, real harm true. That grade covers the event; it does not extend to every claim made about it.' Three columns. 'Established', green: about 170 private repositories copied on 22 May 2026 in a nine-minute window from GitHub's own Git activity records; the account belonged to a departed developer and was revoked 25 May, three days later; 83 user email addresses and the details of 51 potential investors from 2020 appeared in the published archive; no infrastructure or database access and no code altered, per CrowdSec's audit. 'Asserted, not proven', amber: that the laptop was infected through TanStack, since CrowdSec's dev machines came back clean and its repository scan was inconclusive; which poisoned package arrived and when, which CrowdSec says it did not establish; that the downloaders were a BreachForum founder and the member diencracked, offered as what the Git data shows. 'Missing from the record', grey: GitHub's own findings, since support traced the token but no GitHub statement appears in the report; any arrest, charge or court record tying a named person to the copy; any independent forensic examination of CrowdSec's systems. A highlighted band reads 'The strongest evidence in the case is a Git fetch log inside a two-hour window GitHub handed over on request. The weakest is an attribution hedged in the same sentence that makes it.' A footer cites CrowdSec on 18 September, The Hacker News on 19 September and Dark Reading on 22 September. The OrcaRouter logo sits in a white strip at the bottom right.

已確認:約 170 個私人儲存庫的複製,於 2026 年 5 月 22 日在九分鐘的時間窗口內發生,使用的是某位已離職開發人員仍然有效的 GitHub 帳號——這段經過是根據 GitHub 自身的 Git 活動紀錄重建而成,並非推斷。公司自身的說法亦確認:83 個使用者電子郵件地址與 51 位潛在投資人的詳細資料遭到曝光、5 月 25 日的撤銷、遭探測的 SNS token,以及「沒有任何程式碼遭到變更,且未觸及任何基礎設施或資料庫」的調查結果。

尚未確定:哪個遭投毒的套件送達了筆記型電腦,以及何時送達。CrowdSec 明確表示,這兩者它都未查明。該公司的儲存庫掃描結果不確定,而其開發人員機器檢查結果為乾淨,這與一台根據該公司自身說法已遭入侵的筆記型電腦顯得格格不入。這個缺口是被承認的,而非被補上。

未公開:GitHub 在調查中那一方的說法。CrowdSec 表示,GitHub 的支援團隊已證實 TanStack 為來源,但 The Hacker News 指出,該公司的報告並未包含 GitHub 本身的任何調查結果,而 GitHub 也尚未公布自身對該權杖生命週期的說明。

佐證:Dark Reading、The Hacker News 與 DevOps.com 都在一週內報導了這起事件,而且三者均以 CrowdSec 的報告與 TanStack 的公告為基礎,而非對 CrowdSec 系統進行獨立法證檢驗。Dark Reading 補充了外部實務工作者的評論,包括 Suzu Labs 的 Denis Calderone,他稱這次撤銷疏漏是「第一天就該做的基本功」。雲端安全聯盟(Cloud Security Alliance)一份日期為 9 月 20 日的研究筆記重述了此一事件順序,但該文件自身附有免責聲明,指出它是在 AI 協助下生成,且尚未經過 CSA 官方審查——在將其視為第二項獨立發現之前,值得留意。該檔案庫將此紀錄評為信心 A、有爭議為否、實際損害為是。

第一項陳述,以及更正內容

CrowdSec 於 9 月 17 日首度發表公開聲明表示:「沒有任何客戶資料、登入帳號/密碼、姓名、組織或其他任何內容外洩,CrowdSec 並不儲存個資或客戶日誌;影響範圍僅限於 CrowdSec 本身。」該公司同時提出一項技術假設:某個內部元件遭植入後門,用以竊取一把可讀取私有程式碼的 API 金鑰。

一天後更完整的報告以離職員工的說法取代了那項假設,並披露了 83 個地址和 51 名投資者。Hacker News 將此描述為先前的說法遭到更正。CrowdSec 自己的說法則較為狹窄:這 83 個地址來自資料科學監控清單,而非客戶紀錄;投資者詳細資料則可追溯至 2020 年。這兩種描述可以同時成立——這些地址不是客戶帳戶,但它們仍是發布於犯罪論壇的資料外洩中的個人資料。該公司表示將通知受影響的使用者和投資者,並向當局報告此次外洩。

之後有什麼改變?

在封存檔中發現的憑證與權杖已於 9 月 16 日夜間至 9 月 17 日期間完成輪換,其餘輪換作業則在隔日上午完成。

• 端點偵測與回應現已部署在會接觸 CrowdSec 程式碼庫或基礎設施之人的工作站與筆記型電腦上;公司指出該產品為 Aikido Security。Humeau 承認它本應更早就位,也承認一名前員工的機器不太可能曾執行它。

• 洩漏事件中曝光的共識演算法閾值正在調整,並對整個封鎖清單網路中的統計偏差加強監控。

• 該公司已設定目標,要將同樣的回應流程——盤點、輪換、鑑識與揭露——從 48 小時壓縮至 24 小時以內。

• 依公司的說法,受影響的使用者與投資人正被直接聯繫,且外洩事件正被通報給主管機關。

為什麼這會被收錄在 AI 事件檔案庫中

這裡的 AI 參與屬於基礎設施層面,值得精確說明這意味著什麼。CrowdSec 的敘述中,沒有任何內容描述 AI 系統在入侵期間做出決策;行為者是一個人或一群人,使用了竊取的權杖。這起事件之所以成為 AI 產業事件,在於其影響範圍。TanStack 的函式庫建構了大量現代軟體的介面,而收集該權杖的蠕蟲被設計成一次竊取雲端、SSH 與模型供應商的憑證;從 CrowdSec 複製出的資料也包含資料科學腳本與模型,而不只是應用程式碼。

同一波活動也直接波及 AI 公司。CrowdSec 的時間軸記錄顯示,TeamPCP 於 5 月 22 日宣稱取得 Mistral AI 的儲存庫;《The Hacker News》報導,兩台 OpenAI 員工裝置受到影響,且有限數量的內部程式碼儲存庫遭到未經授權存取。該存檔將 CrowdSec 案例記錄為 5 月 TanStack 入侵事件的第二個下游受害者,排在那些 OpenAI 員工裝置之後。

副本與其被發現之間的距離,才是應該被傳遞出去的部分。這些儲存庫是在 5 月 22 日被取走的;CrowdSec 直到 9 月 16 日才得知這起外洩,當時 Fuites Info 團隊就 pwnforum 貼文聯繫了該公司——已是 117 天後,而且並非由自家監控發現。讓這般延遲得以發生的機制並不罕見:一個在用途結束後仍多存在了三天的帳號、一個在公司可讀取的日誌中未留下任何痕跡的權杖,以及沒有端點偵測的開發者筆電。CrowdSec 是一家販售威脅偵測的公司,而這三項它全都有。