Kestra's custom Markdown parser fails to sanitize its `[[link]]` shorthand, letting anyone with permission to edit a Flow's description embed JavaScript event-handler attributes that execute when another user simply opens that flow in the Flow list or its info panel. With a CVSS of 8.7 and a Changed scope (S:C), the payload runs in the victim's browser session rather than the attacker's, meaning a low-privileged flow editor can pivot into whatever access a higher-privileged operator or admin holds — session hijacking, credential theft, or unauthorized pipeline actions inside an orchestration platform with 499 downstream dependents. There's no CISA KEV listing, no public exploit, and no Nuclei template yet, so this isn't under active mass exploitation, but the low attack complexity and lack of required special privileges beyond basic flow-edit rights make it a realistic insider or compromised-account risk. Patch to Kestra 1.3.24, which fixes the parser in `ui/src/utils/markdown_plugins/link.ts`; until then, restrict flow-creation/edit permissions and treat any unusual link syntax in flow descriptions as suspicious during review.
What is the risk?
High severity (CVSS 8.7) driven by a Changed scope and high confidentiality/integrity impact combined with low attack complexity — the only friction is that the attacker needs low-level privileges to edit a flow description and a victim must open the affected UI panel. Because Kestra orchestrates automated pipelines, the realistic blast radius includes operators and admins who routinely browse the Flow list, making the required user interaction highly likely in normal workflows. No active exploitation or public tooling has been observed, but the vulnerability class (stored XSS in a widely-deployed orchestration UI) is well understood and trivial to weaponize once an attacker has any flow-edit access.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| Panel | maven | < 1.3.24 | 1.3.24 |
Do you use Panel? You're affected.
How severe is it?
What is the attack surface?
What should I do?
1 stepUpgrade Kestra to 1.3.24 or later, which fixes the Markdown link parser to strip injected event-handler attributes. Until patched, restrict Flow create/update permissions to trusted users only and enable code review or approval workflows for flow description changes. Deploy or verify a strict Content-Security-Policy on the Kestra web UI to limit inline script execution as defense-in-depth. Audit existing flow descriptions for suspicious
[[link]]syntax containingon*=event handlers, and monitor for anomalous admin-session activity following flow-list views.
What does CISA's SSVC say?
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-55839?
Kestra's custom Markdown parser fails to sanitize its `[[link]]` shorthand, letting anyone with permission to edit a Flow's description embed JavaScript event-handler attributes that execute when another user simply opens that flow in the Flow list or its info panel. With a CVSS of 8.7 and a Changed scope (S:C), the payload runs in the victim's browser session rather than the attacker's, meaning a low-privileged flow editor can pivot into whatever access a higher-privileged operator or admin holds — session hijacking, credential theft, or unauthorized pipeline actions inside an orchestration platform with 499 downstream dependents. There's no CISA KEV listing, no public exploit, and no Nuclei template yet, so this isn't under active mass exploitation, but the low attack complexity and lack of required special privileges beyond basic flow-edit rights make it a realistic insider or compromised-account risk. Patch to Kestra 1.3.24, which fixes the parser in `ui/src/utils/markdown_plugins/link.ts`; until then, restrict flow-creation/edit permissions and treat any unusual link syntax in flow descriptions as suspicious during review.
Is CVE-2026-55839 actively exploited?
No confirmed active exploitation of CVE-2026-55839 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-55839?
Upgrade Kestra to 1.3.24 or later, which fixes the Markdown link parser to strip injected event-handler attributes. Until patched, restrict Flow create/update permissions to trusted users only and enable code review or approval workflows for flow description changes. Deploy or verify a strict Content-Security-Policy on the Kestra web UI to limit inline script execution as defense-in-depth. Audit existing flow descriptions for suspicious `[[link]]` syntax containing `on*=` event handlers, and monitor for anomalous admin-session activity following flow-list views.
What systems are affected by CVE-2026-55839?
This vulnerability affects the following AI/ML architecture patterns: MLOps/pipeline orchestration platforms, training pipelines, CI/CD pipelines for AI workflows.
What is the CVSS score for CVE-2026-55839?
CVE-2026-55839 has a CVSS v3.1 base score of 8.7 (HIGH). The EPSS exploitation probability is 0.43%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0011User ExecutionAML.T0049Exploit Public-Facing ApplicationCompliance Controls Affected
What are the technical details?
Original Advisory
Kestra is an open-source, event-driven orchestration platform. Prior to 1.3.24, Kestra's custom Markdown parser in ui/src/utils/markdown_plugins/link.ts allows a user with permission to create or update a Flow description to inject JavaScript event-handler attributes through the custom [[link]] syntax, causing stored cross-site scripting when another user opens the description or information panel in the Flow list. This issue is fixed in version 1.3.24.
Exploitation Scenario
An attacker with low-level access to Kestra (e.g., a compromised developer account or a malicious contractor with flow-edit rights) crafts a flow description using the custom `[[link]]` syntax, embedding a JavaScript event-handler attribute (e.g., `onerror`/`onclick`) that exfiltrates cookies or auth tokens to an attacker-controlled endpoint. The attacker saves the flow and waits. When an admin or higher-privileged operator opens the Flow list or clicks into the flow's info panel to review pipeline status, the browser renders the unsanitized Markdown and executes the injected script in the victim's authenticated session, giving the attacker the victim's session credentials or the ability to perform actions (e.g., modifying other pipelines) as that higher-privileged user.
Weaknesses (CWE)
CWE-79Improper Neutralization of Input During Web Page GenerationPrimaryCWE-79Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')PrimaryCWE-79Improper Neutralization of Input During Web Page GenerationCWE-79 — Improper Neutralization of Input During Web Page Generation: The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.
- [Architecture and Design] Use a vetted library or framework that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid [REF-1482]. Examples of libraries and frameworks that make it easier to generate properly encoded output include Microsoft's Anti-XSS library, the OWASP ESAPI Encoding module, and Apache Wicket.
- [Implementation, Architecture and Design] Understand the context in which your data will be used and the encoding that will be expected. This is especially important when transmitting data between different components, or when generating outputs that can contain multiple encodings at the same time, such as web pages or multi-part mail messages. Study all expected communication protocols and data representations to determine the required encoding strategies. For any data that will be output to another web page, especially any data that was received from external inputs, use the appropriate encoding on all non-alphanumeric characters. Parts of the same output document may require different encodings, which will vary depending on whether the output is in the: etc. Note that HTML Entity Encoding is only appropriate for the HTML body. Consult the XSS Prevention Cheat Sheet [REF-724] for more details on the types of encoding and escaping that are needed. HTML body Element attributes (such as src="XYZ") URIs JavaScript sections Casca
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:NReferences
Timeline
Related Vulnerabilities
CVE-2024-1315210.0Mobuy Panel: SQLi allows unauthenticated DB takeover
Same package: panelCVE-2026-528559.9Pterodactyl Wings: egg template leaks daemon secrets
Same package: panelCVE-2026-541589.9SiYuan: XSS→RCE via workspace sync in Electron app
Same package: panelCVE-2026-477449.9Shopper: RBAC bypass allows full admin takeover
Same package: panelCVE-2026-556349.9Pimcore: DataObject field-name injection → RCE
Same package: panel