Improper access control allows admin privilege escalation(Argo CD)
#翻訳
https://github.com/argoproj/argo-cd/security/advisories/GHSA-2f5v-8r3f-8pww
Impact
Impacts for versions starting with v1.0.0
v1.0.0以降のパッチが適用されていないバージョンのArgo CDはすべて、不適切なアクセス制御のバグに対して脆弱であり、悪意のあるユーザーが特権を管理者レベルにエスカレートする可能性があります。
次のエクスプロイトを実行するには、許可されたArgo CDユーザーが、アプリケーションのソースgitまたはHelmリポジトリへのプッシュアクセスを持っているか、アプリケーションへのsyncまたはoverrideアクセスを持っている必要があります。ユーザーがそのアクセス権を取得すると、他のRBAC特権に応じて、さまざまな悪用レベルが可能になります。
1. そのユーザーがアプリケーションへのupdateアクセス権を持っている場合、ユーザーはアプリケーションの宛先クラスター上の任意のリソースを変更できます。宛先クラスターがArgo CDをホストしているクラスターと同じであるか、同じにすることができる場合、ユーザーはArgo CDのアクセス許可を管理者レベルにエスカレートできます。
2. ユーザーがアプリケーションへのdeleteアクセス権を持っている場合、ユーザーはアプリケーションの宛先クラスター上の任意のリソースを削除できます。 (このエクスプロイトはv0.8.0以降で可能です。)
3. ユーザーがアプリケーションへのgetアクセス権を持っている場合、ユーザーはアプリケーションの宛先クラスター上の任意のリソース(シークレットの内容を除く)を表示し、そのリソースで使用可能なアクションを一覧表示できます。
4. ユーザーがアプリケーションへのgetアクセス権を持っている場合、ユーザーはアプリケーションの宛先クラスター上の任意のポッドのログを表示できます。
5. ユーザーがアプリケーションに対してaction/{some action or *}アクセス権を持っている場合、ユーザーはアプリケーションの宛先クラスター上の任意のリソース(許可されたアクションをサポートする)に対してアクションを実行できます。 (一部のアクションはデフォルトでArgo CDで使用でき、その他のアクションはArgo CD管理者が構成できます。)
Argo CDで使用可能な特権の説明については、Argo CD RBACのドキュメントを参照してください。
Events exploit
アプリケーションのソースgitまたはHelmリポジトリにアクセスできない場合や、Applicationへのsyncまたはoverrideアクセスを持たない場合でも、アプリケーションにgetアクセス権を持つユーザーには、関連するエクスプロイトが発生する可能性があります。ユーザーは、関連するオブジェクトの名前、UID、および名前空間を知っている場合、アプリケーションの宛先クラスター内の任意のイベントにアクセスできます。
Impacts for versions starting with v0.8.0
v0.8.0以降でも同じバグが存在しますが、v1.0.0より前では次のエクスプロイトのみが可能でした。
削除の悪用(上記の2)
ログの悪用(上記の4)
上記のイベントエクスプロイト
Impacts for versions starting with v0.5.0
v0.5.0(RBACが実装された場合)以降も同じバグが存在しますが、v0.8.0より前では上記のイベントエクスプロイトのみが可能でした。
Patches
この脆弱性のパッチは、次のArgo CDバージョンでリリースされています。
v2.3.2
v2.2.8
v2.1.14
バージョン2.0.x以前のユーザー:ご使用のバージョンのアップグレード手順へのリンクについては、変更ログを参照してください。迅速にアップグレードすることが不可欠ですが、いくつかの制限された緩和策については次のセクションで説明します。
argo-helmチャートユーザー:argo-helmを使用してv2.3.xを展開しているArgo CDユーザーは、チャートをバージョン4.2.2にアップグレードできます。 Argo CD 2.2および2.1ユーザーは、global.image.tag値を現在のリリースシリーズ(v2.2.8またはv2.1.14)の最新のものに設定できます。 2.2および2.1シリーズのチャートは維持されなくなったため、値のオーバーライドをそのままにするか、4.xチャートシリーズ(したがってArgo CD 2.3)にアップグレードする必要があります。
Workarounds
脆弱性を回避する唯一の確実な方法は、アップグレードすることです。
Mitigations
特権の昇格を回避するには:
アプリケーションソースリポジトリへのプッシュアクセスまたはアプリケーションへの同期+オーバーライドアクセスを持つユーザーを制限します。
ユーザーがアプリケーションへの更新アクセス権を持つプロジェクトで使用できるリポジトリーを制限します。
不正なリソースの閲覧/改ざんを回避するには:
アプリケーションのdelete、get、またはactionアクセス権を持つユーザーを制限します。
/icons/hr.icon
https://github.com/argoproj/argo-cd/releases/tag/v2.3.2
セキュリティ修正の一環として、Argo CD UIは、子リソースも許可リストされていない限り、許可リストされたリソースの子リソースを自動的に表示しなくなりました。たとえば、Deploymentのみが許可リストに追加されている場合、ポッドは表示されません。
許可リストを使用してプロジェクトを構成している場合は、許可リストに、ユーザーがUIを介して表示/管理できるようにするすべてのリソースが含まれていることを確認してください。たとえば、プロジェクトでデプロイメントが許可されている場合は、ReplicaSetsとPodsを追加します。
https://github.com/argoproj/argo-cd/commit/21f208f17e620d9c13e0d6f74fa9df63e393573c
#ArgoCD