Argo CD の深刻な脆弱性 CVE-2024-31989 が FIX:Kubernetes クラスタの乗っ取りにいたる?

CVE-2024-31989: Critical Argo CD Flaw Exposes Kubernetes Clusters to Takeover

2024/05/22 SecurityOnline — Kubernetes 用の GitOps Continuous Delivery ツールとして人気の Argo CD だが、Kubernetes クラスタ制御の掌握を攻撃者に許す可能性のある、深刻なセキュリティ脆弱性 CVE-2024-31989 (CVSS:9.1) を公開した。この欠陥は、セキュリティ対策が不十分な Redis キャッシュの使用に起因しており、機密データへの不正なアクセス/操作の可能性が生じるという。


この脆弱性は、パスワードで保護されていない、Redis データベース・サーバのデフォルト設定に起因する。この保護の欠如により、Redis サーバにネットワーク経由でアクセスできる攻撃者は、Read/Write の権限を得ることができる。さらに驚くべきことに、攻撃者は “mfst” (manifest) キーの変更も可能となり、Argo CD の昇格した特権を悪用して、クラスタ内で任意のデプロイメントを実行できる。

具体的に言うと、manifest JSON 内の “cacheEntryHash” を更新することで、攻撃者は新たなマニフェスト値と一致する、新たな FNV64a ハッシュを生成できる。Redis のキャッシュは署名/検証されていないため、侵害を検出できないリポジトリ・サーバは変更された “mfst” キーを読み取り、悪意のデプロイメントの更新プロセスを開始する。その結果として、クラスタが完全に乗っ取られる可能性が生じるという。

さらに攻撃者は、”app|resources-tree” キーを編集することで、アプリ・プレビューのライブ・マニフェスト・セクションに、任意の Kubernetes リソースをロードするよう、Argo CD サーバに促すこともできる。それにより、さらに深刻な情報漏えいの可能性も生じる。

Kubernetes クラスタ内における、Argo CD のハイ・レベル・パーミッションを考慮すると、この脆弱性の潜在的な影響は深刻である。攻撃者に悪用された場合には、以下の可能性が生じる:

  • 特権の昇格: 攻撃者は、クラスタ・コントローラのレベルまで権限を昇格させ、クラスタを完全に制御できるようになる。
  • サービス拒否: 攻撃者は、Argo CD に不正なデプロイを実行させることで、サービスを中断させる可能性を手にする。
  • 情報漏えい: ライブ・マニフェスト・セクションを操作して、不正な Kubernetes リソースをロードすることで、機密情報が漏洩する可能性が生じる。

Redis インスタンスに対して厳格なアクセス制御を行っていないケースにおいて、脆弱性 CVE-2024-31989 の影響は広範囲に及ぶため、Argo CD をデフォルト設定に、または、誤った設定にしている組織にとっては、重大な懸念事項となり得る。

この脆弱性は、Argo CD の広範なバージョンに影響するため、ユーザーにとって必要なことは、早急に対策を講じることである。すでに Argo CDプロジェクトは、Redis キャッシュに対して厳格なセキュリティ制御を実施することで、この問題に対処したパッチ・バージョン 2.11.1/2.10.10/2.9.15/2.8.19 をリリースしている。

Argo CD を使用している組織に強く推奨されるのは、遅滞なくパッチを適用したバージョンへとアップグレードすることだ。さらに、パスワード保護を有効化し、静止時のデータを暗号化し、ネットワーク・アクセスを許可されたユーザーだけに制限することで、Redis キャッシュのセキュリティを見直し、強化することも不可欠である。