CVE-2022-31105

8.3 HIGH

📋 TL;DR

Argo CD versions 0.4.0 through 2.4.4 (excluding patched versions) have improper certificate validation for OpenID Connect providers, allowing attackers to impersonate legitimate OIDC providers. This affects all Argo CD deployments using external OIDC authentication. Attackers could trick Argo CD into accepting malicious tokens, potentially compromising Kubernetes cluster access.

💻 Affected Systems

Products:
  • Argo CD
Versions: 0.4.0 to 2.4.4 (excluding 2.2.11, 2.3.6, 2.4.5)
Operating Systems: All platforms running Argo CD
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects deployments using external OIDC providers (not the bundled Dex instance).

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete cluster compromise via authentication bypass, allowing attackers to deploy malicious workloads, exfiltrate sensitive data, or disrupt operations.

🟠

Likely Case

Unauthorized access to Argo CD management interface, enabling privilege escalation and potential lateral movement within the Kubernetes environment.

🟢

If Mitigated

Limited impact with proper network segmentation and monitoring; attackers would need to intercept or spoof OIDC provider traffic.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires man-in-the-middle position or ability to spoof OIDC provider, plus knowledge of target's OIDC configuration.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.2.11, 2.3.6, or 2.4.5

Vendor Advisory: https://github.com/argoproj/argo-cd/security/advisories/GHSA-7943-82jg-wmw5

Restart Required: Yes

Instructions:

1. Backup your Argo CD configuration. 2. Upgrade to patched version using your deployment method (Helm, kubectl, etc.). 3. Verify the upgrade completed successfully. 4. Test authentication flows.

🔧 Temporary Workarounds

Configure OIDC Root CA

all

Set oidc.config.rootCA field in argocd-cm ConfigMap to force certificate validation during login flows (partial mitigation).

kubectl edit configmap argocd-cm -n argocd
Add or update: oidc.config.rootCA: |
  -----BEGIN CERTIFICATE-----
  [Your OIDC provider's root CA certificate]
  -----END CERTIFICATE-----

🧯 If You Can't Patch

  • Implement network controls to prevent traffic interception between Argo CD and OIDC provider
  • Monitor authentication logs for suspicious OIDC provider changes or unexpected authentication attempts

🔍 How to Verify

Check if Vulnerable:

Check Argo CD version: kubectl get deployment argocd-server -n argocd -o jsonpath='{.spec.template.spec.containers[0].image}'. If version is between 0.4.0 and 2.4.4 (excluding patched versions), you are vulnerable.

Check Version:

kubectl get deployment argocd-server -n argocd -o jsonpath='{.spec.template.spec.containers[0].image}'

Verify Fix Applied:

Verify version is 2.2.11, 2.3.6, or 2.4.5 using same command, then test OIDC authentication with invalid certificates to ensure they are rejected.

📡 Detection & Monitoring

Log Indicators:

  • Unexpected OIDC provider certificate changes
  • Authentication failures followed by successes from new IPs
  • OIDC configuration modifications in argocd-cm

Network Indicators:

  • Unusual traffic patterns between Argo CD and OIDC provider
  • SSL/TLS certificate mismatches in network logs

SIEM Query:

source="argo-cd" AND ("oidc" OR "authentication") AND ("certificate" OR "validation" OR "failed")

🔗 References

📤 Share & Export