CVE-2022-24904: Argo CD Symlink Following Vulnerability

Summary

23/05/2022
Yes i
Moderate
4.3

CVE-2022-24904: Symlink following allows leaking out-of-bound manifests and JSON files from Argo CD repo-server. Affects github.com/argoproj/argo-cd/v2 across 3 version ranges.

< 2.1.15 >= 2.2.0, < 2.2.9 >= 2.3.0, < 2.3.4

Fixed in 2.1.15, 2.2.9 or 2.3.4, depending on the release line you run. How to fix ↓

Also tracked for

The same CVE-2022-24904 is tracked separately for each ecosystem and vendor. Its fix information is the same; the package and affected versions differ.

Free scan

Check if this vulnerability affects your application

Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.

Check my app free

No signup required · Results in about 60 seconds

Sponsored MarkAI Find prospects already talking about the problem you solve AI watches the communities your customers use to find qualified prospects, then alerts you when a conversation is worth joining. See MarkAI

Background

Argo CD is an open-source continuous delivery tool for Kubernetes. It provides a declarative approach to managing Kubernetes resources and applications. The vulnerability affects versions of Argo CD starting from v0.7.0. Argo CD's repo-server is vulnerable to a symlink following bug, which allows a malicious user with repository write access to leak sensitive files. This can include manifest files from other applications' source repositories and JSON-formatted secrets mounted as files on the repo-server.

Vulnerability Detail

The vulnerability arises from the ability of a malicious Argo CD user with write access to commit a symlink that points to an out-of-bounds file. Depending on the target file, different levels of information leakage are possible. If the target file is a valid JSON or YAML manifest file and the resource is allowed in the application, the attacker can read the contents of that manifest file. In some versions, the attacker may even read the file contents if the resource is not allowed in the application. If the target file is valid JSON but not a manifest file, the attacker can read the contents of the file. If the target file is not valid JSON or YAML, the attacker may only read partial file contents, usually just the first character. The vulnerability can lead to the exposure of sensitive information.

How To Fix

Latest published version: v2.14.21 as of 22 Oct 2026

go get github.com/argoproj/argo-cd/v2@v2.14.21

Upgrading to it may include breaking changes; the versions below are the minimum fixed release for this vulnerability.

If you can't move to the latest

The minimum fixed version depends on the release line you run.

  • < 2.1.15 2.1.15
    go get github.com/argoproj/argo-cd/v2@v2.1.15
  • >= 2.2.0, < 2.2.9 2.2.9
    go get github.com/argoproj/argo-cd/v2@v2.2.9
  • >= 2.3.0, < 2.3.4 2.3.4
    go get github.com/argoproj/argo-cd/v2@v2.3.4

Tip — Not sure which release line you're on? Vulert can find the fix for the version you are using. Scan free →

Workaround

If you are using Argo CD version 2.3.0 or later and do not have any Jsonnet/directory-type applications, you can disable the Jsonnet/directory config management tool to mitigate the vulnerability. This can be done by setting the jsonnet.enable configuration key to false. However, this workaround should only be applied if it aligns with your specific use case.

Conclusion

The Argo CD symlink following vulnerability can lead to the leakage of sensitive files from the repo-server. It is crucial to upgrade to the recommended versions (v2.3.4, v2.2.9, or v2.1.15) to mitigate the vulnerability. Additionally, implementing best practices and following the provided workarounds can further reduce the risk. For more information and support on vulnerability remediation, please contact DevNack.com.

See every vulnerability recorded for github.com/argoproj/argo-cd/v2 →

Share this vulnerability

FAQ

All unpatched versions of Argo CD starting from v0.7.0 are vulnerable to this symlink following bug.

Sensitive files that can be leaked include manifest files from other applications' source repositories, potentially decrypted files if a decryption plugin is used, and any JSON-formatted secrets mounted as files on the repo-server.

Upgrading to Argo CD version 2.3.0 or later significantly reduces the risk of leaking out-of-bounds manifest files. Starting from version 2.3.0, repository paths are randomized, and read permissions are restricted when manifests are not actively being generated. Upgrading to version 2.3.3, 2.2.8, or 2.1.14 also reduces the risk of leaking the contents of out-of-bounds manifest files. Implementing best practices such as limiting push access to manifest repositories and restricting user access to necessary projects can further mitigate the risk.

No, the vulnerability requires applying the patches included in the recommended Argo CD versions (v2.3.4, v2.2.9, or v2.1.15) to address the symlink following bug.

Yes, if you are using Argo CD version 2.3.0 or later and do not have any Jsonnet/directory-type applications, you can disable the tool by setting the jsonnet.enable configuration key to false.

Related vulnerabilities

Recent vulnerabilities recorded for github.com/argoproj/argo-cd/v2.

How To Fix

Latest published version: v2.14.21 as of 22 Oct 2026

go get github.com/argoproj/argo-cd/v2@v2.14.21

Upgrading to it may include breaking changes; the versions below are the minimum fixed release for this vulnerability.

If you can't move to the latest

The minimum fixed version depends on the release line you run.

  • < 2.1.15 2.1.15
    go get github.com/argoproj/argo-cd/v2@v2.1.15
  • >= 2.2.0, < 2.2.9 2.2.9
    go get github.com/argoproj/argo-cd/v2@v2.2.9
  • >= 2.3.0, < 2.3.4 2.3.4
    go get github.com/argoproj/argo-cd/v2@v2.3.4

Tip — Not sure which release line you're on? Vulert can find the fix for the version you are using. Scan free →

Subscribe to Vulert on Telegram
Daily digest of new CVEs, critical and high severity, affected packages and fixes — plus a weekly roundup.
Join the channel →
Help improve this record
Report an issue or send feedback