---
id: CVE-2024-31990
aliases:
  - GHSA-2gvw-w6fj-7m3c
  - BIT-argo-cd-2024-31990
  - GO-2024-2728
title: Argo CD's API server does not enforce project sourceNamespaces
summary: Argo CD's API server does not enforce project sourceNamespaces
severity: medium
cvss: 4.8
cvssVector: 'CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:N/I:N/A:H'
vendor: argoproj
product: github.com/argoproj/argo-cd/v2
ecosystem: go
affected:
  - 'github.com/argoproj/argo-cd/v2 >= 2.4.0, < 2.8.16'
  - 'github.com/argoproj/argo-cd/v2 >= 2.9.0, < 2.9.12'
  - 'github.com/argoproj/argo-cd/v2 >= 2.10.0, < 2.10.7'
patched:
  - github.com/argoproj/argo-cd/v2 2.8.16
  - github.com/argoproj/argo-cd/v2 2.9.12
  - github.com/argoproj/argo-cd/v2 2.10.7
published: '2024-04-15'
updated: '2026-08-07'
source: OSV
sourceUrl: 'https://osv.dev/vulnerability/GHSA-2gvw-w6fj-7m3c'
references:
  - url: >-
      https://github.com/argoproj/argo-cd/security/advisories/GHSA-2gvw-w6fj-7m3c
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2024-31990'
  - url: >-
      https://github.com/argoproj/argo-cd/commit/c514105af739eebedb9dbe89d8a6dd8dfc30bb2c
  - url: >-
      https://github.com/argoproj/argo-cd/commit/c5a252c4cc260e240e2074794aedb861d07e9ca5
  - url: >-
      https://github.com/argoproj/argo-cd/commit/e0ff56d89fbd7d066e9c862b30337f6520f13f17
  - url: 'https://github.com/argoproj/argo-cd'
tags:
  - osv
  - go
epss: 0.00448
epssPercentile: 0.38367
ingestedAt: '2026-08-07T19:14:15.422Z'
---

## Overview

### Impact

I can convince the UI to let me do things with an invalid Application.
1. Admin gives me `p, michael, applications, *, demo/*, allow`, where `demo` can just deploy to the `demo` namespace
2. Admin gives me AppProject `dev` which reconciles from ns `dev-apps`
3. Admin gives me `p, michael, applications, sync, dev/*, allow`, i.e. no updating via the UI allowed, gitops-only
4. I create an Application called `pwn` in `dev-apps` with project dev and sync the app with sources from git
5. I change the Application’s project to demo via kubectl or gitops (whichever mechanism my admins have given me, because it should be safe)
6. I use the UI to edit the resource which should only be mutable via gitops

### Patches
A patch for this vulnerability has been released in the following Argo CD versions:

v2.10.7 
v2.9.12 
v2.8.16

### For more information
If you have any questions or comments about this advisory:

Open an issue in [the Argo CD issue tracker](https://github.com/argoproj/argo-cd/issues) or [discussions](https://github.com/argoproj/argo-cd/discussions)
Join us on [Slack](https://argoproj.github.io/community/join-slack) in channel #argo-cd

### Credits
This vulnerability was found & reported by @crenshaw-dev (Michael Crenshaw)

The Argo team would like to thank these contributors for their responsible disclosure and constructive communications during the resolve of this issue


## Affected packages

- `github.com/argoproj/argo-cd/v2 >= 2.4.0, < 2.8.16`
- `github.com/argoproj/argo-cd/v2 >= 2.9.0, < 2.9.12`
- `github.com/argoproj/argo-cd/v2 >= 2.10.0, < 2.10.7`

## Remediation

Upgrade to a patched release:

- `github.com/argoproj/argo-cd/v2 2.8.16`
- `github.com/argoproj/argo-cd/v2 2.9.12`
- `github.com/argoproj/argo-cd/v2 2.10.7`
