CVE-2026-15920
An issue was discovered in Django 5.2 before 5.2.17 and 6.0 before 6.0.8. `django.contrib.admin.utils.display_for_field()` renders `URLField` values as clickable links in the admin without validating the URL. A value stored with an unsafe scheme is displayed as a link on changelist and read-only admin pages, which allows cross-site scripting against staff users who click the link. Exploitation requires the unsafe value to already be stored in the database. `URLField` validation through a `ModelForm` or the admin rejects unsafe schemes, so this affects applications that persist `URLField` data without running model validation, for example through direct queryset writes, deserialization, or bulk import of untrusted input. Django would like to thank Egor Saltykov for reporting this issue.
Scoring
- Severity
- MEDIUM
- CVSS base score
- 6.1
- CVSS vector
- CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
- EPSS probability
- 0.39%
- CWE
- CWE-83
- Published
- 2026-08-04
- Last modified
- 2026-08-04
Affected products
- djangoproject Django
- djangoproject Django
- djangoproject Django
- djangoproject Django
Weakness type
Related vulnerabilities
- CVE-2026-45118 — MyBB: Contact page reflected XSS
- CVE-2026-45733 — Trilium: Stored XSS in note icon rendering leads to Remote Code Execution in Electron desktop app
- CVE-2026-62324 — Jodit has incomplete javascript: scheme normalization in sanitizeHTMLElement href check that allows link XSS
- CVE-2026-59727 — Astro: Cross-site scripting via unescaped transition:* directive values on hydrated islands
- CVE-2026-49276 — Kirby: Self cross-site scripting (self-XSS) in the writer field
- CVE-2026-58263 — Jodit Editor: Mutation XSS in jodit clean-html via a MathML/style rawtext carrier
- CVE-2026-48591 — Stored XSS via unescaped HTML attribute values in earmark
- CVE-2026-53841 — OpenClaw < 2026.5.12 - Cross-Site Scripting via Unsafe Markdown Links in Exported Session HTML