CVE-2020-25626
Cross-site Scripting (XSS) in Django REST Framework
A flaw was found in Django REST Framework versions before 3.12.0 and before 3.11.2. When using the browseable API viewer, Django REST Framework fails to properly escape certain strings that can come from user input. This allows a user who can control those strings to inject malicious <script> tags, leading to a cross-site-scripting (XSS) vulnerability.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Required
What an attacker can affect
- Confidentiality
- Low
- Integrity
- Low
- Availability
- None
Exploit likelihood
What each source reports
NVD Score used
6.1
A flaw was found in Django REST Framework versions before 3.12.0 and before 3.11.2. When using the browseable API viewer, Django REST Framework fails to properly escape certain strings that can come from user input. This allows a user who can control those strings to inject malicious <script> tags, leading to a cross-site-scripting (XSS) vulnerability.
- Record
CVE-2020-25626- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - CVSS 2.0
- 4.3 Medium
AV:N/AC:M/Au:N/C:N/I:P/A:N - Weakness
- CWE-20, CWE-79
- Updated
- 2026-11-02
CVE List No score
A flaw was found in Django REST Framework versions before 3.12.0 and before 3.11.2. When using the browseable API viewer, Django REST Framework fails to properly escape certain strings that can come from user input. This allows a user who can control those strings to inject malicious <script> tags, leading to a cross-site-scripting (XSS) vulnerability.
- Record
CVE-2020-25626- Weakness
- CWE-20
- Updated
- 2026-11-02
EUVDEUVD-2020-0073 No score
A flaw was found in Django REST Framework versions before 3.12.0 and before 3.11.2. When using the browseable API viewer, Django REST Framework fails to properly escape certain strings that can come from user input. This allows a user who can control those strings to inject malicious <script> tags, leading to a cross-site-scripting (XSS) vulnerability.
- Record
EUVD-2020-0073- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-fx83-3ph3-9j2q
5.3
Cross-site Scripting (XSS) in Django REST Framework
A flaw was found in Django REST Framework versions before 3.12.0 and before 3.11.2. When using the browseable API viewer, Django REST Framework fails to properly escape certain strings that can come from user input. This allows a user who can control those strings to inject malicious <script> tags, leading to a cross-site-scripting (XSS) vulnerability.
- Record
GHSA-fx83-3ph3-9j2q- CVSS 4.0
- 5.3 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N - CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Weakness
- CWE-20, CWE-79
- Updated
- 2026-11-02
OSV
6.1
A flaw was found in Django REST Framework versions before 3.12.0 and before 3.11.2. When using the browseable API viewer, Django REST Framework fails to properly escape certain strings that can come from user input. This allows a user who can control those strings to inject malicious <script> tags, leading to a cross-site-scripting (XSS) vulnerability.
- Record
CVE-2020-25626- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Updated
- 2026-11-02
OSVDEBIAN-CVE-2020-25626
6.1
A flaw was found in Django REST Framework versions before 3.12.0 and before 3.11.2. When using the browseable API viewer, Django REST Framework fails to properly escape certain strings that can come from user input. This allows a user who can control those strings to inject malicious <script> tags, leading to a cross-site-scripting (XSS) vulnerability.
- Record
DEBIAN-CVE-2020-25626- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Updated
- 2026-11-02
Show 8 moreShow less
OSVGHSA-fx83-3ph3-9j2q
5.3
Cross-site Scripting (XSS) in Django REST Framework
A flaw was found in Django REST Framework versions before 3.12.0 and before 3.11.2. When using the browseable API viewer, Django REST Framework fails to properly escape certain strings that can come from user input. This allows a user who can control those strings to inject malicious <script> tags, leading to a cross-site-scripting (XSS) vulnerability.
- Record
GHSA-fx83-3ph3-9j2q- CVSS 4.0
- 5.3 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N - CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Weakness
- CWE-20, CWE-79
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2020-25626
6.1
A flaw was found in Django REST Framework versions before 3.12.0 and before 3.11.2. When using the browseable API viewer, Django REST Framework fails to properly escape certain strings that can come from user input. This allows a user who can control those strings to inject malicious <script> tags, leading to a cross-site-scripting (XSS) vulnerability.
- Record
UBUNTU-CVE-2020-25626- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Updated
- 2026-11-02
OSVopenSUSE-SU-2021:0322-1 No score
Security update for python-djangorestframework
This update for python-djangorestframework fixes the following issues:
Update to 3.11.2
- Security: Drop urlize_quoted_links template tag in favour of Django's built-in urlize. Removes a XSS vulnerability for some kinds of content in the browsable API. (boo#1177205, CVE-2020-25626)
- update Django for APIs book to 3.0 edition
- decode base64 credentials as utf8; adjust tests
- Remove compat urls for Django < 2.0
- Record
openSUSE-SU-2021:0322-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2021:0338-1 No score
Security update for python-djangorestframework
This update for python-djangorestframework fixes the following issues:
Update to 3.11.2
- Security: Drop urlize_quoted_links template tag in favour of Django's built-in urlize. Removes a XSS vulnerability for some kinds of content in the browsable API. (boo#1177205, CVE-2020-25626)
- update Django for APIs book to 3.0 edition
- decode base64 credentials as utf8; adjust tests
- Remove compat urls for Django < 2.0
This update was imported from the openSUSE:Leap:15.2:Update update project.
- Record
openSUSE-SU-2021:0338-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:11227-1 No score
python36-djangorestframework-3.12.4-1.2 on GA media
These are all security issues fixed in the python36-djangorestframework-3.12.4-1.2 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:11227-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:13861-1 No score
python310-djangorestframework-3.15.1-1.1 on GA media
These are all security issues fixed in the python310-djangorestframework-3.15.1-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:13861-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:11571-1 No score
python313-djangorestframework-3.18.0-1.1 on GA media
These are all security issues fixed in the python313-djangorestframework-3.18.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11571-1- Updated
- 2026-11-02
OSVPYSEC-2020-263 No score
A flaw was found in Django REST Framework versions before 3.12.0 and before 3.11.2. When using the browseable API viewer, Django REST Framework fails to properly escape certain strings that can come from user input. This allows a user who can control those strings to inject malicious <script> tags, leading to a cross-site-scripting (XSS) vulnerability.
- Record
PYSEC-2020-263- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
djangorestframeworkPyPI |
before 3.11.2 | 3.11.2 |
djangorestframeworkDebian:12 |
before 3.12.1-1 | 3.12.1-1 |
djangorestframeworkDebian:13 |
before 3.12.1-1 | 3.12.1-1 |
djangorestframeworkDebian:14 |
before 3.12.1-1 | 3.12.1-1 |
djangorestframeworkDebian:10 From an advisory covering 2 CVEs |
before 3.9.0-1+deb10u1, plus listed versions 3.9.0-1 |
3.9.0-1+deb10u1 |
djangorestframeworkPyPI |
before 3.11.2, plus listed versions 0.10.1.10.2.00.2.10.2.2 Show 45 moreShow less0.2.30.2.40.3.00.3.10.3.20.3.30.4.02.0.02.0.12.0.22.1.02.1.12.1.102.1.112.1.122.1.132.1.142.1.152.1.162.1.172.1.22.1.32.1.42.1.52.1.62.1.72.1.82.1.92.2.02.2.12.2.22.2.32.2.42.2.52.2.62.2.72.3.02.3.12.3.102.3.112.3.122.3.132.3.142.3.22.3.3 |
3.11.2 |
djangorestframeworkUbuntu:16.04:LTS |
All versions, plus listed versions 2.4.3-23.3.1-13.3.2-13.3.2-2 |
None known |
djangorestframeworkUbuntu:18.04:LTS |
All versions, plus listed versions 3.4.0-23.7.7-1 |
None known |
djangorestframeworkUbuntu:20.04:LTS |
All versions, plus listed versions 3.9.0-23.10.2-1 |
None known |
djangorestframeworkUbuntu:22.04:LTS |
All versions, plus listed versions 3.12.1-13.12.4-13.12.4-23.12.4-2ubuntu13.12.4-2.1ubuntu1 |
None known |
Show 9 moreShow less
| Package | Affected | Fixed |
|---|---|---|
djangorestframeworkUbuntu:24.04:LTS |
All versions, plus listed versions 3.14.0-2 |
None known |
djangorestframeworkUbuntu:25.10 |
All versions, plus listed versions 3.15.2-23.16.0-13.16.0-1ubuntu13.16.1-1 |
None known |
djangorestframeworkUbuntu:26.10 |
All versions, plus listed versions 3.16.1-33.16.1-43.17.1+ds1-1 |
None known |
djangorestframeworkUbuntu:26.04:LTS |
All versions, plus listed versions 3.16.1-13.16.1-3 |
None known |
python-djangorestframeworkopenSUSE:Leap 15.2 |
before 3.11.2-lp152.2.3.1 | 3.11.2-lp152.2.3.1 |
python-djangorestframework-testopenSUSE:Leap 15.2 |
before 3.11.2-lp152.2.3.1 | 3.11.2-lp152.2.3.1 |
python-djangorestframeworkSUSE:Package Hub 15 SP2 |
before 3.11.2-bp152.2.3.1 | 3.11.2-bp152.2.3.1 |
python-djangorestframework-testSUSE:Package Hub 15 SP2 |
before 3.11.2-bp152.2.3.1 | 3.11.2-bp152.2.3.1 |
python-djangorestframeworkopenSUSE:Tumbleweed |
before 3.18.0-1.1 | 3.18.0-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2020-25626 is a medium vulnerability (CVSS 6.1) in Encode Django Rest Framework, published September 30, 2020. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.30%, the 70th percentile. Fixed in djangorestframework 3.11.2.
References
bugzilla.redhat.com/show_bug.cgi?id=1878635
security.netapp.com/advisory/ntap-20201016-0003
debian.org/security/2022/dsa-5186
nvd.nist.gov/vuln/detail/CVE-2020-25626
github.com/advisories/GHSA-fx83-3ph3-9j2q
github.com/pypa/advisory-database/tree/main/vulns/djangorestframework/PYSEC-2020-263.yaml
Show 8 moreShow less
security-tracker.debian.org/tracker/CVE-2020-25626
github.com/encode/django-rest-framework
ubuntu.com/security/CVE-2020-25626
cve.org/CVERecord?id=CVE-2020-25626
lists.opensuse.org/archives/list/[email protected]/thread/R3GZDKNNVOILNHAK6KSWOYM6URRERTB4
bugzilla.suse.com/1177205
suse.com/security/cve/CVE-2020-25626
lists.opensuse.org/archives/list/[email protected]/thread/7NYNAEPY3UVCIEUTPMQBXFJ42XJG7RVG
Left out here: 75 versions. The JSON record has them.