React Native Bottom Tabsに重大なRCE脆弱性(CVE-2025-54594)

セキュリティニュース

投稿日時: 更新日時:

React Native Bottom Tabsに重大なRCE脆弱性(CVE-2025-54594)

2025年8月、React Native Bottom TabsプロジェクトのGitHub Actionsワークフローにおいて、リモートコード実行(RCE)が可能となる重大な脆弱性(CVE-2025-54594)が発見されました。この脆弱性により、攻撃者はGitHub上で機密トークンを窃取し、不正なコードを実行する可能性があるとして、開発者コミュニティに大きな警鐘を鳴らしています。

脆弱性の概要

問題の原因は、.github/workflows/release-canary.ymlファイルに記述されたGitHub Actionsのワークフロー設定の誤りにあります。このワークフローでは、pull_request_targetというトリガーが使用されており、外部フォークからのPR(プルリクエスト)でも特権コンテキストでコードが実行されるという、CI/CD運用上のよく知られたリスクが見落とされていました。

この設定ミスにより、攻撃者は次のような手順で悪用可能でした:

  1. 自身のフォークから、悪意あるpackage.json(preinstallスクリプトを含む)を含んだPRを作成

  2. !canaryのような特定のコメントを投稿し、対象のワークフローをトリガー。

  3. GitHubホスト上のランナーで任意コードを実行

  4. GITHUB_TOKEN や NPM_TOKENといった機密情報の流出が発生。

これらのトークンを入手した攻撃者は、以下の攻撃が可能になります:

  • プロジェクトへの不正なコードのPush

  • 悪意あるNPMパッケージの公開

  • ライブラリを利用する他プロジェクトへの波及的な被害

対応と被害状況

プロジェクトのメンテナはこの脆弱性を受けて即座に対応を行い、当該ワークフローファイルを削除。その結果、現在はこの脆弱性の影響を受けることはありません。幸いにも、悪意あるパッケージが実際に公開された形跡はないと報告されています。

また、GitHub上で公開されたセキュリティアドバイザリ(GHSA-588g-38p4-gr6x)では、以下のような予防措置が強く推奨されています:

  • pull_request_targetissue_commentを使用するワークフローの見直し、もしくは削除。

  • 書き込み権限のあるトークンを用いるワークフローでは、信頼されていないコードをcheckoutしない

  • 万一の流出に備え、GITHUB_TOKEN や NPM_TOKEN の回転(ローテーション)を実施。

オープンソースCI/CDの盲点

今回の事件は、特にオープンソースプロジェクトにおけるCI/CDのセキュリティ設計の難しさを改めて浮き彫りにしました。

pull_request_targetイベントは便利ではありますが、外部コントリビューターからのPRを特権コンテキストで処理する際のリスクを常に伴います。ワークフロー設計時には、実行トリガーと権限の関係を明確に理解し、最小権限の原則に従う必要があります。