CVE-2021-46898
Django Grappelli Open Redirect vulnerability
views/switch.py in django-grappelli (aka Django Grappelli) before 2.15.2 attempts to prevent external redirection with startswith("/") but this does not consider a protocol-relative URL (e.g., //example.com) attack.
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
views/switch.py in django-grappelli (aka Django Grappelli) before 2.15.2 attempts to prevent external redirection with startswith("/") but this does not consider a protocol-relative URL (e.g., //example.com) attack.
- Record
CVE-2021-46898- 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-601
- Updated
- 2026-11-02
CVE List No score
views/switch.py in django-grappelli (aka Django Grappelli) before 2.15.2 attempts to prevent external redirection with startswith("/") but this does not consider a protocol-relative URL (e.g., //example.com) attack.
- Record
CVE-2021-46898- Updated
- 2026-11-02
EUVDEUVD-2023-0062 No score
views/switch.py in django-grappelli (aka Django Grappelli) before 2.15.2 attempts to prevent external redirection with startswith("/") but this does not consider a protocol-relative URL (e.g., //example.com) attack.
- Record
EUVD-2023-0062- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-9x43-5qcq-h79q
5.3
Django Grappelli Open Redirect vulnerability
views/switch.py in django-grappelli (aka Django Grappelli) before 2.15.2 attempts to prevent external redirection with startswith("/") but this does not consider a protocol-relative URL (e.g., //example.com) attack.
- Record
GHSA-9x43-5qcq-h79q- 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-601
- Updated
- 2026-11-02
OSV
6.1
views/switch.py in django-grappelli (aka Django Grappelli) before 2.15.2 attempts to prevent external redirection with startswith("/") but this does not consider a protocol-relative URL (e.g., //example.com) attack.
- Record
CVE-2021-46898- 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
OSVGHSA-9x43-5qcq-h79q
5.3
Django Grappelli Open Redirect vulnerability
views/switch.py in django-grappelli (aka Django Grappelli) before 2.15.2 attempts to prevent external redirection with startswith("/") but this does not consider a protocol-relative URL (e.g., //example.com) attack.
- Record
GHSA-9x43-5qcq-h79q- 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-601
- Updated
- 2026-11-02
OSVopenSUSE-SU-2023:0384-1 No score
Security update for python-django-grappelli
This update for python-django-grappelli fixes the following issues:
Update to 2.14.4:
- CVE-2021-46898: Fixed views/switch.py vulnerable to protocol-relative URL attacks (boo#1216481)
- Fixed: Redirect with switch user.
- Improved: Remove extra filtering in AutocompleteLookup.
- Improved: Added import statement with URLs for quickstart docs.
- Improved: Added additional blocks with inlines to allow override.
- Fixed: Compatibility with Django 3.1.
- Fixed: Docs about adding Grappelli documentation URLS.
- Record
openSUSE-SU-2023:0384-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:0017-1 No score
Security update for python-django-grappelli
This update for python-django-grappelli fixes the following issues:
Update to 2.14.4:
- CVE-2021-46898: Fixed views/switch.py vulnerable to protocol-relative URL attacks (boo#1216481)
- Fixed: Redirect with switch user.
- Improved: Remove extra filtering in AutocompleteLookup.
- Improved: Added import statement with URLs for quickstart docs.
- Improved: Added additional blocks with inlines to allow override.
- Fixed: Compatibility with Django 3.1.
- Fixed: Docs about adding Grappelli documentation URLS.
- Record
openSUSE-SU-2024:0017-1- Updated
- 2026-11-02
OSVPYSEC-2023-211 No score
views/switch.py in django-grappelli (aka Django Grappelli) before 2.15.2 attempts to prevent external redirection with startswith("/") but this does not consider a protocol-relative URL (e.g., //example.com) attack.
- Record
PYSEC-2023-211- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
django-grappelliPyPI |
before 2.15.2 | 2.15.2 |
django-grappelliPyPI |
before 2.15.2, plus listed versions 1.32.12.1.12.10.12.10.2 Show 45 moreShow less2.10.32.10.42.11.12.11.22.12.12.12.22.12.32.12.42.13.12.13.22.13.32.13.42.14.12.14.22.14.32.14.42.15.12.22.32.3.12.3.22.3.32.3.42.3.52.3.62.3.72.3.82.3.92.4.02.4.12.4.102.4.112.4.122.4.22.4.32.4.42.4.52.4.62.4.72.4.82.4.92.5.02.5.12.5.22.5.3 |
2.15.2 |
django-grappelliPyPI |
before 2.15.2, plus listed versions 1.32.12.1.12.10.12.10.2 Show 45 moreShow less2.10.32.10.42.11.12.11.22.12.12.12.22.12.32.12.42.13.12.13.22.13.32.13.42.14.12.14.22.14.32.14.42.15.12.22.32.3.12.3.22.3.32.3.42.3.52.3.62.3.72.3.82.3.92.4.02.4.12.4.102.4.112.4.122.4.22.4.32.4.42.4.52.4.62.4.72.4.82.4.92.5.02.5.12.5.22.5.3 |
2.15.2 |
python-django-grappelliSUSE:Package Hub 15 SP4 |
before 2.14.4-bp154.2.3.1 | 2.14.4-bp154.2.3.1 |
python-django-grappelliopenSUSE:Leap 15.4 |
before 2.14.4-bp154.2.3.1 | 2.14.4-bp154.2.3.1 |
python-django-grappelliSUSE:Package Hub 15 SP5 |
before 2.14.4-bp155.3.3.1 | 2.14.4-bp155.3.3.1 |
python-django-grappelliopenSUSE:Leap 15.5 |
before 2.14.4-bp155.3.3.1 | 2.14.4-bp155.3.3.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| 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-2021-46898 is a medium vulnerability (CVSS 6.1) in Vonautomatisch Django Grappelli, published October 22, 2023. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.56%, the 46th percentile. Fixed in django-grappelli 2.15.2.
References
github.com/sehmaschine/django-grappelli/issues/975
github.com/sehmaschine/django-grappelli/pull/976
github.com/sehmaschine/django-grappelli/commit/4ca94bcda0fa2720594506853d85e00c8212968f
github.com/sehmaschine/django-grappelli/compare/2.15.1...2.15.2
nvd.nist.gov/vuln/detail/CVE-2021-46898
github.com/pypa/advisory-database/tree/main/vulns/django-grappelli/PYSEC-2023-211.yaml
Show 6 moreShow less
github.com/advisories/GHSA-9x43-5qcq-h79q
github.com/sehmaschine/django-grappelli
lists.opensuse.org/archives/list/[email protected]/thread/FVC472DTXM3I3SVFJZ3UKZVVBMB6XYMZ
bugzilla.suse.com/1216481
suse.com/security/cve/CVE-2021-46898
lists.opensuse.org/archives/list/[email protected]/thread/3GF4HWC4HAGFXA56AYL7TL7B3KA2SM45
Left out here: 33 versions. The JSON record has them.