CVE-2026-61597 djust is vulnerable to stored/reflected XSS via javascript: URLs in built-in component template tags

Medium 5.1 Published Updated
Exploited in the wild
Not known
Fix
Available

What is CVE-2026-61597?

CVE-2026-61597 is a medium-severity vulnerability in djust-org djust, published on 16 Sep 2026.

Official description

djust provides Phoenix LiveView-style reactive server-side rendering for Django with Rust-powered performance. Prior to version 1.0.7, many djust built-in component template tags (`djust.components.templatetags.*`) render a developer/user-supplied URL into an `href` / `action` attribute, HTML-escaping it with `conditional_escape` but never validating the URL scheme. HTML escaping prevents attribute breakout but does not neutralize a `javascript:` URI (which needs no escapable characters), so a URL value of `javascript:alert(document.cookie)` lands verbatim in `<a href="javascript:alert(document.cookie)">` and executes in the victim's session on click. Version 1.0.7 contains a fix. As a workaround, do not pass user-controllable URLs to the affected built-in component tags; pre-validate URL schemes in application code before binding them to component arguments.

Weakness: CWE-79

Which versions are affected by CVE-2026-61597?

3 open source packages ship an affected version, including djust.

PackageAffectedFixed in
djust PyPIAll versions1.0.7
djust PyPIAll versions1.0.7
djust PyPIAll versions1.0.7

How do I fix CVE-2026-61597?

Upgrade djust to 1.0.7 or later.

Is CVE-2026-61597 being exploited?

There is no known exploitation of CVE-2026-61597 in the wild and no public exploit code.

Sources

Also known as GHSA-4mf4-73j6-mvrw, PYSEC-2026-4037.

Is CVE-2026-61597 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free