Django CMS up to 1.8.15/1.9.10/1.10.2 Host Header DEBUG DNS access control
CVSS Meta Temp Score | Current Exploit Price (≈) | CTI Interest Score |
---|---|---|
7.7 | $0-$5k | 0.00 |
A vulnerability was found in Django CMS up to 1.8.15/1.9.10/1.10.2 (Content Management System). It has been declared as critical. Affected by this vulnerability is an unknown code of the component Host Header Handler. The manipulation of the argument DEBUG
with the input value true
leads to a access control vulnerability (DNS). The CWE definition for the vulnerability is CWE-264. As an impact it is known to affect confidentiality, integrity, and availability. The summary by CVE is:
Django before 1.8.x before 1.8.16, 1.9.x before 1.9.11, and 1.10.x before 1.10.3, when settings.DEBUG is True, allow remote attackers to conduct DNS rebinding attacks by leveraging failure to validate the HTTP Host header against settings.ALLOWED_HOSTS.
The weakness was published 11/01/2016 by Aymeric Augustin as Django security releases issued: 1.10.3, 1.9.11 and 1.8.16 as confirmed news (Website). The advisory is shared at djangoproject.com. This vulnerability is known as CVE-2016-9014 since 10/25/2016. The attack can be launched remotely. The exploitation doesn't need any form of authentication. Technical details are known, but no exploit is available. MITRE ATT&CK project uses the attack technique T1068 for this issue. The advisory points out:
Older versions of Django don't validate the Host header against settings.ALLOWED_HOSTS when settings.DEBUG=True. This makes them vulnerable to a DNS rebinding attack. While Django doesn't ship a module that allows remote code execution, this is at least a cross-site scripting vector, which could be quite serious if developers load a copy of the production database in development or connect to some production services for which there's no development instance, for example. If a project uses a package like the django-debug-toolbar, then the attacker could execute arbitrary SQL, which could be especially bad if the developers connect to the database with a superuser account.
The vulnerability scanner Nessus provides a plugin with the ID 94795 (Fedora 24 : python-django (2016-3eb5a55123)), which helps to determine the existence of the flaw in a target environment. It is assigned to the family Fedora Local Security Checks and running in the context l. The commercial vulnerability scanner Qualys is able to test this issue with plugin 196612 (Ubuntu Security Notification for Python-django Vulnerabilities (USN-3115-1)).
Upgrading to version 1.8.16, 1.9.11 or 1.10.3 eliminates this vulnerability. A possible mitigation has been published immediately after the disclosure of the vulnerability. The news contains the following remark:
settings.ALLOWED_HOSTS is now validated regardless of DEBUG. For convenience, if ALLOWED_HOSTS is empty and DEBUG=True, the following variations of localhost are allowed ['localhost', '127.0.0.1', '::1']. If your local settings file has your production ALLOWED_HOSTS value, you must now omit it to get those fallback values.
The vulnerability is also documented in the vulnerability database at Tenable (94795). Similar entry is available at 93264.
Product
Type
Vendor
Name
Version
- 1.8.0
- 1.8.1
- 1.8.2
- 1.8.3
- 1.8.4
- 1.8.5
- 1.8.6
- 1.8.7
- 1.8.8
- 1.8.9
- 1.8.10
- 1.8.11
- 1.8.12
- 1.8.13
- 1.8.14
- 1.8.15
- 1.9.0
- 1.9.1
- 1.9.2
- 1.9.3
- 1.9.4
- 1.9.5
- 1.9.6
- 1.9.7
- 1.9.8
- 1.9.9
- 1.9.10
- 1.10.0
- 1.10.1
- 1.10.2
License
CPE 2.3
CPE 2.2
CVSSv4
VulDB CVSS-B Score: 🔍VulDB CVSS-BT Score: 🔍
VulDB Vector: 🔍
VulDB Reliability: 🔍
CVSSv3
VulDB Meta Base Score: 8.1VulDB Meta Temp Score: 7.9
VulDB Base Score: 8.1
VulDB Temp Score: 7.7
VulDB Vector: 🔍
VulDB Reliability: 🔍
NVD Base Score: 8.1
NVD Vector: 🔍
CVSSv2
AV | AC | Au | C | I | A |
---|---|---|---|---|---|
💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
Vector | Complexity | Authentication | Confidentiality | Integrity | Availability |
---|---|---|---|---|---|
unlock | unlock | unlock | unlock | unlock | unlock |
unlock | unlock | unlock | unlock | unlock | unlock |
unlock | unlock | unlock | unlock | unlock | unlock |
VulDB Base Score: 🔍
VulDB Temp Score: 🔍
VulDB Reliability: 🔍
NVD Base Score: 🔍
Exploiting
Name: DNSClass: Access control / DNS
CWE: CWE-264
ATT&CK: T1068
Local: No
Remote: Yes
Availability: 🔍
Status: Not defined
EPSS Score: 🔍
EPSS Percentile: 🔍
Price Prediction: 🔍
Current Price Estimation: 🔍
0-Day | unlock | unlock | unlock | unlock |
---|---|---|---|---|
Today | unlock | unlock | unlock | unlock |
Nessus ID: 94795
Nessus Name: Fedora 24 : python-django (2016-3eb5a55123)
Nessus File: 🔍
Nessus Risk: 🔍
Nessus Family: 🔍
Nessus Context: 🔍
OpenVAS ID: 840080
OpenVAS Name: Fedora Update for python-django FEDORA-2016-d4571bf555
OpenVAS File: 🔍
OpenVAS Family: 🔍
Qualys ID: 🔍
Qualys Name: 🔍
Threat Intelligence
Interest: 🔍Active Actors: 🔍
Active APT Groups: 🔍
Countermeasures
Recommended: UpgradeStatus: 🔍
Reaction Time: 🔍
0-Day Time: 🔍
Exposure Time: 🔍
Upgrade: CMS 1.8.16/1.9.11/1.10.3
Timeline
10/25/2016 🔍11/01/2016 🔍
11/01/2016 🔍
11/02/2016 🔍
11/02/2016 🔍
11/04/2016 🔍
11/15/2016 🔍
12/09/2016 🔍
05/24/2019 🔍
Sources
Advisory: Django security releases issued: 1.10.3, 1.9.11 and 1.8.16Researcher: Aymeric Augustin
Status: Confirmed
Confirmation: 🔍
CVE: CVE-2016-9014 (🔍)
OVAL: 🔍
SecurityTracker: 1037159
SecurityFocus: 94068 - Django CVE-2016-9014 Security Bypass Vulnerability
See also: 🔍
Entry
Created: 11/04/2016 10:05Updated: 05/24/2019 06:47
Changes: 11/04/2016 10:05 (80), 05/24/2019 06:47 (12)
Complete: 🔍
No comments yet. Languages: en.
Please log in to comment.