CVE-2026-54889 Unsanitized URL schemes in MDEx Quill Delta output allow javascript: injection (XSS)
Attackers can inject JavaScript via unsanitized URL schemes in Markdown links, leading to XSS when rendered by downstream clients.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- A user has to click or open something
- Fix
- Available
What is CVE-2026-54889?
CVE-2026-54889 is a medium-severity cross-site scripting vulnerability in leandrocp mdex, published on 29 Jun 2026. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.
Official description
Improper Neutralization of Input During Web Page Generation (XSS) vulnerability in leandrocp mdex allows cross-site scripting via unsanitized URL schemes in Quill Delta output.
'Elixir.MDEx':to_delta/2 converts Markdown into a Quill Delta. 'Elixir.MDEx.DeltaConverter':default_convert_node/3 in lib/mdex/delta_converter.ex copies the URL of a link, wikilink, or image node directly from the parsed Markdown into the Delta "link" or "image" attribute without applying a scheme allowlist or any normalization.
An attacker who controls the Markdown text can supply a javascript: URL (for example [click](javascript:alert(document.cookie))) that survives verbatim into the Delta attribute. When the Delta is rendered to HTML by a downstream renderer (such as quill-delta-to-html or the Quill client), the attribute becomes an <a href> or <img src>, and the javascript: scheme executes in the browser of anyone who views the rendered content. The link and wikilink cases are the strongest vectors because javascript: in an href executes on click; the image case is lower impact because javascript: in <img src> generally does not execute in modern browsers.
This issue affects mdex: from 0.8.3 before 0.13.2.
Weakness: CWE-79
Which versions are affected by CVE-2026-54889?
1 open source package ship an affected version, including mdex.
| Package | Affected | Fixed in |
|---|---|---|
mdex Hex | From 0.8.3 | 0.13.2 |
How do I fix CVE-2026-54889?
Upgrade mdex to 0.13.2 or later.
Escape output for the context it lands in and set a strict Content Security Policy. Upgrading the affected component is the real fix. More about Cross-site scripting.
Is CVE-2026-54889 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-54889 exists.
Sources
Also known as EEF-CVE-2026-54889, GHSA-4383-7xfp-gpph.