Security Resilience

CVE-2023-50726

Access Control in Argoproj Argo Cd 1.2.0 – 2.8.12

Published
13 March 2024
Modified
02 June 2025
Patch / advisory
CVSS Score v3.1 6.4
Click a component to see what it means
Raw vectorCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:L/A:L
EPSS Score 0.0053 44th percentile
Risk Priority 47 floored blend · peak EPSS

CVSS and EPSS are reproduced from their sources (NVD, FIRST EPSS). Risk Priority is our own derived reading, not an NVD score.

Summary

CVE-2023-50726 is a medium-severity Improper Privilege Management (CWE-269) vulnerability in Argoproj Argo Cd. Its CVSS base score is 6.4 (Medium).

Operationally, ranked at the 44th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog.

The strongest mitigations our analysis identified map to AC-2 (Account Management) and AC-24 (Access Control Decisions) — see the control section below for these in your framework.

OWASP Top 10 for Web (2025)

EU & UK References

Vulnerability Data

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. "Local sync" is an Argo CD feature that allows developers to temporarily override an Application's manifests with locally-defined manifests. Use of the feature should generally be limited to highly-trusted…

more

users, since it allows the user to bypass any merge protections in git. An improper validation bug allows users who have `create` privileges but not `override` privileges to sync local manifests on app creation. All other restrictions, including AppProject restrictions are still enforced. The only restriction which is not enforced is that the manifests come from some approved git/Helm/OCI source. The bug was introduced in 1.2.0-rc1 when the local manifest sync feature was added. The bug has been patched in Argo CD versions 2.10.3, 2.9.8, and 2.8.12. Users are advised to upgrade. Users unable to upgrade may mitigate the risk of branch protection bypass by removing `applications, create` RBAC access. The only way to eliminate the issue without removing RBAC access is to upgrade to a patched version.

CWE(s)

Related Threats

CVEs Like This One

CVE-2023-22482Same product: Argoproj Argo Cd
CVE-2023-23947Same product: Argoproj Argo Cd
CVE-2024-41666Same product: Argoproj Argo Cd
CVE-2024-31990Same product: Argoproj Argo Cd
CVE-2026-42296Same vendor: Argoproj
CVE-2026-28229Same vendor: Argoproj
CVE-2026-31892Same vendor: Argoproj
CVE-2026-40291Shared CWE-269, CWE-863
CVE-2026-106492Shared CWE-269, CWE-863
CVE-2023-30024Shared CWE-269, CWE-863

Affected Assets

argoproj
argo cd
1.2.0 — 2.8.12 · 2.9.0 — 2.9.7 · 2.10.0 — 2.10.3

Mitigating Controls

Mitigating Controls (NIST 800-53 r5) AI

AC-3 directly requires correct enforcement of authorization decisions on every access request, structurally preventing incorrect checks.

Account management directly governs assignment and tracking of privileges so proper implementation stops the weakness from being introduced.

Requiring explicit access-control decisions ensures privileges are evaluated rather than assumed or omitted.

A reference monitor that is always invoked and tamper-proof forces every authorization decision through a verified, correct path.

Separation of duties constrains how privileges may be assigned, reducing the chance of overly broad actor control.

Least privilege is the direct countermeasure to improper privilege management; implementing it eliminates the root cause.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

blocks

A.5.15 directly mandates determining access requirements, defining/enforcing topic-specific access control policy, assigning rights/restrictions by entity/role, consistency with classification, need-to-know, privileged access restrictions, segregation, formal authorization, and dynamic rules — which stops most improper privilege management from being exploitable; bounded remainder is flawed implementation of those rules (e.g. incorrect mapping or enforcement bugs).

blocks

A.5.18 directly governs the provisioning, review, modification and timely revocation of access rights (including for role changes, termination and privilege levels), which stops most improper privilege spheres from being exploitable even if the assignment flaw exists; the bounded remainder is flaws in the underlying enforcement mechanism itself (e.g. AC-3/A.8.3)

blocks

Defining and communicating authorization levels for each role limits the assignment of excessive or unnecessary privileges.

A.8.15 Logging partial match
finds

Logging every use of privileges and protecting those records makes it harder for an attacker who has obtained elevated rights to operate without leaving evidence.

blocks

A.8.2 directly controls the identification, allocation, review, expiry, temporary use, and separation of privileged rights per policy, which prevents most improper privilege management (CWE-269) by design; the bounded remainder is flawed tracking/checking logic inside the product's own enforcement code (the AC-3 slice of 269).

blocks

A.8.27 mandates security-by-design principles including least privilege, default deny, fail securely, defence in depth, security architecture integration, hardening, and zero-trust verification of every request; these directly stop most improper privilege spheres from being exploitable even if the assignment flaw remains, with a bounded remainder (e.g. certain legacy or safety-overridden controls).

Hardening callouts derived

DISA STIG baselines are authored against specific weaknesses. Where this CVE cites a broad weakness class, the mapping is not asserted at that abstraction (owner ruling, 2026-09-25: grade only at Base and below), so no rule is shown here rather than a rule shown against the wrong grain.

  • No fine-grained STIG row for CWE-269, a class-level weakness. Rules are authored against its narrower children: CWE-250, CWE-266, CWE-267, CWE-268, CWE-270, CWE-274.
  • No fine-grained STIG row for CWE-863, a class-level weakness, and none of its children carries one either.

References