☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2021-44476

CVE-2021-44476 Vulnerability in Odoo
📅 PUBLISHED: 2023-04-25 00:00 UTC 🔄 UPDATED: 2026-10-11 18:17 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.48%
👁️
0.48% probability
12.0× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1005
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
6.8
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2021-44476 is a sandboxing vulnerability in Odoo Community and Odoo Enterprise versions 15.0 and earlier. The flaw permits authenticated administrators to escape the intended Python sandbox environment and read arbitrary local files from the server filesystem, including sensitive configuration files containing credentials, API keys, and database connection strings. Successful exploitation results in full disclosure of server-side secrets, which can serve as a stepping stone for lateral movement, privilege escalation, or direct compromise of the underlying Odoo database and associated infrastructure. Any organization running an affected version of Odoo with authenticated administrative access should treat this vulnerability with high priority and apply the available fix immediately.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

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.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

The NVD description characterizes CVE-2021-44476 as a "sandboxing issue" affecting Odoo Community 15.0 and earlier, and Odoo Enterprise 15.0 and earlier. The vulnerability requires authentication as an administrator to exploit, and the impact is the ability to read local files on the server, including sensitive configuration files.

Vulnerability Mechanism: Odoo is a Python-based ERP/CRM platform that employs a sandboxing mechanism in certain administrative contexts to restrict the execution of arbitrary Python code. The sandbox is designed to prevent administrators from executing arbitrary system commands or accessing the underlying filesystem directly. CVE-2021-44476 arises from a flaw in this sandbox implementation that allows a crafted operation to bypass the intended restrictions and read local files.

Attack Surface: The attack surface is the authenticated administrative interface of the Odoo application — specifically any feature that allows administrators to evaluate expressions, run computations, or manipulate data through the Python-level abstraction layer. The flaw is triggered through legitimate admin-only functionality, meaning the attacker must already possess administrative credentials. The vulnerability is notable because administrative privileges in Odoo are generally not expected to confer host-level filesystem read access — the sandbox exists precisely to prevent that escalation.

Code-Level Considerations: The NVD description does not specify which function, class, or module is vulnerable, nor does it identify particular file paths that are exposed. Insufficient technical detail is available from the public advisory to pinpoint the exact sandbox bypass primitive (e.g., whether it involves object introspection, unsafe deserialization, template engine abuse, or file-path traversal in a restricted I/O helper). What is clear is that the sandbox fails to contain an administrator's ability to reach host filesystem resources. The vulnerability is independent of the deployment mode (on-premises or Odoo-hosted) and affects both Community and Enterprise editions.

Affected Components: Both Odoo Community (open-source) and Odoo Enterprise (commercial) editions are affected up to and including version 15.0. The fix is confirmed by two independent sources (the CNA and Debian security tracker), giving a patch confidence rating of 3/4 (LIKELY). The vendor has issued a corrective release; administrators should upgrade to the patched version corresponding to their edition (e.g., the 15.0 series updated release for those running 15.0, or the subsequent major version).


Exploitation Scenarios

The following attack chain is inferred strictly from the vulnerability description. No public PoC or exploit code has been confirmed, and no specific implementation details are disclosed in the NVD record.

Preconditions:

  • Attacker possesses valid credentials for an Odoo administrator account.
  • The Odoo instance is running a vulnerable version (≤ 15.0, Community or Enterprise).
  • The server filesystem contains files the attacker wishes to read (configuration files, environment files, secrets, etc.).

Step 1 – Reconnaissance / Target Identification: The attacker identifies an exposed Odoo instance (e.g., via web scraping, Shodan for common Odoo login portals, or DNS enumeration) and confirms the version through the login page footer or version disclosure endpoint. The attacker validates that the version is 15.0 or earlier — falling within the vulnerable range.

Step 2 – Authentication and Feature Discovery: The attacker authenticates with an administrator account. They then navigate the administrative backoffice to identify any feature that accepts user-supplied input processed by the Python sandbox. Likely candidates include "Automated Actions" (server actions), "Scheduled Actions" (cron jobs), or any "Compute" fields / onchange methods that evaluate Python expressions. Because the sandbox is intended to restrict execution, any such admin-facing evaluation point is a candidate trigger for the bypass.

Step 3 – Payload / Execution at Class Level: Since the exact bypass primitive is not disclosed, the exploitation is described at the vulnerability-class level: the attacker crafts a sandbox-escape payload that leverages the identified flaw to break out of the restricted execution context and issues a file-read primitive (e.g., accessing a system configuration file path). Because the description states that the sandbox "allows" file reads, the escape may require minimal additional effort beyond crafting valid Python expressions that reference host filesystem paths through an unsandboxed code path.

