GitHub Advisory Databaseに、Argo CDのAppProjectによる制限を回避できる脆弱性「CVE-2026-77459」が掲載されています。アプリケーション削除時の処理を通じ、通常の同期では許可されないリソースを作成できる恐れがあり、修正版への更新と権限の確認が必要です。公表日は、今回の資料では確認できません。
同期では拒否する操作が、削除時には通る恐れ
問題があるのは、削除の前後に処理を実行するPreDeleteとPostDeleteフックです。これらには、プロジェクト単位の制限を担うAppProjectの検査が適用されていませんでした。一方、PreSync、Sync、PostSync、SyncFailフックには検査が適用されます。
悪用には、Applicationの同期元Gitリポジトリへの書き込み権限が必要です。勧告によると、この権限を持つ利用者は、通常の同期なら拒否される名前空間やリソースの種類を指定した削除フックを仕込めます。名前空間は、クラスタ内でリソースを区分する単位です。
フックが検出されても、Applicationは同期済みを示すSynced状態を保ちます。その後、Applicationの削除時にフックが作成されます。このため、Synced表示だけでは、削除時の処理もプロジェクトの制限内に収まるとは判断できません。
削除フックの作成には、application-controllerの認証情報が使われます。影響範囲はこの認証情報のアクセス権限に制約されますが、勧告では、通常構成でクラスタ全体の権限を結び付けるClusterRoleBindingなどを作成できるとしています。プロジェクトで許可されていない名前空間にも作成可能です。また、Jobなどのフックが追加作成したオブジェクトは、Argo CDが削除しないとされています。
修正版を公開、サポート終了系列には修正予定なし
影響対象はv2.10.0以降で、現在サポート中の全リリース系列を含みます。PostDeleteはv2.10.0で導入された当初から検査がなく、v3.3.0で加わったPreDeleteも同じ未検査の処理経路を使っています。
修正版はv3.5.4、v3.4.10、v3.3.15と、リリース候補版のv3.6.0-rc2です。修正後は、削除フックの作成前にも、同期時と同じ接続先・リソースの検査が行われます。
2.xと3.0〜3.2はサポート終了済みで、修正予定はありません。勧告は、修正済みの3.3以降への更新を推奨しています。削除フックを使い続けながら、設定だけでプロジェクトの検査を適用する方法はありません。
日本での提供は発表には書かれていません。今回の勧告では、影響対象と修正版がバージョンで示されています。
影響する会社・しない会社
- 影響する: v2.10.0以降の修正前のArgo CDを使う会社です。特に、制限付きAppProjectの同期元Gitに複数の利用者が書き込める場合は、その権限範囲を確認する必要があります。
- 影響する: v2.10.0以降の2.x、または3.0〜3.2を使い続けている会社です。同じ系列で修正を待つのではなく、修正済み3.3以降への更新計画が必要です。
- 影響しない: v2.9.22以前を使う会社は、この脆弱性の影響対象外です。ただし、これは当該脆弱性についての区分であり、古い版の利用を勧めるものではありません。
- 影響しない: 上記の修正版を適用済みの環境は、この検査漏れが修正されています。
情シスが今日やること
- 本日、Argo CDの運用担当者や委託先に、稼働中のバージョンと管理対象クラスタを確認してください。修正版を適用済みか、更新が必要かを環境ごとに記録します。
- Gitリポジトリの権限設定で、制限付きAppProjectの同期元へ書き込める利用者を確認します。更新までの回避策として、信頼できる利用者に絞る方針を開発責任者と決めてください。
- Argo CD側の権限設定でApplicationを削除できる利用者を確認し、必要な担当者に限定します。併せて、同期元の定義にPreDeleteやPostDeleteがあるかを運用担当者と点検してください。
- Kubernetes側でapplication-controllerに与えたアクセス権限を確認します。不要な権限を絞れるかをクラスタ管理者と検討し、更新までの対応として実施可否を判断してください。
- 本日中に更新担当者と実施予定日を決めます。サポート終了系列では修正済み3.3以降への移行を計画し、開発責任者と変更承認者に、削除フックの検査が変わることも伝えてください。