← 事故DB

postman-shai-hulud-2025 · 公表 2025-11-24

Postman:依存パッケージ経由でCIの公開用トークンを悪用

Postmanは、適切なlockfileのないCIが感染済みの依存パッケージを取り込み、npm公開用トークンを悪用されたと公表しました。17パッケージの改ざんを公表し、本番アプリと顧客データは影響を受けなかったと説明しています。

供給網・CI認証情報設定・公開範囲

確認範囲: 侵害を確認

侵入経路と確認できたこと

  • 公表で確認

    GitHub Actionsのビルドが感染したAsyncAPIパッケージを取得しました。ビルドの公開用トークンと、17パッケージで未設定だったトークン公開禁止・二要素認証の条件が悪用されました。

    [s1]How did it happen?
  • 公表で確認

    17の公開npmパッケージに感染版が配布されました。Postmanは環境分離により本番システムと顧客データへの到達はなかったと説明しています。

    [s1]What happened?

時系列

  1. この事案を公表。 [s1] [s2]

公表された対応

  • 公表で確認

    悪用されたアカウントの全トークンを失効させ、感染版を削除しました。公開権限の制限、OIDCのTrusted Publishers、lockfileの点検を実施したと公表しました。

    [s1]How did it happen? / What we have already done

原因・対策の仮説

以下は編集者の仮説です。事故の確定原因や、公表された対応とは分けています。支持・反証の観測は、これから調べる項目であり、取得済みの証拠ではありません。

  1. 対策仮説 1 未検証

    レビュー済みのlockfileと固定インストールで、CIが意図せず新しい感染版を取得する機会を減らせる可能性があります。

    一次資料から確認した出発点

    同社は、適切なlockfileを欠くビルドが感染版を取り込んだと説明しています。

    [s1]How did it happen?

    成立条件・検証の観測・限界を読む
    成立に必要な条件
    • 承認済みの依存版が感染しておらず、lockfileの変更もレビューされる場合。
    仮説を支持する観測
    • CI設定と自分の隔離環境のビルド記録で固定インストールを確認し、manifestとの不一致が黙って解決されず失敗する。
    仮説を見直す観測
    • lockfileが無視・再生成される、または承認されたlockfile自体に感染版が含まれる。
    判断の限界
    • lockfileはコードの安全性を証明しません。依存更新の検証や公開権限の制限も必要です。

    関連する点検

  2. 対策仮説 2 未検証

    依存コードを実行するCIから常設の公開用トークンを外し、公開ジョブの権限を限定すると、感染後の再配布を抑えられる可能性があります。

    一次資料から確認した出発点

    感染したビルドが公開用トークンを悪用しました。同社はトークン失効とOIDCへの移行を公表しています。

    [s1]How did it happen? / What we have already done

    成立条件・検証の観測・限界を読む
    成立に必要な条件
    • ビルドと公開を分離でき、OIDCの発行条件を特定の承認済みワークフローに限定できる場合。
    仮説を支持する観測
    • workflowの権限と公開元の設定で常設トークンがなく、承認されたジョブ以外に公開権限が発行されないと確認できる。
    仮説を見直す観測
    • 依存コードを実行する同じジョブで公開権限を使える、または旧トークン・別workflowでも公開できる。
    判断の限界
    • OIDCへの置換だけでは不十分です。許可された公開ジョブやその成果物が改ざんされれば再配布のリスクが残ります。

    関連する点検

この事例のAI向け資料を読む ↗

当時の回避可能性を考える材料

運用・設定を点検

lockfileの存在と固定インストール、外部コードを実行するジョブの公開権限、長期トークンの必要性を点検します。lockfileだけで依存コードの安全性を保証はできません。

編集上の評価。責任や過失の認定ではありません。 [s1]

未解明の点・AIの関与

AIの関与不明

参照した情報では、攻撃者によるAI利用は確認できません。AI不使用を意味しません。

Postmanの報告対象は同社のパッケージです。Shai-Hulud全体の被害件数と合算しません。時刻は原文のPT表記で、初回侵入のUTC日付はここでは確定していません。

情報元

  1. [s1] Postman · 一次情報

    Root Cause Analysis: Shai-Hulud 2.0 ↗

    公開 2025-12-04 · 確認 2026-10-10

  2. [s2] Postman · 一次情報

    Shai-Hulud 2.0 npm supply-chain attack ↗

    公開 2025-11-24 · 確認 2026-10-10