# CVE-2026-55839: Kestra stored XSS via custom Markdown link attribute injection

Source: https://junglewise.ai/threats/cve-2026-55839-kestra-stored-xss-via-custom-markdown-link-attribute-injection  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-08-18. Updated: 2026-09-25  
License: CC BY 4.0 with a link back

CVE-2026-55839 · Severity: high · CVSS 8.7 · Published 2026-08-18

Kestra's custom Markdown parser for Flow descriptions fails to validate HTML attributes before rendering them into the page. An attacker with permission to create or edit a Flow can inject malicious JavaScript event handlers (like onclick or onmouseover) that execute when other users view the Flow description. This allows privilege escalation in multi-user deployments where less-privileged authors can compromise more-privileged users.

Technologies: [Kestra](https://junglewise.ai/threats/technologies/kestra). Vendors: [Kestra](https://junglewise.ai/threats/vendors/kestra), [Maven](https://junglewise.ai/threats/vendors/maven).

## Quick answers

**Is CVE-2026-55839 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-55839 being exploited in the wild.

**How severe is CVE-2026-55839?** High severity, with a CVSS score of 8.7, published 18 August 2026.

**Which products and versions are affected?** Kestra < 1.3.24; io.kestra:kestra (Maven) < 1.3.24, ECOSYSTEM:introduced=0,fixed=1.3.24.

**Is there a fix for CVE-2026-55839?** Yes. io.kestra:kestra (Maven): upgrade to 1.3.24 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-55839 attacked?** It is attacked over the network, in a web application.

**Am I affected by CVE-2026-55839?** Check whether you run Kestra or io.kestra:kestra (Maven) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- io.kestra:kestra (Maven): upgrade to 1.3.24 or later

  ```sh
  # set io.kestra:kestra to 1.3.24 in your pom.xml or build.gradle
  ```


## Technical details

The vulnerability exists in Kestra's custom Markdown link plugin (ui/src/utils/markdown_plugins/link.ts) which converts [[link ...]] syntax into HTML elements. The vulnerable code directly concatenates attacker-controlled attributes into an HTML string without sanitization: `const attrs = token.attrs ? token.attrs.map(([name, value]) => `${name}="${value}"`).join("") : ""; return \`<router-md ${attrs}>\`;`. This allows injection of event-handler attributes (onclick, onmouseover, etc.) and dangerous styling attributes. An attacker with Flow creation/edit permissions can store the malicious payload in a Flow description. When a victim user views the Flow list and opens the description panel, the JavaScript executes in the victim's browser context with the victim's privileges. The attack requires the victim to interact with the Flow description UI, but does not require Flow execution. Patch is available in version 1.3.24.

## Affected products

- Kestra Kestra < 1.3.24

## Identifiers

- CVE-2026-55839
- GHSA-34pm-923j-7wf8

## Timeline

- 2026-08-18: disclosed: Published to GitHub Advisory Database
- 2026-08-11: patched: Fixed in version 1.3.24

## References

- [https://api.github.com/users/5h1kh4r](https://api.github.com/users/5h1kh4r)
- [https://github.com/5h1kh4r](https://github.com/5h1kh4r)
- [https://api.github.com/users/5h1kh4r/gists%7B/gist_id%7D](https://api.github.com/users/5h1kh4r/gists%7B/gist_id%7D)
- [https://api.github.com/users/5h1kh4r/repos](https://api.github.com/users/5h1kh4r/repos)
- [https://avatars.githubusercontent.com/u/99708506?v=4](https://avatars.githubusercontent.com/u/99708506?v=4)
- [https://api.github.com/users/5h1kh4r/events%7B/privacy%7D](https://api.github.com/users/5h1kh4r/events%7B/privacy%7D)

## Related threats

- [Kestra Server-Side Request Forgery via Pebble http() function](https://junglewise.ai/threats/cve-2026-73247-kestra-server-side-request-forgery-via-pebble-http-function)
- [Kestra unauthenticated worker endpoint exposes task credentials](https://junglewise.ai/threats/cve-2026-73246-kestra-unauthenticated-worker-endpoint-exposes-task-credentials)
- [Kestra unauthenticated management endpoints on port 8081](https://junglewise.ai/threats/cve-2026-73245-kestra-unauthenticated-management-endpoints-on-port-8081)
- [Kestra OSS weak password hashing in BasicAuth component](https://junglewise.ai/threats/cve-2026-55069-kestra-oss-weak-password-hashing-in-basicauth-component)
- [Kestra access control bypass in previewFileFromExecution endpoint](https://junglewise.ai/threats/cve-2026-53577-kestra-access-control-bypass-in-previewfilefromexecution-endpoint)
