Zapierのエクスプロイトチェーンが、既知のアンチパターンがいかにして重大なリスクを生み出すかを示す

Token Securityの研究者が公開した5段階のエクスプロイトチェーンは、無料のZapierアカウントを、ZapierのパブリックデベロッパーSDKパッケージ、および認証済みのzapier.comセッションすべてに読み込まれる内部パッケージへの書き込みアクセスに変えてしまうものでした。チェーンの各リンクは既知のアンチパターンでした。5つのシステムをまたいだその組み合わせこそが、今回の発見でした。

Image

Zapierは2026年2月12日の報告提出から4日以内にトリアージを行い、漏洩したNPMトークンを失効させ、2月16日までに根本的なAWSロールを強化しました。修正は3月5日に確認されました。研究者たちはプログラムの最高報奨金である3,000ドルを受け取り、Zapierは次回のプログラムレビューで上限を見直すことを約束しました。

5つのシステムを貫く経路

このチェーンはCode by Zapier内から始まりました。これはユーザーがプラットフォーム上でPythonまたはJavaScriptを実行できる機能です。ランタイムはus-east-1のAWS Lambdaコンテナ内で実行されます。os.system('env')を呼び出すと、Lambda環境が返されました。

Lambdaハンドラーは、ユーザーコードをexec()に渡す前に環境からAWS認証情報を除去します。この除去にはdel os.environ[k]が使用されています。この呼び出しはPython辞書の参照を削除し、libcのunsetenvを呼び出します。しかし、プロセスのヒープ上のバイト列をゼロ化するわけではありません。研究者たちは/proc/self/memを読み取り、読み取り可能なメモリ領域に対して4つの正規表現パターンを実行し、Lambdaに割り当てられたロールのライブなSTSセッショントークンを取得しました。

そのロールはallow_nothing_roleという名前でした。列挙の結果、ecr:DescribeRepositoriesecr:ListImagesecr:BatchGetImageecr:GetDownloadUrlForLayerが許可されていることが判明しました。これら4つの権限があれば、Dockerレジストリの認証トークンを一切要求することなく、AWS APIを通じてコンテナイメージを取得するには十分です。研究者たちは1,111の本番リポジトリを列挙し、レイヤー取得APIを使用してイメージを取得しました。

あるイメージの中で、NPMパブリッシュトークンがコンテナの設定履歴に漏洩していました。そのトークンはDockerfileのARGを通じてビルドに渡されており、イメージのhistory[]フィールドにシリアライズされていました。NPM APIのメタデータは、そのトークンがaction: writename: nullbypass_2fa: trueを持つことを示していました。この組み合わせにより、zapier-platform-corezapier-platform-clizapier-design-systemを含む、関連アカウントが公開できるすべてのパッケージへのパブリッシュ権限が付与されていました。

zapier-design-systemパッケージは、zapier.comのすべての認証済みセッションに読み込まれます。研究者たちはブラウザの開発者ツールで読み込みパスを確認し、そこで調査を止めました。このパッケージの汚染されたバージョンは、次回リリース時に認証済みオリジン上で攻撃者が制御するJavaScriptを実行することになります。そのアクセス権を持つ攻撃者は、Zapier内でユーザーとして行動し、Zap・Tables・MCPサーバーを作成したり、プラットフォームを通じてユーザーの既存の連携を操作したりできます。連携サービスのOAuthトークンやAPIキーはサーバーサイドに保持されているため、ブラウザには公開されません。

システム間のすき間

Token SecurityでセキュリティリサーチチームリーダーをつとめるYair Baliltiは、Yair Baliltiが Help Net Securityに対し、この組み合わせこそがチェーンを機能させた要因だと語りました。「チェーンの各リンクは既知のパターンでした。脆弱性はその組み合わせにあり、組み合わせはまさにチーム間の隙間に落ちるものです。Lambdaサンドボックス、ECRとIAM、GitLab CIトークン、NPMパブリッシング、ブラウザ——それぞれ異なるグループが担当しており、各グループは自分たちの部分だけを見て、問題ないと合理的に結論づけることができます。リスクはすべてを横断して経路を追ったときにのみ現れるのです。」

露出期間とフォレンジクス

研究者が取得したNPMトークンは2025年11月に初めて発行され、2026年2月16日に失効しました。Zapierは実環境での悪用の証拠を報告しておらず、研究者たちも同様です。彼らのアクセスはallow_nothing_roleが許可する範囲、すなわちECRに対する列挙と読み取りに限定されていました。Zapierの監査ログにはアクセスしていません。

Baliltiは、その期間中に他の誰かがそのロールやトークンを使用したかどうかという問いに答えられるのは、Zapier自身のフォレンジックレビューのみだと述べました。「11月から私たちが発見するまでの間に、他の誰かがそのロールやトークンを使用したかどうかについては言及できません。それはZapier自身が自社のログから答えられるフォレンジックの問題です。確認できるのは、私たちが発見した時点でNPMトークンがまだ有効かつアクティブであったということです。」

Zapierは、研究活動そのもの以外に、実環境でこのチェーンが悪用された証拠はないことを確認しています。このチェーンは顧客データ、顧客の認証情報、または顧客のワークフローにはアクセスしておらず、協調的な開示のもとで完全に修正されました。顧客側での対応は不要です。

翻訳元: https://www.helpnetsecurity.com/2026/05/28/token-security-zapier-exploit-chain/

ソース: helpnetsecurity.com