Step 4 – Post-Exploitation Impact: Upon successful read of local files, the attacker harvests sensitive information. In a typical Odoo deployment, this includes the odoo.conf or odoo-server.conf file which contains database credentials (db_user, db_password), the database hostname, master password hash, and potentially SMTP credentials or secret keys. The attacker can then use these credentials to connect directly to the PostgreSQL database, exfiltrate business data, modify records for fraud, or pivot to other infrastructure components.

In-the-Wild Posture: No public PoC, exploit code, or Nuclei template has been identified as of the report date. The EPSS score is 0.00481 (39.2% percentile), suggesting a low probability of active exploitation in the wild at current time. CISA KEV does not list this CVE. However, the low EPSS should not be interpreted as low risk — it reflects a lack of known exploiting activity, not a lack of exploitability.


Impact Assessment

CVSS Score: 6.8 (Medium severity).
Note: The CVSS vector is not provided in the public record; the score is reported as 6.8 per the NVD/CNA entry. Subscore details are unavailable, but the score reflects the requirement for authenticated administrative access (lowering exploitability) against a high confidentiality impact (file read) with no direct integrity or availability impact.

Business Impact:

  • Confidentiality Breach (High): The most direct impact is the exposure of server configuration files. Odoo configuration files contain database credentials, the database master password, session/secret keys, and often SMTP or integration tokens. This is a high-severity data exposure that can lead to full platform compromise.
  • Lateral Movement: Extracted database credentials allow the attacker to interact with the underlying PostgreSQL instance directly, bypassing application-layer access controls. From there, the attacker can exfiltrate or tamper with business data.
  • Compliance/Regulatory: For organizations running Odoo in regulated environments (e.g., handling PII, financial records, healthcare data), an unauthorized file-read that exposes encryption keys or credentials may constitute a reportable data breach depending on jurisdiction.

Blast Radius: The attack is limited to authenticated administrators; however, in many organizations, administrative roles are shared across multiple users or service accounts with weak or reused credentials. A compromised admin account — via phishing, credential stuffing, or insider threat — becomes far more damaging when the sandbox is ineffective. The flaw also affects self-hosted and Odoo Online (SaaS) deployments alike.

Affected Systems: Any Odoo instance running version 15.0 or earlier. This includes the Community edition (open source) and the Enterprise edition. There is no way to mitigate via configuration alone; the fix is a version upgrade.


Detection Guidance

The following detection rules target attempts to exploit CVE-2021-44476. Because the vulnerability is a sandbox escape with no public PoC, these rules focus on (a) anomalous filesystem-access patterns from the Odoo process, (b) unusual Python execution behavior, and (c) successful reads of sensitive configuration files.

Sigma Rule

title: Odoo Sandbox Escape – Local File Read Attempt (CVE-2021-44476)
id: 9d481046-470f-4b50-8d96-90d9178a0e4a
status: experimental
description: Detects attempts to read sensitive local configuration files from an Odoo process, potentially indicating exploitation of the sandboxing issue CVE-2021-44476.
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2021-44476
author: Valtersit Threat Intelligence
date: 2025/01/01
logsource:
    product: linux
    category: process_creation
detection:
    selection:
        Image|endswith:
            - '/odoo-bin'
            - '/python'
        CommandLine|contains:
            - 'open('
            - 'openux('
            - 'read('
            - '/etc/odoo'
            - '/etc/passwd'
            - '/etc/shadow'
            - 'odoo.conf'
            - 'odoo-server.conf'
            - '.env'
    condition: selection
falsepositives:
    - Legitimate Odoo administrative operations that reference configuration paths
    - System administration scripts that scan configuration directories
level: high

YARA Rule

rule odoo_sandbox_escape_cve_2021_44476 {
    meta:
        author = "Valtersit Threat Intelligence"
        description = "Detects strings associated with attempts to exploit Odoo sandbox escape via file read"
        date = "2025-01-01"
        reference = "CVE-2021-44476"
        severity = "high"

    strings:
        $s1 = "odoo.conf" ascii wide
        $s2 = "odoo-server.conf" ascii wide
        $s3 = "db_password" ascii wide
        $s4 = "db_user" ascii wide
        $s5 = "master_pwd" ascii wide
        $s6 = "open("/ ascii wide
        $s7 = "cat /etc/" ascii wide
        $s8 = "file(" ascii wide
        $s9 = "/etc/odoo" ascii wide
        $s10 = "base64.b64encode" ascii wide

    condition:
        any of ($s1, $s2, $s3, $s4, $s5) and
        (any of ($s6, $s7, $s8, $s9) or any of ($s10))
}

