注目★★★★★Lobsters
git の --end-of-options フラグ、パッケージマネージャの引数インジェクション対策に必須
30秒で把握
- 1git --end-of-options はダッシュ始まりの引数をオプション解析から除外し、引数インジェクション攻撃を防ぐ
- 2パッケージマネージャ 17 個が git をフォーク実行するが CVE-2025-68119 まで Go のみ採用、修正は全社が実施
- 3git 2.43.1 以上要件化でサポート対象 OS の最小バージョンが上がり、採用には既存システムとの互換性検討が必須
要約
git の --end-of-options フラグは、オプション解析を明示的に終了して引数インジェクション攻撃を防ぐ仕組みだ。git は従来 -- をリビジョンとパス指定の分離に用いており、ダッシュで始まるリビジョンをオプションとして解析する脆弱性が発生していた。パッケージマネージャ 17 個中 16 個が git をフォークして依存関係のダウンロードに使うが、CVE-2025-68119 の修正まで Go だけが --end-of-options を採用していなかった。Ubuntu 20.04 は git 2.25.1 だが --end-of-options の全サブコマンド対応には 2.43.1 以上が必要で、既存システムの最小バージョン要件が上がると利用者を失うトレードオフを各プロジェクトが抱えている。
あなたへの影響
自社パッケージマネージャやビルドシステムで git をサブプロセス実行する場合、信頼できない URL/リビジョンを引数に渡す前に --end-of-options で保護する必要がある。
推奨:ただし git 2.43.1 以上の要件化はサポート対象ディストリビューションの再検討につながるため、移行計画が立てにくく、当面は leading-dash チェック等の補助手段も併用する選択肢を検討すべき。