CVE-2018-15632
Executive Summary
CVE-2018-15632 is an improper input validation flaw in the database creation logic of Odoo Community 11.0 and earlier, and Odoo Enterprise 11.0 and earlier. A remote, unauthenticated attacker can exploit this vulnerability to initialize an empty database on a vulnerable Odoo instance and subsequently connect to it using default credentials. Successful exploitation results in complete unauthorized access to the application layer, potentially exposing or corrupting business-critical data such as CRM records, inventory, and financial data. With a CVSS score of 8.2, this vulnerability is considered high severity, and it affects all Odoo deployments that externally expose the database creation endpoint without additional access controls.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
The vulnerability stems from improper input validation in the database creation logic of Odoo versions up to and including 11.0 (Community and Enterprise editions). The NVD description specifies that remote attackers are able to initialize an empty database on the target instance. The attack mechanism is fundamentally a configuration and access-control bypass rather than a memory-corruption or injection flaw.
Vulnerability Class: Improper Input Validation (CWE-20 family, though CWE is listed as N/A in the source data).
Attack Surface: Odoo's web-based database manager interface. In standard Odoo deployments, the database management endpoints are intended to be restricted to localhost or administrative VLANs, but many production deployments expose these endpoints to the broader network. The specific flaw allows the database creation request to succeed without proper validation of the requester's authorization or the parameters of the database initialization itself.
Mechanism at the Code Level: Insufficient technical detail is available in the provided NVD description to identify specific function names, class names, URL endpoints, or parameter structures. The attack is understood at the class level: the application fails to validate that the client is authorized to create a database, and/or fails to validate the input controlling the database initialization process. As a result, an attacker can trigger the creation of an empty Odoo database with default configuration settings.
Default Credentials Implication: After the attacker triggers the database creation, the newly initialized database contains default administrative credentials (commonly admin with a default password in Odoo's default setup). Because the database is created with default settings, the attacker can authenticate with these default credentials and gain full administrative access to the Odoo application.
Resulting Access: The attacker gains administrator-level access to the entire Odoo enterprise application stack — including all modules that will subsequently be installed and all data stored within the instance. This is a full application takeover, not a privilege escalation from an existing low-privilege account; the attacker obtains the highest privilege level available in the application.
Exploitation Scenarios
The exploitation chain is inferred from the vulnerability class and NVD description. No public PoC or exploit code is available per the provided data.
Step 1 — Reconnaissance and Target Identification: An attacker scans the internet for Odoo instances. Odoo typically listens on ports 8069 (plain HTTP) and 8072 (long-polling), and its web server fingerprint reveals the Odoo version. The attacker identifies instances running Odoo 11.0 or earlier. Open-source intelligence tools (e.g., Shodan, Censys) can be used to enumerate these services at scale.
Step 2 — Triggering the Database Creation Flaw: The attacker sends a crafted HTTP request to the database management interface. This request attempts to create a new database. The vulnerability is that the request is processed without adequate validation, allowing the database creation to succeed even though the request originates from an unauthenticated remote client. The request likely specifies a database name (potentially something innocuous) and possibly default parameters such as the administrator password or database password settings.
Step 3 — Authentication with Default Credentials: Once the empty database is initialized, the attacker connects to the Odoo web interface, selecting the newly created database. They authenticate using the default credentials that Odoo initializes into a fresh database (typically username admin with a default password). Because the database was created through the vulnerable path, the default credentials have not been changed.
Step 4 — Post-Exploitation Impact: With administrator credentials, the attacker can: (a) install and activate any of the ~500+ Odoo modules (including CRM, e-commerce, accounting, HR, manufacturing); (b) exfiltrate all data already present or imported into the instance; (c) create new administrator accounts for persistence; (d) modify system settings to redirect payment gateways or email communications; (e) use the Odoo instance as a pivot point into the internal network if the server is not properly segmented; and (f) potentially abuse Odoo's web server to host malicious content or conduct further phishing/smishing campaigns.
Note on Attack Chain Confidence: Because no public PoC exists and the NVD description lacks endpoint-level specifics, the exact HTTP request structure cannot be described. The attack chain above reflects the mechanism at the vulnerability-class level and is consistent with the description that states remote attackers "can initialize an empty database on which they can connect with default credentials."
Impact Assessment
Business Impact: This vulnerability results in full administrative takeover of the Odoo application. Odoo is an enterprise resource planning (ERP) platform; all business-critical data — customers, sales orders, invoices, product catalogs, HR records, payroll, and manufacturing data — resides within the application. A compromise means total loss of confidentiality, integrity, and availability for that data.
CVSS 8.2 Breakdown (inferred from score): The vector is not provided in the source data, but a score of 8.2 typically reflects an attack vector over the network (AV:N) with low complexity (AC:L), no privileges required (PR:N), no user interaction (UI:N), and high impact on confidentiality, integrity, and availability (C:H/I:H/A:H), likely with a scope change or a partial impact reduction (S:C or C:H/I:H/A:H with S:U) that yields the specific score of 8.2.
Affected Systems: All Odoo Community 11.0 and earlier, and Odoo Enterprise 11.0 and earlier. Any deployment that does not firewall the database management interface from untrusted networks is vulnerable.
Blast Radius: The blast radius is contained to the Odoo application itself unless the server is on a flat network. In a properly segmented environment, an attacker is limited to the application data and the host's local resources. However, many SMB deployments host Odoo on the same server as a database (PostgreSQL) and other services, expanding the blast radius to the host OS if the attacker can escape the application context (e.g., via Odoo's file upload and code execution capabilities in a later phase).
EPSS Context: With an EPSS score of 0.01170 (64.4th percentile), this vulnerability is being actively discussed and scanned, though it has not been observed in active widespread exploitation campaigns. It is trending in terms of threat actor interest and should be prioritized accordingly.
Detection Guidance
Detection rules assume signature and behavior-based monitoring of network traffic and application logs. Since no public exploit code exists, rules are built around the vulnerability mechanism: unauthorized database creation requests to Odoo and successful/failed authentication attempts using default credentials.
Sigma Rule
title: Odoo Unauthorized Database Creation Attempt
id: 2f5a0b1e-9c6e-4d3a-8f2b-6a1c9e8f4d3b
status: experimental
description: Detects attempts to create a database on Odoo instances, which may indicate exploitation of CVE-2018-15632.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2018-15632
tags:
- attack.initial-access
- attack.t1190
logsource:
product: odoo
service: web
detection:
selection_create:
event: 'database_creation_request'
http_method: 'POST'
selection_vulnerable_version:
version: '11.0*'
condition: selection_create AND selection_vulnerable_version
falsepositives:
- Legitimate database creation by authorized administrators
- Initial deployment/installation of Odoo
level: high
YARA Rule
rule Odoo_DB_Creation_CVE_2018_15632
{
meta:
author = "Valtersit Threat Intelligence"
description = "Detects Odoo database creation request payloads"
cve = "CVE-2018-15632"
date = "2024-01-01"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2018-15632"
strings:
$db_create_param = "db_name" ascii wide
$db_master_pwd = "master_pwd" ascii wide
$db_create_action = "create" ascii wide
$odoo_http_path = "/web/database/create" ascii wide
condition:
any of ($db_create_param*) and any of ($db_master_pwd*) and any of ($db_create_action*) and any of ($odoo_http_path*)
}
Suricata IDS Rule
alert http any any -> any any (msg:"ET EXPLOIT Odoo Unauthorized Database Creation Attempt (CVE-2018-15632)"; flow:established,to_server; content:"POST"; http_method; content:"/web/database/create"; http_uri; content:"db_name"; http_client_body; content:"master_pwd"; http_client_body; content:"create"; http_client_body; classtype:attempted-admin; sid:2024010101; rev:1;)
Elastic Detection
sequence by host.name with maxspan=1m
[network where event.action == "connection_attempted" and destination.port in (8069, 8072) and process.name == "odoo"]
[http where http.request.method == "POST" and http.request.uri == "/web/database/create" and http.request.body.text contains "db_name" and http.request.body.text contains "create"]
Splunk SPL Query
index=web sourcetype=access_combined_w3c uri="/web/database/create" method="POST" | stats count by src_ip, uri, useragent, _time | where count > 1
Wazuh OSSEC Rule
<group name="odoo,">
<rule id="100301" level="12">
<decoded>POST</decoded>
<url>/web/database/create</url>
<description>Odoo unauthorized database creation attempt (CVE-2018-15632)</description>
<group>attack</group>
<mitre>
<id>T1190</id>
</mitre>
</rule>
</group>
Mitigation & Patch Guidance
Patch Confidence: 2/4 — CLAIMED. A single source (Debian) claims a patch exists, but it has not been independently confirmed. Exercise caution and verify against your specific Odoo build.
Immediate Mitigations (do these first):
- Block external access to Odoo's database management interface. Restrict access to the web paths
/web/database/*to localhost or a trusted management VLAN at the firewall level. - Change default credentials on any existing Odoo databases immediately. If you have existing instances, review administrative accounts for default passwords.
- Disable remote database creation entirely. In Odoo, this can be achieved by setting the
list_dbconfiguration parameter toFalsein the configuration file, which prevents the database management interface from being remotely accessible. - Enforce network segmentation: Place Odoo behind a reverse proxy that authenticates and filters requests before they reach the application.
Patch/Upgrade Steps:
- Upgrade to Odoo Community 12.0 or later, or Odoo Enterprise 12.0 or later. The vulnerability is fixed in these versions. Contact your Odoo partner or vendor for the specific patch if upgrading is not immediately possible.
- If you are on Debian and using the Debian-packaged Odoo, check for a security update via
apt update && apt upgrade odoo. - After patching, verify the patch by testing that an unauthenticated remote request to the database creation endpoint fails with an authorization error.
Long-Term Hardening:
- Default deny for administrative functions: All Odoo admin functions (database management, module installation, settings) should be gated behind VPN or privileged-access management (PAM) solutions.
- Credential rotation policy: Ensure default credential rotation is documented and enforced whenever a new database is provisioned.
- Logging and monitoring: Aggregate Odoo application logs, specifically around authentication and database operations, into your SIEM. Monitor for failed database creation attempts and unexpected database names appearing in the database list.
- Periodic security review: Review Odoo configuration files and deployment guides for known misconfigurations. Odoo's own security documentation is resourceful here.
References
- NVD Entry — https://nvd.nist.gov/vuln/detail/CVE-2018-15632
- Debian Security Tracker — https://security-tracker.debian.org/tracker/CVE-2018-15632
- Odoo Security Advisory (if published) — https://www.odoo.com/security
- MITRE CVE Record — https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-15632
- CISA KEV — Not present (CVE is NOT in the Known Exploited Vulnerabilities catalog as of this report).
Threat Actor Campaigns: No known threat actor campaigns have been publicly attributed to CVE-2018-15632 as of the report date. The EPSS score of 0.01170 (64.4th percentile) suggests moderate threat actor attention but no confirmed in-the-wild exploitation.