Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAttacker authenticates with Flow-edit credentials
-
DeliveryCrafts malicious Flow YAML with event-handler [[link]] payload
-
ExploitFlow description stored in Kestra backend
-
InstallVictim navigates to Flow list in browser
-
C2Victim interacts with description/info panel
-
ExecuteInjected JavaScript executes in victim's browser context
-
ImpactAttacker exfiltrates session token or performs privileged actions
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The attacker must be an authenticated Kestra user with at least Low-privilege access - specifically, permission to create or edit Flows in any namespace (CVSS PR:L reflects this requirement). The victim must navigate to the Kestra Flow list page in their browser and actively interact with the description or info panel of the malicious Flow - for example, clicking the info icon - satisfying the UI:R requirement. No special server-side configuration, non-default feature flag, or unusual deployment mode is required; the [[link]] Markdown syntax is part of Kestra's default UI rendering. Exploitation is bounded by the need for an authenticated account with Flow edit rights: unauthenticated external attackers cannot exploit this flaw. The active user interaction requirement (clicking/hovering) prevents fully automated, zero-touch exploitation but does not require meaningful social engineering beyond directing a target user to review a Flow. |
| Impact | The CVSS 8.7 High rating with S:C accurately reflects cross-boundary impact: attacker privilege is bounded to Flow edit rights (PR:L), but execution occurs in a different user's browser context, potentially targeting administrators or namespace owners. The AC:L and AV:N metrics indicate no special conditions or network positioning are required beyond authenticated access to the Kestra UI. The publicly available proof-of-concept (confirmed in the GHSA advisory) significantly lowers the exploitation bar - the attack requires only a valid Kestra account with standard Flow permissions and a victim who views the Flow list. No EPSS score was provided in the input, so probability cannot be quantified numerically; however, POC availability combined with AC:L and a meaningful C:H/I:H impact warrants treatment as actively exploitable in any multi-user Kestra deployment. Absence of a CISA KEV listing does not imply safety given the fully functional POC. The UI:R requirement is a partial mitigating factor, limiting fully automated mass exploitation. |
| Exploit ScenarioDerived | An attacker with standard Flow editor access crafts a YAML Flow whose description embeds |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 18, 2026
Stored cross-site scripting in Kestra's custom Markdown renderer (versions before 1.3.24) allows any authenticated user with Flow create or edit permissions to inject arbitrary JavaScript event-handler attributes via the platform's own [[link]] syntax, executing attacker-controlled code in the browser of any user who views the affected Flow description. The CVSS scope change (S:C) reflects that the payload crosses from the attacker's permission context into the victim's browser session, enabling session hijacking or privilege escalation against higher-privileged reviewers. A working proof-of-concept is publicly confirmed in GHSA-34pm-923j-7wf8; no active exploitation via CISA KEV is listed at time of analysis.
RemediationAI
Upgrade to Kestra v1.3.24, available at https://github.com/kestra-io/kestra/releases/tag/v1.3.24. The patch (commit 6c8e6d099ed172cbb6b003b7fb30b7bb1f8f710e, PR #16835) replaces unchecked attribute rendering in the [[link]] Markdown plugin with a strict allowlist that permits only the 'execution', 'flowId', and 'namespace' attributes, neutralizing the injection surface. If immediate upgrade is not possible, restrict Flow create and edit permissions exclusively to highly trusted users - this eliminates the attacker's ability to store the payload, at the cost of reduced collaboration. Additionally, audit all existing Flow descriptions for suspicious [[link]] entries containing on*= event-handler patterns or unusual style= attributes before or after patching to detect any pre-existing payloads. No network-level control will mitigate this vulnerability once a payload is stored, as exploitation requires only normal browser navigation by a legitimate user.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in maven, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability originates in Kestra's custom MarkdownIt plugin at ui/src/utils/markdown_plugins/link.ts, which implements a proprietary [[link ...]] syntax converting parsed tokens into <router-md> HTML elements. The vulnerable code path concatenates raw attribute name-value pairs directly into an HTML string - token.attrs.map(([name, value]) => name+'="'+value+'"').join('') - without any allowlisting or sanitization of attribute names. This enables injection of arbitrary HTML attributes including JavaScript event handlers (e.g., onmouseover, onclick). CWE-79 (Improper Neutralization of Input During Web Page Generation) is the root cause: user-controlled data from the YAML Flow description travels through the Markdown pipeline and is rendered into the DOM without encoding. The fix in PR #16835 (commit 6c8e6d0) applies a strict allowlist: attrs.filter(([name]) => ['execution','flowId','namespace'].includes(name)), eliminating the injection surface entirely. Affected components include link.ts, markdown.ts, and Markdown.vue.
Know when Kestra gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
Authenticated Flow-editor (PR:L) stores payload delivered to any reviewer (UI:R); XSS crosses browser security boundary (S:C) enabling full session compromise (C:H/I:H); no availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
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.
Executive ViewAI
Kestra versions before 1.3.24 contain a stored cross-site scripting vulnerability in the Markdown renderer that allows any authenticated user with Flow editing permissions to inject malicious JavaScript into Flow descriptions. Publicly available exploit code exists for this vulnerability. When other users view affected descriptions, the injected code executes in their browser, creating risk of session hijacking and privilege escalation-particularly dangerous for administrative users reviewing Flows.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to
Unauthenticated remote code execution in Kestra orchestration platform before 1.0.45 and 1.3.21 lets anonymous attackers
Kestra versions 1.1.10 and earlier allow authenticated users to perform cross-site scripting (XSS) attacks through the e
SQL injection in Kestra orchestration platform's flow search endpoint (GET /api/v1/main/flows/search) enables remote cod
Offline administrator password recovery in Kestra OSS (versions prior to 1.3.24) stems from its BasicAuth component stor
Arbitrary file read in Kestra orchestration platform (versions prior to 1.0.43 and 1.3.19) lets an authenticated user wi
Authenticated path traversal in Kestra's local internal-storage backend (versions prior to 1.0.45 and 1.3.23) lets any l
Cross-site scripting in Kestra orchestration platform versions up to 1.3.3 enables authenticated flow authors to inject
Path traversal in Kestra's `inputFiles` task mechanism allows remote attackers to write arbitrary files to the worker fi
Unauthorized file read in Kestra's execution preview API allows any authenticated tenant user to access output files fro
EUVD-2026-60976
GHSA-34pm-923j-7wf8
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB