Argo CD ServerSideDiff Flaw Allows Attackers to Extract Kubernetes Secrets
2026/05/06 gbhackers — Argo CD に存在する深刻な脆弱性を、最小権限を持つ攻撃者が悪用し、etcd クラスタからの Kubernetes Secrets の抽出を可能にする。この脆弱性 CVE-2026-42880 (CVSS 9.6) は、Argo CD プラットフォームにおける認可の欠如とデータマスキングの不備を露呈するものだ。

この問題は、Server-Side Apply の dry-run メカニズムが、特定のアプリケーション設定に対して不適切に連携する環境に影響を及ぼす。
脆弱性 CVE-2026-42880 の深刻度が極めて高いため、サイバー・セキュリティ担当者にとって必要なことは、不正アクセスから機密データが完全に保護されることを、CD (continuous delivery) パイプラインの確認により保証することである。
この脆弱性は、セキュリティ研究者 Hoang-Prod により報告され、GitHub のセキュリティ・アドバイザリとして公開された。
Argo CD ServerSideDiff の欠陥
この脆弱性の根本的な原因は、Argo CD の ServerSideDiff エンドポイントにあり、データマスキング処理が一貫して適用されないという問題を引き起こす。
GetManifests や PatchResource などのエンドポイントは、特定の関数を用いてシークレット・データを隠蔽するが、脆弱な ServerSideDiff の gRPC および REST エンドポイントは、レスポンスとしてマスクされていない生の状態を構築する。
メンテナーである alexmt の技術的な分析によると、通常の Argo CD は removeWebhookMutation という防御レイヤを用いて Server-Side Apply の dry-run レスポンスから不正フィールドを除去する。
このメカニズムは、クライアント側でマスクされたライブ状態と出力をマージすることで実データの漏洩を防止する。しかし、compare-options アノテーションにおいて、mutation webhooks オプションが有効化されている場合には、この重要な防御がバイパスされてしまう。
このコンフィグが有効化されているケースにおいて、Kubernetes の生の dry-run レスポンスが API レスポンスとして返され、etcd の内部データが露出する。
この脆弱性の悪用において、必要とされる権限は非常に低く、組織のセキュリティに対する重大な脅威となり得る。基本的な読み取り権限のみを持つ認証済みユーザーであっても、mutation webhook オプションが有効であれば本脆弱性を利用可能である。
この脆弱性の悪用に成功した攻撃者は、Kubernetes Secret の実データを抽出できる。そこに含まれるものには、サービス・アカウント・トークン/データベース認証情報/API キー/TLS 証明書などがある。
この危険な抽出処理を自動化する、Python ベースの PoC (proof-of-concept) も公開されている。このスクリプトは、管理対象リソースの取得と、シークレットの特定を実行した上で、grpc-web プロトコルを利用して ServerSideDiff エンドポイントから未マスク状態を引き出す。
プロトコル処理およびペイロード・エンコードが自動化されているため、中程度のスキルを持つ攻撃者であっても、迅速に機密データを収集できる。その結果、単純なネットワーク攻撃ベクターにより、Kubernetes クラスタ全体の機密性/完全性が容易に侵害される可能性がある。
開発/運用チームにとって必要なことは、最新のセキュリティ・パッチを速やかに適用し、この情報漏洩を防ぐことである。
この脆弱性の影響が及ぶ範囲は、Argo CD のバージョン 3.2.0〜3.3.8 である。すでに、オープンソース・プロジェクトのメンテナーは、バージョン 3.2.11/3.3.9 をリリースし、この問題に対処している。
これらの安全なバージョンへアップグレードすることが、Webhook 設定に関係なく、すべてのアプリケーション・コンフィグでデータマスキングを確実に適用するための、最も有効な手段である。
訳者後書:Kubernetes 上でのアプリ展開を自動化するツール Argo CD に見つかった、極めて深刻な脆弱性を解説する記事です。この問題の原因は、サーバ側で設定の差分を計算する ServerSideDiff という機能において、本来は隠すべきパスワードやトークンなどの機密情報をマスクしない状態でレスポンスしてしまう不備にあります。その結果、 Kubernetes の管理用データが保管されている etcd から、生のシークレット・データが引き出されてしまいます。ご利用のチームは、ご注意ください。よろしければ、Argo CD での検索結果も、ご参照ください。
You must be logged in to post a comment.