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運用上のよく知られたリスクが見落とされていました。
この設定ミスにより、攻撃者は次のような手順で悪用可能でした:
-
自身のフォークから、悪意ある
package.json(preinstallスクリプトを含む)を含んだPRを作成。 -
!canaryのような特定のコメントを投稿し、対象のワークフローをトリガー。 -
GitHubホスト上のランナーで任意コードを実行。
-
GITHUB_TOKEN や NPM_TOKENといった機密情報の流出が発生。
これらのトークンを入手した攻撃者は、以下の攻撃が可能になります:
-
プロジェクトへの不正なコードのPush
-
悪意あるNPMパッケージの公開
-
ライブラリを利用する他プロジェクトへの波及的な被害
対応と被害状況
プロジェクトのメンテナはこの脆弱性を受けて即座に対応を行い、当該ワークフローファイルを削除。その結果、現在はこの脆弱性の影響を受けることはありません。幸いにも、悪意あるパッケージが実際に公開された形跡はないと報告されています。
また、GitHub上で公開されたセキュリティアドバイザリ(GHSA-588g-38p4-gr6x)では、以下のような予防措置が強く推奨されています:
-
pull_request_targetやissue_commentを使用するワークフローの見直し、もしくは削除。 -
書き込み権限のあるトークンを用いるワークフローでは、信頼されていないコードをcheckoutしない。
-
万一の流出に備え、GITHUB_TOKEN や NPM_TOKEN の回転(ローテーション)を実施。
オープンソースCI/CDの盲点
今回の事件は、特にオープンソースプロジェクトにおけるCI/CDのセキュリティ設計の難しさを改めて浮き彫りにしました。
pull_request_targetイベントは便利ではありますが、外部コントリビューターからのPRを特権コンテキストで処理する際のリスクを常に伴います。ワークフロー設計時には、実行トリガーと権限の関係を明確に理解し、最小権限の原則に従う必要があります。








