概要
${{ }} テンプレート式はシェル起動前に展開されるため、攻撃者制御のコンテキスト(PR タイトル・ブランチ名・Issue 本文)をそのまま run に埋め込むとコマンドインジェクション成立。
対策
envで環境変数に渡して${VAR}で参照- actionlint・zizmor で自動検出
- サードパーティ Actions はコミットハッシュでピン留め
ソース記事
- GitHub Actions スクリプトインジェクション完全ガイド — 2026-03
- 信頼できない入力の扱い — 2026-03