CVE-2018-16984
Django allows unprivileged users to read the password hashes of arbitrary accounts
An issue was discovered in Django 2.1 before 2.1.2, in which unprivileged users can read the password hashes of arbitrary accounts. The read-only password widget used by the Django Admin to display an obfuscated password hash was bypassed if a user has only the "view" permission (new in Django 2.1), resulting in display of the entire password hash to those users. This may result in a vulnerability for sites with legacy user accounts using insecure hashes.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- High
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
NVD Score used
4.9
An issue was discovered in Django 2.1 before 2.1.2, in which unprivileged users can read the password hashes of arbitrary accounts. The read-only password widget used by the Django Admin to display an obfuscated password hash was bypassed if a user has only the "view" permission (new in Django 2.1), resulting in display of the entire password hash to those users. This may result in a vulnerability for sites with legacy user accounts using insecure hashes.
- Record
CVE-2018-16984- CVSS 3.0
- 4.9 Medium
CVSS:3.0/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N - CVSS 2.0
- 4.0 Medium
AV:N/AC:L/Au:S/C:P/I:N/A:N - Weakness
- CWE-522
- Updated
- 2026-11-02
CVE List No score
An issue was discovered in Django 2.1 before 2.1.2, in which unprivileged users can read the password hashes of arbitrary accounts. The read-only password widget used by the Django Admin to display an obfuscated password hash was bypassed if a user has only the "view" permission (new in Django 2.1), resulting in display of the entire password hash to those users. This may result in a vulnerability for sites with legacy user accounts using insecure hashes.
- Record
CVE-2018-16984- Updated
- 2026-11-02
EUVDEUVD-2018-0038 No score
An issue was discovered in Django 2.1 before 2.1.2, in which unprivileged users can read the password hashes of arbitrary accounts. The read-only password widget used by the Django Admin to display an obfuscated password hash was bypassed if a user has only the "view" permission (new in Django 2.1), resulting in display of the entire password hash to those users. This may result in a vulnerability for sites with legacy user accounts using insecure hashes.
- Record
EUVD-2018-0038- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-6mx3-3vqg-hpp2
6.9
Django allows unprivileged users to read the password hashes of arbitrary accounts
An issue was discovered in Django 2.1 before 2.1.2, in which unprivileged users can read the password hashes of arbitrary accounts. The read-only password widget used by the Django Admin to display an obfuscated password hash was bypassed if a user has only the "view" permission (new in Django 2.1), resulting in display of the entire password hash to those users. This may result in a vulnerability for sites with legacy user accounts using insecure hashes.
- Record
GHSA-6mx3-3vqg-hpp2- CVSS 4.0
- 6.9 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N - CVSS 3.0
- 4.9 Medium
CVSS:3.0/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-522
- Updated
- 2026-11-02
OSV
4.9
An issue was discovered in Django 2.1 before 2.1.2, in which unprivileged users can read the password hashes of arbitrary accounts. The read-only password widget used by the Django Admin to display an obfuscated password hash was bypassed if a user has only the "view" permission (new in Django 2.1), resulting in display of the entire password hash to those users. This may result in a vulnerability for sites with legacy user accounts using insecure hashes.
- Record
CVE-2018-16984- CVSS 3.0
- 4.9 Medium
CVSS:3.0/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
OSVGHSA-6mx3-3vqg-hpp2
6.9
Django allows unprivileged users to read the password hashes of arbitrary accounts
An issue was discovered in Django 2.1 before 2.1.2, in which unprivileged users can read the password hashes of arbitrary accounts. The read-only password widget used by the Django Admin to display an obfuscated password hash was bypassed if a user has only the "view" permission (new in Django 2.1), resulting in display of the entire password hash to those users. This may result in a vulnerability for sites with legacy user accounts using insecure hashes.
- Record
GHSA-6mx3-3vqg-hpp2- CVSS 4.0
- 6.9 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N - CVSS 3.0
- 4.9 Medium
CVSS:3.0/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-522
- Updated
- 2026-11-02
Show 8 moreShow less
OSVopenSUSE-SU-2024:11205-1 No score
python36-Django-3.2.7-2.3 on GA media
These are all security issues fixed in the python36-Django-3.2.7-2.3 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:11205-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:13887-1 No score
python310-Django-4.2.11-2.1 on GA media
These are all security issues fixed in the python310-Django-4.2.11-2.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:13887-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:14208-1 No score
python310-Django4-4.2.14-1.1 on GA media
These are all security issues fixed in the python310-Django4-4.2.14-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:14208-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:10005-1 No score
python312-Django6-6.0-1.1 on GA media
These are all security issues fixed in the python312-Django6-6.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:10005-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:11235-1 No score
python313-Django4-4.2.30-4.1 on GA media
These are all security issues fixed in the python313-Django4-4.2.30-4.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11235-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:11248-1 No score
python313-Django-5.2.16-1.1 on GA media
These are all security issues fixed in the python313-Django-5.2.16-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11248-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:11270-1 No score
python313-Django5-5.2.16-1.1 on GA media
These are all security issues fixed in the python313-Django5-5.2.16-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11270-1- Updated
- 2026-11-02
OSVPYSEC-2018-3 No score
An issue was discovered in Django 2.1 before 2.1.2, in which unprivileged users can read the password hashes of arbitrary accounts. The read-only password widget used by the Django Admin to display an obfuscated password hash was bypassed if a user has only the "view" permission (new in Django 2.1), resulting in display of the entire password hash to those users. This may result in a vulnerability for sites with legacy user accounts using insecure hashes.
- Record
PYSEC-2018-3- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
djangoPyPI |
2.1 up to 2.1.2 | 2.1.2 |
djangoPyPI |
2.1 up to 2.1.2, plus listed versions 2.1.1 |
2.1.2 |
python-DjangoopenSUSE:Tumbleweed From an advisory covering 30 CVEs |
before 3.2.7-2.3 | 3.2.7-2.3 |
python-DjangoopenSUSE:Tumbleweed From an advisory covering 30 CVEs |
before 4.2.11-2.1 | 4.2.11-2.1 |
python-Django4openSUSE:Tumbleweed From an advisory covering 51 CVEs |
before 4.2.14-1.1 | 4.2.14-1.1 |
python-Django6openSUSE:Tumbleweed From an advisory covering 70 CVEs |
before 6.0-1.1 | 6.0-1.1 |
python-Django4openSUSE:Tumbleweed From an advisory covering 59 CVEs |
before 4.2.30-4.1 | 4.2.30-4.1 |
python-DjangoopenSUSE:Tumbleweed From an advisory covering 49 CVEs |
before 5.2.16-1.1 | 5.2.16-1.1 |
python-Django5openSUSE:Tumbleweed From an advisory covering 93 CVEs |
before 5.2.16-1.1 | 5.2.16-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-2018-16984 is a medium vulnerability (CVSS 4.9) in Djangoproject Django, published October 2, 2018. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 2.05%, the 81st percentile. Fixed in django 2.1.2.
References
djangoproject.com/weblog/2018/oct/01/security-release
securitytracker.com/id/1041749
security.netapp.com/advisory/ntap-20190502-0009
nvd.nist.gov/vuln/detail/CVE-2018-16984
github.com/advisories/GHSA-6mx3-3vqg-hpp2
web.archive.org/web/20200517123022/http://www.securitytracker.com/id/1041749
Show 96 moreShow less
github.com/django/django/commit/bf39978a53f117ca02e9a0c78b76664a41a54745
github.com/pypa/advisory-database/tree/main/vulns/django/PYSEC-2018-3.yaml
github.com/django/django
suse.com/security/cve/CVE-2015-3982
suse.com/security/cve/CVE-2015-5145
suse.com/security/cve/CVE-2015-5963
suse.com/security/cve/CVE-2016-7401
suse.com/security/cve/CVE-2017-12794
suse.com/security/cve/CVE-2017-7233
suse.com/security/cve/CVE-2017-7234
suse.com/security/cve/CVE-2018-16984
suse.com/security/cve/CVE-2018-6188
suse.com/security/cve/CVE-2018-7536
suse.com/security/cve/CVE-2018-7537
suse.com/security/cve/CVE-2019-11358
suse.com/security/cve/CVE-2019-12308
suse.com/security/cve/CVE-2019-12781
suse.com/security/cve/CVE-2019-14232
suse.com/security/cve/CVE-2019-19118
suse.com/security/cve/CVE-2019-19844
suse.com/security/cve/CVE-2019-3498
suse.com/security/cve/CVE-2019-6975
suse.com/security/cve/CVE-2020-13254
suse.com/security/cve/CVE-2020-13596
suse.com/security/cve/CVE-2020-24583
suse.com/security/cve/CVE-2020-24584
suse.com/security/cve/CVE-2020-7471
suse.com/security/cve/CVE-2020-9402
suse.com/security/cve/CVE-2021-31542
suse.com/security/cve/CVE-2021-32052
suse.com/security/cve/CVE-2021-33203
suse.com/security/cve/CVE-2021-33571
suse.com/security/cve/CVE-2021-35042
suse.com/security/cve/CVE-2021-45115
suse.com/security/cve/CVE-2021-45452
suse.com/security/cve/CVE-2022-22818
suse.com/security/cve/CVE-2022-23833
suse.com/security/cve/CVE-2022-28346
suse.com/security/cve/CVE-2022-28347
suse.com/security/cve/CVE-2022-34265
suse.com/security/cve/CVE-2022-36359
suse.com/security/cve/CVE-2022-41323
suse.com/security/cve/CVE-2023-23969
suse.com/security/cve/CVE-2023-24580
suse.com/security/cve/CVE-2023-31047
suse.com/security/cve/CVE-2023-36053
suse.com/security/cve/CVE-2023-41164
suse.com/security/cve/CVE-2023-43665
suse.com/security/cve/CVE-2024-24680
suse.com/security/cve/CVE-2024-27351
suse.com/security/cve/CVE-2024-38875
suse.com/security/cve/CVE-2024-39329
suse.com/security/cve/CVE-2024-39330
suse.com/security/cve/CVE-2024-39614
suse.com/security/cve/CVE-2024-41989
suse.com/security/cve/CVE-2024-41990
suse.com/security/cve/CVE-2024-41991
suse.com/security/cve/CVE-2024-42005
suse.com/security/cve/CVE-2024-45230
suse.com/security/cve/CVE-2024-45231
suse.com/security/cve/CVE-2024-53907
suse.com/security/cve/CVE-2024-53908
suse.com/security/cve/CVE-2024-56374
suse.com/security/cve/CVE-2025-13372
suse.com/security/cve/CVE-2025-26699
suse.com/security/cve/CVE-2025-27556
suse.com/security/cve/CVE-2025-32873
suse.com/security/cve/CVE-2025-48432
suse.com/security/cve/CVE-2025-57833
suse.com/security/cve/CVE-2025-59681
suse.com/security/cve/CVE-2025-59682
suse.com/security/cve/CVE-2025-64459
suse.com/security/cve/CVE-2025-64460
suse.com/security/cve/CVE-2026-48588
suse.com/security/cve/CVE-2026-53877
suse.com/security/cve/CVE-2026-53878
suse.com/security/cve/CVE-2025-13473
suse.com/security/cve/CVE-2025-14550
suse.com/security/cve/CVE-2026-1207
suse.com/security/cve/CVE-2026-1285
suse.com/security/cve/CVE-2026-1287
suse.com/security/cve/CVE-2026-1312
suse.com/security/cve/CVE-2026-25674
suse.com/security/cve/CVE-2026-33033
suse.com/security/cve/CVE-2026-33034
suse.com/security/cve/CVE-2026-35192
suse.com/security/cve/CVE-2026-35193
suse.com/security/cve/CVE-2026-3902
suse.com/security/cve/CVE-2026-4277
suse.com/security/cve/CVE-2026-4292
suse.com/security/cve/CVE-2026-48587
suse.com/security/cve/CVE-2026-5766
suse.com/security/cve/CVE-2026-6873
suse.com/security/cve/CVE-2026-6907
suse.com/security/cve/CVE-2026-7666
suse.com/security/cve/CVE-2026-8404