CVE-2024-31989: ArgoCD Vulnerable to Use of Risky or Missing Cryptographic Algorithms in Redis Cache
By default, the Redis database server is not password-protected. Consequently, an attacker with access to the Redis server can gain read/write access to the data in Redis. The attacker can also modify the “mfst” (manifest) key to cause ArgoCD to execute any deployment, potentially leveraging ArgoCD’s high privileges to take over the cluster. Updating the “cacheEntryHash” in the manifest JSON is necessary, but since it doesn’t use a private key for signing its integrity, a simple script can generate a new FNV64a hash matching the new manifest values. The repo-server, unable to verify if its cache is compromised, will read the altered “mfst” key and initiate an update process for the injected deployment.
It’s also possible to edit the “app|resources-tree” key, causing the ArgoCD server to load any Kubernetes resource into the live manifest section of the app preview. This could lead to an information leak.
The fact that the cache in Redis is neither signed nor validated, combined with Redis’s default lack of password protection, presents a significant security concern given ArgoCD’s high-level permissions within the cluster. A security update should ensure all Redis database values are signed or encrypted.
References
- github.com/advisories/GHSA-9766-5277-j5hr
- github.com/argoproj/argo-cd
- github.com/argoproj/argo-cd/commit/2de0ceade243039c120c28374016c04ff9590d1d
- github.com/argoproj/argo-cd/commit/35a7d6c7fa1534aceba763d6a68697f36c12e678
- github.com/argoproj/argo-cd/commit/4e2fe302c3352a0012ecbe7f03476b0e07f7fc6c
- github.com/argoproj/argo-cd/commit/53570cbd143bced49d4376d6e31bd9c7bd2659ff
- github.com/argoproj/argo-cd/commit/6ef7b62a0f67e74b4aac2aee31c98ae49dd95d12
- github.com/argoproj/argo-cd/commit/9552034a80070a93a161bfa330359585f3b85f07
- github.com/argoproj/argo-cd/commit/bdd889d43969ba738ddd15e1f674d27964048994
- github.com/argoproj/argo-cd/commit/f1a449e83ee73f8f14d441563b6a31b504f8d8b0
- github.com/argoproj/argo-cd/security/advisories/GHSA-9766-5277-j5hr
- nvd.nist.gov/vuln/detail/CVE-2024-31989
Detect and mitigate CVE-2024-31989 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →