Security Digest · Vulnerability record

CVE-2026-77459: Argo CD: AppProject destination-namespace and resource restrictions bypassed by PreDelete/PostDelete resource hooks

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes.

CVSS 9.9 Critical EPSS 0.7% · p53 Patch this week

Should you act?

Critical, preconditions apply

Severe if exploited, but exploitation needs conditions that may not apply to you. This signal is computed from CISA KEV, EPSS and CVSS data; it is not an editorial verdict.

  • No confirmed exploitation. It is not in CISA’s KEV catalog and CISA’s SSVC assessment records no known exploitation. That can change quickly after a public write-up; re-check if you are affected.
  • EPSS 0.7%, percentile 53: FIRST’s model estimates a 0.7% chance of exploitation activity in the next 30 days, higher than 53% of all scored CVEs (moderate). EPSS is a probability, not a verdict.
  • Needs an account (low (any account)). Exposure depends on who can log in.
  • Only applies if your dependency tree includes github.com/argoproj/argo-cd/v2 (Go) >= 2.10.0, <= 2.14.21, no fixed version listed; github.com/argoproj/argo-cd/v3 (Go) >= 3.0.0, < 3.3.15, fixed in 3.3.15; github.com/argoproj/argo-cd/v3 (Go) >= 3.4.0, < 3.4.10, fixed in 3.4.10; github.com/argoproj/argo-cd/v3 (Go) >= 3.5.0, < 3.5.4, fixed in 3.5.4. Check your lockfile, including transitive dependencies.
  • Editorial verdict: Patch this week. Argo CD: Repo-Server RCE and AppProject Bypass (Oct 2026) — Upgrade Argo CD to a patched 3.3, 3.4 or 3.5 release this week, and today on shared instances where people you do not fully trust can push to tracked repos or merely view an Application.

What it is

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. From 2.10.0 until 3.3.15, 3.4.10, 3.5.4, and 3.6.0-rc2, Argo CD creates PostDelete resource hooks without applying the AppProject destination and resource authorization checks used during ordinary synchronization. The omitted checks include cluster-scoped and namespaced resource allow/deny lists. A user who can write to an Application's Git repository can commit a delete hook targeting a forbidden namespace, server, group, kind, or resource name, and deletion of the Application causes the application-controller to create that resource with its destination-cluster credentials. The reachable impact is bounded by the controller's cluster access but can include cluster-scoped resources, disallowed namespaces, persistent hook objects, and secondary objects created by a hook Job. PreSync, Sync, PostSync, and SyncFail hooks continue to use the normal project checks. This issue is fixed in versions 3.3.15, 3.4.10, 3.5.4, and 3.6.0-rc2.

From the GitHub advisory

Impact

Argo CD checks an Application's AppProject before it creates resources during a sync. That check covers destination namespaces and servers, cluster-scoped resource allow and deny lists, and namespaced resource allow and deny lists, including resource names. PreDelete and PostDelete hooks skip it. When the Application is deleted, Argo CD creates those hooks with the application-controller's credentials on the destination cluster.

All versions from v2.10.0 onward are affected, including every currently supported release. v2.9.22 and earlier are not. PostDelete hooks were introduced in dcc17f70bf (2023-12-18, #16595) and first released in v2.10.0. That creation path has never applied the project check. PreDelete hooks, added in 3bf3d8a212 (2025-12-05, #22288) and first released in v3.3.0, use the same path. v3.2.12 and earlier do not have PreDelete hooks. PreSync, Sync, PostSync, and SyncFail hooks still go through the project check.

A user who can push to the Git repository an Application syncs from can commit a hook whose namespace, group, kind, or name the AppProject would refuse on sync. The controller adds the delete finalizer when it sees the hook, and the Application stays Synced until someone deletes it. Deleting the Application creates the hook. What that can reach is bounded by the application-controller's access to the destination cluster. In a typical install that access is broad, so a tenant can create a cluster-scoped object such as a ClusterRoleBinding, or an object in a namespace the project does not allow. A hook with no deletion policy is removed after it succeeds. A deletion policy that does not remove the hook on success leaves the object in the cluster. A hook such as a Job can create further objects that Argo CD does not clean up.

Patches

Weakness type: CWE-863.

Product: github.com/argoproj/argo-cd/v2 (Go) · Assigned by: GitHub_M · Published: 2026-10-13

Affected and fixed versions

EcosystemPackageVulnerableFirst fixed
Gogithub.com/argoproj/argo-cd/v2>= 2.10.0, <= 2.14.21none listed
Gogithub.com/argoproj/argo-cd/v3>= 3.0.0, < 3.3.153.3.15
Gogithub.com/argoproj/argo-cd/v3>= 3.4.0, < 3.4.103.4.10
Gogithub.com/argoproj/argo-cd/v3>= 3.5.0, < 3.5.43.5.4
Gogithub.com/argoproj/argo-cd/v3>= 3.6.0-rc1, < 3.6.0-rc23.6.0-rc2
VendorProductAffected versions (per CVE record)
argoprojargo-cd>= 2.10.0, <= 2.14.21, >= 3.0.0, < 3.3.15, >= 3.4.0, < 3.4.10, >= 3.5.0, < 3.5.4, >= 3.6.0-rc1, < 3.6.0-rc2

Severity scores

Scored byCVSSScoreVector
GitHub_M3.19.9 CriticalCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
GitHub3.19.9 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
  • Attack vector: network (remotely reachable)
  • Attack complexity: low
  • Privileges required: low (any account)
  • User interaction: none
  • Scope: changed (can affect other components)

CVSS measures how bad a flaw is if exploited, not how likely exploitation is. Read it next to the exploitation data below.

Exploitation and urgency

  • CISA KEV: not listed (no confirmed in-the-wild exploitation known to CISA).
  • CISA SSVC assessment: exploitation none, automatable no, technical impact total.
  • FIRST EPSS (model of 2026-10-21): 0.72% probability of exploitation activity in the next 30 days; percentile 53.

Timeline

Sources and references

Original sources first. Version and fix details should always be confirmed against the vendor or project advisory.

Vulnerability records

  1. GitHub Advisory GHSA-fmxq-cgp8-87wp github.com
  2. CVE.org record CVE-2026-77459 cve.org
  3. NVD entry CVE-2026-77459 nvd.nist.gov

Other references from the CVE record and advisory

  1. github.com github.com
  2. github.com github.com
  3. github.com github.com
  4. github.com github.com
  5. github.com github.com
  6. github.com github.com
  7. github.com github.com
  8. github.com github.com
  9. github.com github.com

Critical Go advisories · Today’s Security Digest