
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-42880 is a missing authorization and data-masking vulnerability in Argo CD's ServerSideDiff gRPC/REST endpoint that allows an attacker with read-only access to extract plaintext Kubernetes Secret data from etcd via the Kubernetes API server's Server-Side Apply dry-run mechanism. It affects Argo CD versions 3.2.0 through 3.2.10 and 3.3.0 through 3.3.8, and was published on May 7, 2026. Patches were released in versions 3.2.11 and 3.3.9. It carries a CVSS v3.1 base score of 9.6 (Critical) (GitHub Advisory).
The root cause is a combination of CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor) and CWE-212 (Improper Removal of Sensitive Information Before Storage or Transfer). All other Argo CD endpoints that return Kubernetes resource state (e.g., GetManifests, GetResource, PatchResource) call hideSecretData() to mask secret values, but the ServerSideDiff endpoint constructs its response using raw, unmasked PredictedLive and NormalizedLive states. Normally, a defense layer called removeWebhookMutation() strips non-Argo CD-managed fields from the Server-Side Apply dry-run response; however, this defense is entirely bypassed when an Application has the annotation argocd.argoproj.io/compare-options: IncludeMutationWebhook=true. For extraction to succeed, the target Secret's data fields must be owned by at least one non-Argo CD SSA field manager (e.g., kube-controller-manager), so that the real values survive the SSA dry-run garbage collection and appear unmasked in the API response (GitHub Advisory).
Any authenticated Argo CD user with application get (read-only) permissions can extract plaintext Kubernetes Secret values — including service account tokens, TLS certificates, database credentials, and API keys — from etcd via the vulnerable endpoint. Because every authenticated Argo CD user has get access through the default role:catch-all policy, the effective attack surface is broad. Successful exploitation can enable lateral movement within the Kubernetes cluster, privilege escalation using extracted service account tokens, and full compromise of downstream systems whose credentials are stored as Kubernetes Secrets (GitHub Advisory).
A fully functional Python proof-of-concept exploit is publicly available in the GitHub Security Advisory, which calls /application.ApplicationService/ServerSideDiff via gRPC-web to retrieve real secret values from etcd. The exploit requires only a valid bearer token (read-only access) and the target application name and project. As of the time of disclosure, there is no evidence of active in-the-wild exploitation, and no threat actor attribution has been reported. The EPSS score is approximately 0.031% (0.000310), and the vulnerability is not currently listed in the CISA KEV catalog (GitHub Advisory, GBHackers).
get) access to an Argo CD application — this may be a low-privileged user account./api/v1/applications/{app_name}/managed-resources with the bearer token to list all Kubernetes resources managed by the target application, filtering for resources of kind: Secret.argocd.argoproj.io/compare-options: IncludeMutationWebhook=true (required for the defense bypass), or attempt the call regardless as the annotation may be set./application.ApplicationService/ServerSideDiff, specifying the application name, project, and a minimal target manifest for the Secret (omitting the data field for Opaque secrets, or including placeholder values for TLS/dockerconfigjson types).Content-Type: application/grpc-web+proto, Authorization: Bearer <token>).targetState (field 5 / PredictedLive) JSON. Extract the data field from the Secret object — values that are not masked (i.e., not all + characters) are real base64-encoded secret values read directly from etcd./application.ApplicationService/ServerSideDiff with Content-Type: application/grpc-web+proto headers, especially from low-privileged accounts or at high frequency; GET requests to /api/v1/applications/*/managed-resources immediately followed by ServerSideDiff calls.ServerSideDiff API calls by read-only users, particularly targeting applications with the IncludeMutationWebhook=true annotation; access patterns where a single user queries multiple applications' managed resources in rapid succession.ServerSideDiff for many different secrets across multiple namespaces in a short time window (GitHub Advisory).Upgrade Argo CD to version 3.2.11 or 3.3.9, which patch the missing data-masking in the ServerSideDiff endpoint. As an interim workaround, remove or avoid setting the annotation argocd.argoproj.io/compare-options: IncludeMutationWebhook=true on Applications, as this annotation is required to bypass the removeWebhookMutation() defense layer. Additionally, apply the principle of least privilege by restricting Argo CD access to only necessary users, monitor audit logs for anomalous ServerSideDiff calls, and consider network segmentation to limit access to Argo CD API endpoints (GitHub Advisory).
The vulnerability received coverage from several security news outlets including GBHackers, CyberPress, and The Hacker Wire, highlighting the risk of secret extraction via a read-only Argo CD account. Social media activity was observed on Bluesky and Mastodon (infosec.exchange), with the security community noting the severity of the issue given Argo CD's widespread use in Kubernetes GitOps pipelines. The advisory credits researcher hoang-prod for the discovery (GBHackers, The Hacker Wire, CyberPress).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."