CVE-2026-15920

Potential cross-site scripting via URLField values in the admin

State
Published
Severity
5.1 Medium
Published
Aug 4, 2026
Updated
Aug 4, 2026
Reserved
Jul 15, 2026

Read the record on cve.org

Description

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.

Scores

CVSSScoreVectorSource
4.05.1 MediumCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:NDSF
3.16.1 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:NDSF

Weaknesses

  • CWE-83 Improper Neutralization of Script in Attributes in a Web Page

Affected Products

ProductVersions
Djangodjangoproject
  • 6.0 to before 6.0.8Affected
  • 6.0.8Not affected
  • 5.2 to before 5.2.17Affected
  • 5.2.17Not affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.