本文の内容は、2025年7月7日にStefano Chierici が投稿したブログ(https://sysdig.com/blog/cve-2025-53104-command-injection-via-github-actions-workflow-in-gluestack-ui)を元に日本語に翻訳・再構成した内容となっております。
Sysdig脅威リサーチチーム(TRT)は、GitHubリポジトリgluestack/gluestack-uiに重大な脆弱性(CVE-2025-53104 )を発見しました。この脆弱性は、最近、侵害されたNPMパッケージを巻き込んだサプライチェーン攻撃に利用されました。このCVEには、 CVSS v3.1のベーススコア9.1が割り当てられています。
この新たな脆弱性を悪用することで、攻撃者はGitHubディスカッションのタイトルまたは本文に悪意のあるコードを作成し、GitHub Actions(GHA)ランナー上で任意のコマンドを実行することができます。これらの悪意のあるアクションは、機密情報の流出、リポジトリコンテンツへの不正な変更、関連するNPMパッケージの侵害につながる可能性があります。
Sysdig TRT による最初の発見と、この脆弱性が他の CI/CD セキュリティ製品にも影響を及ぼす可能性がある点をより深く理解するために、チームの調査結果を見ていきましょう。
gluestack-ui の脆弱性を解明する
Gluestackは、ReactおよびReact Nativeアプリケーションを構築するための、最新のクロスプラットフォームUIフレームワークです。ネイティブ環境向けに設計されたユーティリティファーストのスタイルシステムを提供します。コアコンポーネントライブラリであるgluestack-uiは、iOS、Android、Webでシームレスに動作する、入力やモーダルなどのカスタマイズおよびテーマ設定可能なUIコンポーネントを提供します。
Sysdig TRTは、このリポジトリで侵害された複数のNPMパッケージに関連する6月上旬のサプライチェーンインシデントを分析する中で、リポジトリを調査し、考えられる根本原因を特定しました。以前報告されていた侵害の原因は、開発者の1人の個人アクセストークンが盗まれたことでした。しかし、GHAワークフローのdiscussion-to-slack.ymlに新たな可能性を発見しました。
なお、新たに特定された脆弱性(CVE-2025-53104)は、最近のインシデントとは無関係です。このインシデントでは、攻撃者による最初のアクセスは盗難されたメンテナーキーに関連していました。しかし、Sysdig TRTによって発見されたこの脆弱性は、同様の結果を引き起こす可能性があります。
on:Add commentMore actions
discussion:
types: [created]
jobs:
notify-slack:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Get discussion details
id: discussion-details
run: |
echo "title=${{ github.event.discussion.title }}" >> $GITHUB_OUTPUT
echo "body=${{ github.event.discussion.body }}" >> $GITHUB_OUTPUT
echo "url=${{ github.event.discussion.html_url }}" >> $GITHUB_OUTPUT
echo "author=${{ github.event.discussion.user.login }}" >> $GITHUB_OUTPUT
echo "category=${{ github.event.discussion.category.name }}" >> $GITHUB_OUTPUT
...
上記のワークフローは、GitHubディスカッションが作成されるたびに実行されます。その後、情報は に追加されGITHUB_OUTPUT
、Slack経由でメッセージを送信するために使用されます。このワークフローは、タイトルや本文のディスカッションなど、ユーザーが制御する入力を安全でない方法で処理するため、コードインジェクションに対して特有の脆弱性があります。
攻撃者は、新たな GitHub Discussion の本文またはタイトルに $(curl …) のような悪意のあるペイロードを送信することで、この脆弱性を悪用することができます。この操作によってワークフローがトリガーされ、GitHub ランナーインスタンス上で任意のコードが実行されます。
その結果、攻撃者は実行時に環境内で利用可能な GITHUB_TOKEN やその他の機密なリポジトリシークレットを外部に送信することが可能になります。
以下のスクリーンショットに示されているように、漏洩した GITHUB_TOKEN には昇格された権限が付与されており、攻撃者はリポジトリの内容、リリース、ワークフローに対して不正な変更を加えることができました。

既存のリリースを操作したり、新しいリリースを作成したりすると、侵害された NPM パッケージが所有者のレジストリに公開され、深刻なサプライ チェーン攻撃が発生する可能性があります。
影響と緩和
前述の通り、CVE-2025-53104にはCVSS v3.1の基本スコア9.1が割り当てられています。この脆弱性は、リポジトリの整合性と機密性に深刻な影響を及ぼします。
- 整合性:この脆弱性を悪用することで、攻撃者はリポジトリのコンテンツを変更し、新しいリリースやタグを作成できます。これにより、NPMリポジトリにアップロードされた新規パッケージと既存パッケージの両方の整合性にも影響が及ぶことになります。
- 機密性:攻撃者は、リポジトリの GitHub トークンやリポジトリ内のその他のシークレットを盗み出すことができます。
CVE-2025-53104 は、2025 年 6 月 13 日のパッチのリリースにより軽減され、影響を受ける GitHub Actions ワークフローが修正されました。
GitHub Actionsの入力を安全に処理する方法
前述のNPMサプライチェーン攻撃のようなインシデントを回避するには、入力を安全に管理することが不可欠です。GitHub Actionsでは、環境変数を使用してユーザー制御の入力を処理できます。ワークフローステップで保持したい各ディスカッションパートに環境変数を関連付けることができます。
env:
DISCUSSION_TITLE: ${{ github.event.discussion.title }}
DISCUSSION_BODY: ${{ github.event.discussion.body }}
DISCUSSION_URL: ${{ github.event.discussion.html_url }}
DISCUSSION_AUTHOR: ${{ github.event.discussion.user.login }}
DISCUSSION_CATEGORY: ${{ github.event.discussion.category.name }}
タイトルや本文など、ユーザーが制御する入力をenvに渡すことで、それらがコマンドに直接挿入されることを防ぎ、コマンドインジェクションを完全に回避できます。さらに、すべての変数は引用符で囲まれ、ログや出力で安全に使用されます。
まとめ
サプライチェーン攻撃とそれに関連する脅威は、現代のセキュリティチームと開発者にとって最優先事項であり、攻撃者にとって急速に好まれる戦術になりつつあります。CVE-2025-53104を悪用することで、攻撃者は任意のコマンドを挿入し、NPMパッケージ内で深刻なサプライチェーン侵害を引き起こす可能性があります。このようなリスクを防ぐには、すべてのユーザー入力を安全に処理し、厳格な入力検証プラクティスに従うことが不可欠です。
開示タイムライン
2025年6月11日 – Sysdig TRTがgluestackのメンテナーにセキュリティ問題を報告
2025年6月13日 – gluestackのメンテナーが報告された問題を認めた
2025年6月13日 – gluestackはセキュリティ問題を修正するパッチをリリースしました。
2025年6月30日 – CVE-2025-53104でGHSA経由で公開