Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-23960

CVE-2026-23960: Argo Workflows Stored XSS Vulnerability

CVE-2026-23960 is a stored XSS flaw in Argo Workflows affecting the artifact directory listing. Attackers can execute JavaScript in victim browsers to perform API actions. This article covers technical details, versions, and fixes.

Published:

CVE-2026-23960 Overview

CVE-2026-23960 is a stored Cross-Site Scripting (XSS) vulnerability in Argo Workflows, an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. The vulnerability exists in the artifact directory listing functionality and allows any workflow author to execute arbitrary JavaScript in another user's browser under the Argo Server origin, enabling API actions with the victim's privileges.

Critical Impact

Attackers with workflow authorship privileges can inject malicious JavaScript that executes in the context of other users' sessions, potentially leading to account takeover, data theft, or unauthorized API operations within Kubernetes environments.

Affected Products

  • Argo Workflows versions prior to 3.6.17
  • Argo Workflows versions prior to 3.7.8
  • Kubernetes environments running vulnerable Argo Workflows instances

Discovery Timeline

  • 2026-01-21 - CVE CVE-2026-23960 published to NVD
  • 2026-01-21 - Last updated in NVD database

Technical Details for CVE-2026-23960

Vulnerability Analysis

This stored XSS vulnerability resides in the artifact server component of Argo Workflows, specifically in the artifact_server.go file. The flaw stems from improper sanitization of user-controlled input when rendering directory listings for workflow artifacts.

When a workflow author creates artifacts with malicious content or filenames, the artifact directory listing feature fails to properly encode this content before rendering it in HTML. This allows JavaScript code to be stored and later executed when another user browses the artifact directory through the Argo Server web interface.

The attack operates under the Argo Server's origin, meaning the malicious script has full access to the victim's session and can perform any API action the victim is authorized to execute. In Kubernetes environments, this could include modifying workflows, accessing secrets, or performing other privileged operations.

Root Cause

The root cause is a lack of proper HTML encoding and template escaping in the artifact directory listing functionality. The vulnerable code in artifact_server.go (lines 194-244) directly outputs user-controlled data without sanitization, creating an XSS injection point. The fix introduces proper HTML template handling using Go's html/template package, which provides automatic context-aware escaping.

Attack Vector

The attack is network-based and requires the attacker to have workflow authorship privileges within the Argo Workflows system. The exploitation flow is as follows:

  1. An attacker with workflow creation privileges crafts a workflow containing artifacts with malicious JavaScript payloads
  2. The malicious payload is stored within the artifact metadata or directory structure
  3. When a victim user (such as an administrator) browses the artifact directory listing, the unsanitized content is rendered in their browser
  4. The injected JavaScript executes with the victim's session context, allowing the attacker to perform API actions as the victim
go
 package artifacts
 
 import (
+	"bytes"
 	"context"
 	"errors"
 	"fmt"
+	"html/template"
 	"io"
 	"mime"
 	"net/http"

Source: GitHub Security Patch

The fix adds the html/template import which provides automatic HTML escaping, replacing the vulnerable direct string output with properly escaped template rendering.

Detection Methods for CVE-2026-23960

Indicators of Compromise

  • Unusual or suspicious artifact names containing HTML tags or JavaScript code (e.g., <script>, onerror=, javascript:)
  • Unexpected API calls originating from user sessions after browsing artifact directories
  • Workflow artifacts with encoded or obfuscated JavaScript payloads in filenames or content
  • Browser console errors or anomalous script execution when viewing artifact listings

Detection Strategies

  • Monitor Argo Server access logs for requests to artifact directory endpoints with suspicious patterns
  • Implement Content Security Policy (CSP) headers to detect and block inline script execution attempts
  • Deploy web application firewalls (WAF) with XSS detection rules for the Argo Server endpoints
  • Audit workflow definitions for artifacts with potentially malicious names or metadata

Monitoring Recommendations

  • Enable detailed logging on the Argo Server to capture artifact access patterns and user activity
  • Configure alerting for unusual API activity following artifact directory browsing sessions
  • Implement session monitoring to detect privilege escalation or unauthorized actions after potential XSS exploitation
  • Regularly review workflow submissions for suspicious artifact configurations

How to Mitigate CVE-2026-23960

Immediate Actions Required

  • Upgrade Argo Workflows to version 3.6.17 or 3.7.8 immediately
  • Review existing workflows for any artifacts with suspicious names or content that could indicate exploitation
  • Implement network segmentation to limit access to the Argo Server interface to trusted users only
  • Enable Content Security Policy headers on the Argo Server if not already configured

Patch Information

Argo Workflows has released patched versions that address this vulnerability:

The fix implements proper HTML template escaping using Go's html/template package to ensure all user-controlled data is sanitized before rendering. For additional details, refer to the GitHub Security Advisory GHSA-cv78-6m8q-ph82.

Workarounds

  • Restrict workflow authorship privileges to trusted users only until patches can be applied
  • Implement a reverse proxy with XSS filtering in front of the Argo Server
  • Disable artifact browsing functionality if not required for operations
  • Deploy strict Content Security Policy headers to mitigate the impact of any successful XSS exploitation
bash
# Example: Update Argo Workflows using Helm
helm repo update
helm upgrade argo-workflows argo/argo-workflows --version 3.7.8 -n argo

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.