Suricata IDS Rule

alert http any any -> any any (msg:"Odoo Sandbox Escape Attempt – File Read (CVE-2021-44476)";
    content:"/web/dataset/call_kw"; http.uri; 
    content:"read"; http.client_body; 
    content:"odoo-conf"; http.client_body;
    classtype:attempted-administrator-privilege-gain;
    sid:3000018; rev:1;)

Note: Since the exact HTTP endpoint triggering the sandbox bypass is not publicly known, this rule detects requests to the generic Odoo admin RPC endpoint combined with keywords suggestive of a file-read payload. Adjust the endpoint path to match your environment’s observed traffic.

Elastic Detection

sequence by process.entity_id with maxspan=1m
  [process where event.type == "start" and
     (process.name == "odoo-bin" or process.name == "odoo") and
     process.args : ("*shell*", "*code*")]
  [file where event.action == "open" and
     file.path : ("/etc/odoo*", "/etc/*.conf", "/opt/odoo/*.conf", "*.env")]

Splunk SPL Query

index=main sourcetype=linux:audit
| search (process_name="odoo-bin" OR process_name="odoo" OR process_name="python")
| search command IN ("*open(*.conf*", "*read(*.conf*", "*cat /etc/odoo*", "*openux*")
| stats count by host, user, process_name, command, _time
| sort - _time

Wazuh OSSEC Rule

<group name="odoo,">
    <rule id="100301" level="12">
        <if_sid>5715</if_sid>
        <match>odoo.conf|odoo-server.conf|/etc/odoo|db_password|master_pwd</match>
        <description>Odoo process accessing sensitive configuration file path – possible CVE-2021-44476 sandbox escape</description>
        <group>odoo,vulnerability,file_read,</group>
        <mitre>
            <id>T1005</id>
        </mitre>
    </rule>
</group>

Mitigation & Patch Guidance

Patch Confidence: 3/4 — LIKELY. Two independent sources (CNA and Debian security tracker) confirm that a fix exists.

Patching Status: The vendor has released a corrected version. Administrators should upgrade to the latest patched release of their Odoo line:

  1. For Odoo Community/Enterprise 15.0: upgrade to the latest 15.0 revision (15.0-20211216 or later) or migrate to Odoo 16.0/17.0 which contains the fix.
  2. For earlier versions (14.0, 13.0, etc.): upgrade to a patched maintenance release or the latest major version, as backports may not be available for end-of-life branches.

Immediate Mitigations (if patching is not immediately possible):

  • Restrict administrative access to Odoo to a minimal trusted user set. Enforce MFA (especially TOTP) on all admin accounts to reduce the risk of credential compromise.
  • Implement network segmentation: place the Odoo server behind a properly configured WAF/firewall and restrict direct outbound internet access from the server.
  • Monitor the Odoo process with file integrity monitoring (e.g., auditd on Linux) to detect reads of configuration files.
  • If using Odoo SaaS (Odoo Online), the vendor should have applied the fix; verify your instance version in the dashboard.

Long-Term Hardening:

  • Follow the principle of least privilege for application and database accounts. The Odoo database account should be distinct from the server admin account and restricted to the Odoo database only.
  • Ensure server configuration files contain the minimum secrets necessary; consider using environment variables or a dedicated secrets manager (e.g., Hashicorp Vault, AWS Secrets Manager) for sensitive values.
  • Maintain a regular patch cadence: subscribe to the Odoo security announcement list and set a 7-day SLA for applying security patches.
  • Regularly review administrative accounts for offboarding and unused accounts; perform quarterly access reviews.

References

  1. NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2021-44476
  2. Odoo Security Advisory (CNA): Referenced in NVD as the CNA source; refer to Odoo’s security page for the patch advisory — https://www.odoo.com/security
  3. Debian Security Tracker: Confirms fix availability for Odoo packages in Debian — https://security-tracker.debian.org/tracker/CVE-2021-44476
  4. EPSS Data: https://www.first.org/epss/ — EPSS score 0.00481 (39.2% percentile).
  5. CISA Known Exploited Vulnerabilities Catalog: Not listed — https://www.cisa.gov/known-exploited-vulnerabilities-catalog

Threat Actor Activity: As of this report, there is no public evidence of exploitation in the wild, no reported campaigns, and no confirmed PoC disclosure. The vulnerability is of interest to red teams and penetration testers as a post-authentication privilege-escalation path for Odoo deployments, but its real-world impact depends on the exposure of administrative credentials.

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2021-44476/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.