CVE-2019-19118
Django allows unintended model editing
Django 2.1 before 2.1.15 and 2.2 before 2.2.8 allows unintended model editing. A Django model admin displaying inline related models, where the user has view-only permissions to a parent model but edit permissions to the inline model, would be presented with an editing UI, allowing POST requests, for updating the inline model. Directly editing the view-only parent model was not possible, but the parent model's save() method was called, triggering potential side effects, and causing pre and post-save signal handlers to be invoked. (To resolve this, the Django admin is adjusted to require edit permissions on the parent model in order for inline models to be editable.)
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
NVD Score used
6.5
Django 2.1 before 2.1.15 and 2.2 before 2.2.8 allows unintended model editing. A Django model admin displaying inline related models, where the user has view-only permissions to a parent model but edit permissions to the inline model, would be presented with an editing UI, allowing POST requests, for updating the inline model. Directly editing the view-only parent model was not possible, but the parent model's save() method was called, triggering potential side effects, and causing pre and post-save signal handlers to be invoked. (To resolve this, the Django admin is adjusted to require edit permissions on the parent model in order for inline models to be editable.)
- Record
CVE-2019-19118- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N - CVSS 2.0
- 4.0 Medium
AV:N/AC:L/Au:S/C:N/I:P/A:N - Weakness
- CWE-276
- Updated
- 2026-11-02
CVE List No score
Django 2.1 before 2.1.15 and 2.2 before 2.2.8 allows unintended model editing. A Django model admin displaying inline related models, where the user has view-only permissions to a parent model but edit permissions to the inline model, would be presented with an editing UI, allowing POST requests, for updating the inline model. Directly editing the view-only parent model was not possible, but the parent model's save() method was called, triggering potential side effects, and causing pre and post-save signal handlers to be invoked. (To resolve this, the Django admin is adjusted to require edit permissions on the parent model in order for inline models to be editable.)
- Record
CVE-2019-19118- Updated
- 2026-11-02
EUVDEUVD-2019-0039 No score
Django 2.1 before 2.1.15 and 2.2 before 2.2.8 allows unintended model editing. A Django model admin displaying inline related models, where the user has view-only permissions to a parent model but edit permissions to the inline model, would be presented with an editing UI, allowing POST requests, for updating the inline model. Directly editing the view-only parent model was not possible, but the parent model's save() method was called, triggering potential side effects, and causing pre and post-save signal handlers to be invoked. (To resolve this, the Django admin is adjusted to require edit permissions on the parent model in order for inline models to be editable.)
- Record
EUVD-2019-0039- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-hvmf-r92r-27hr
7.1
Django allows unintended model editing
Django 2.1 before 2.1.15 and 2.2 before 2.2.8 allows unintended model editing. A Django model admin displaying inline related models, where the user has view-only permissions to a parent model but edit permissions to the inline model, would be presented with an editing UI, allowing POST requests, for updating the inline model. Directly editing the view-only parent model was not possible, but the parent model's save() method was called, triggering potential side effects, and causing pre and post-save signal handlers to be invoked. (To resolve this, the Django admin is adjusted to require edit permissions on the parent model in order for inline models to be editable.)
- Record
GHSA-hvmf-r92r-27hr- CVSS 4.0
- 7.1 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N - CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-276
- Updated
- 2026-11-02
OSV
6.5
Django 2.1 before 2.1.15 and 2.2 before 2.2.8 allows unintended model editing. A Django model admin displaying inline related models, where the user has view-only permissions to a parent model but edit permissions to the inline model, would be presented with an editing UI, allowing POST requests, for updating the inline model. Directly editing the view-only parent model was not possible, but the parent model's save() method was called, triggering potential side effects, and causing pre and post-save signal handlers to be invoked. (To resolve this, the Django admin is adjusted to require edit permissions on the parent model in order for inline models to be editable.)
- Record
CVE-2019-19118- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
OSVDEBIAN-CVE-2019-19118
6.5
Django 2.1 before 2.1.15 and 2.2 before 2.2.8 allows unintended model editing. A Django model admin displaying inline related models, where the user has view-only permissions to a parent model but edit permissions to the inline model, would be presented with an editing UI, allowing POST requests, for updating the inline model. Directly editing the view-only parent model was not possible, but the parent model's save() method was called, triggering potential side effects, and causing pre and post-save signal handlers to be invoked. (To resolve this, the Django admin is adjusted to require edit permissions on the parent model in order for inline models to be editable.)
- Record
DEBIAN-CVE-2019-19118- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
Show 9 moreShow less
OSVGHSA-hvmf-r92r-27hr
7.1
Django allows unintended model editing
Django 2.1 before 2.1.15 and 2.2 before 2.2.8 allows unintended model editing. A Django model admin displaying inline related models, where the user has view-only permissions to a parent model but edit permissions to the inline model, would be presented with an editing UI, allowing POST requests, for updating the inline model. Directly editing the view-only parent model was not possible, but the parent model's save() method was called, triggering potential side effects, and causing pre and post-save signal handlers to be invoked. (To resolve this, the Django admin is adjusted to require edit permissions on the parent model in order for inline models to be editable.)
- Record
GHSA-hvmf-r92r-27hr- CVSS 4.0
- 7.1 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N - CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-276
- Updated
- 2026-11-02
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-2019-15 No score
Django 2.1 before 2.1.15 and 2.2 before 2.2.8 allows unintended model editing. A Django model admin displaying inline related models, where the user has view-only permissions to a parent model but edit permissions to the inline model, would be presented with an editing UI, allowing POST requests, for updating the inline model. Directly editing the view-only parent model was not possible, but the parent model's save() method was called, triggering potential side effects, and causing pre and post-save signal handlers to be invoked. (To resolve this, the Django admin is adjusted to require edit permissions on the parent model in order for inline models to be editable.)
- Record
PYSEC-2019-15- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
djangoPyPI |
2.1 up to 2.1.15 | 2.1.15 |
djangoPyPI |
2.2 up to 2.2.8 | 2.2.8 |
python-djangoDebian:12 |
before 2:2.2.8-1 | 2:2.2.8-1 |
python-djangoDebian:13 |
before 2:2.2.8-1 | 2:2.2.8-1 |
python-djangoDebian:14 |
before 2:2.2.8-1 | 2:2.2.8-1 |
djangoPyPI |
2.1 up to 2.1.15, plus listed versions 2.1.12.1.102.1.112.1.122.1.13 Show 8 moreShow less2.1.142.1.22.1.32.1.42.1.52.1.72.1.82.1.9 |
2.1.15 |
djangoPyPI |
2.2 up to 2.2.8, plus listed versions 2.2.12.2.22.2.32.2.42.2.52.2.62.2.7 |
2.2.8 |
djangoPyPI |
2.1 up to 2.1.15, 2.2 up to 2.2.8, plus listed versions 2.1.12.1.22.1.32.1.42.1.5 Show 15 moreShow less2.1.72.1.82.1.92.1.102.1.112.1.122.1.132.1.142.2.12.2.22.2.32.2.42.2.52.2.62.2.7 |
2.1.152.2.8 |
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 |
Show 5 moreShow less
| Package | Affected | Fixed |
|---|---|---|
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-2019-19118 is a medium vulnerability (CVSS 6.5) in Djangoproject Django, published December 2, 2019. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.67%, the 76th percentile. Fixed in django 2.1.15.
References
docs.djangoproject.com/en/dev/releases/security
openwall.com/lists/oss-security/2019/12/02/1
groups.google.com/forum
djangoproject.com/weblog/2019/dec/02/security-releases
security.netapp.com/advisory/ntap-20191217-0003
lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/6R4HD22PVEVQ45H2JA2NXH443AYJOPL5
Show 102 moreShow less
security.gentoo.org/glsa/202004-17
nvd.nist.gov/vuln/detail/CVE-2019-19118
github.com/django/django/commit/103ebe2b5ff1b2614b85a52c239f471904d26244
github.com/django/django/commit/36f580a17f0b3cb087deadf3b65eea024f479c21
lists.fedoraproject.org/archives/list/[email protected]/message/6R4HD22PVEVQ45H2JA2NXH443AYJOPL5
github.com/advisories/GHSA-hvmf-r92r-27hr
github.com/pypa/advisory-database/tree/main/vulns/django/PYSEC-2019-15.yaml
security-tracker.debian.org/tracker/CVE-2019-19118
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