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

CVE-2021-23178

CVE-2021-23178 Improper Access Control 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: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.56%
👁️
0.56% probability
14.1× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
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
7.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2021-23178 is an improper access control vulnerability in Odoo Community 15.0 and earlier and Odoo Enterprise 15.0 and earlier. The flaw allows an authenticated attacker to validate online payments using a tokenized payment method that belongs to another user, resulting in the victim's payment method being charged for transactions the attacker initiates. This is a payment-adjacent authorization flaw with a CVSS base score of 7.5 (High severity), reflecting the significant financial impact possible with relatively straightforward exploitation. Enterprises running self-hosted Odoo instances with the eCommerce or subscription modules enabled are primarily at risk.

⚡ 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 identifies the root cause as Improper access control — specifically, the payment validation workflow in Odoo fails to verify that the tokenized payment method being used for an online transaction belongs to the authenticated user initiating that transaction. The affected product versions are Odoo Community 15.0 and earlier, and Odoo Enterprise 15.0 and earlier.

Vulnerability Mechanism: When a user completes an online payment in Odoo, the system stores a tokenized reference to the payment method (typically a card or digital wallet token) so it can be reused for future transactions. The flaw lies in the authorization check — or lack thereof — at the point where the token is validated and charged. An attacker authenticated to the Odoo instance can reference a tokenized payment method owned by another user (the victim) during the payment validation step. Odoo does not properly enforce ownership of the token at this stage, so the payment gateway charges the victim's linked payment method.

Since the NVD description is sparse on implementation details (no specific function names, URL endpoints, or API paths provided), the exact attack surface is difficult to pinpoint. However, based on the vulnerability class, the affected attack vectors likely include:

  • eCommerce checkout flow: The standard online store checkout process where payment tokens are stored and reused.
  • Subscription/recurring billing: Odoo's recurring billing and invoicing workflows that reference saved payment tokens.
  • Portal user endpoints: Customer-facing portal pages that expose payment-related actions.

The misconfiguration is at the business-logic layer (authorization) rather than a memory corruption or injection flaw. This means the vulnerable code path is likely straightforward to trigger via the normal user interface or API endpoints used for payment handling.

The CVSS score of 7.5 (High) — with the vector indicating high attack complexity is plausible given that some user interaction and specific application knowledge is required, though exact subscores are not provided in the intelligence data.

Exploitation Scenarios

Threat Model: Attacker is an authenticated low-privileged user (e.g., a registered customer or portal user) targeting another user of the same Odoo instance. The victim does not need to take any action beyond having previously saved a payment method in their Odoo account.

Attack Chain:

Step 1 — Reconnaissance / Target Identification: The attacker authenticates to the Odoo instance and identifies a target victim. Target selection focuses on users who have saved payment methods (e.g., customers who made prior purchases or subscribed to services). The attacker may enumerate users via the portal directory, order history, or public storefront data.

Step 2 — Triggering the Flaw: The attacker initiates an online transaction (e.g., adds items to cart, attempts to purchase a product, or initiates a subscription). During the payment validation step, the attacker substitutes the payment token identifier with the victim's tokenized payment method reference. Because Odoo fails to validate that the token belongs to the currently authenticated user, the request passes the authorization check.

Step 3 — Execution Method (vulnerability-class level): Since no specific endpoint or parameter names are disclosed in the NVD description, the attack is executed by manipulating the payment validation request to reference another user's stored payment token. This could be achieved by intercepting and modifying the payment request (e.g., via browser developer tools or a proxy) to swap the token ID, or by directly calling the payment validation API with the victim's tokenized reference.

Step 4 — Post-Exploitation Impact: The payment gateway processes the transaction and the victim's payment method is charged. The attacker receives the goods, services, or subscription access associated with the purchase without paying. This can be repeated for multiple purchases until detected, with each successful exploitation financially harming the victim. In the worst case, the attacker drains the victim's linked card or bank account within the limits of the transaction amounts.

Note: No public PoC exploit is available for this CVE, and no exploit code has been observed in the wild. The attack chain described above is inferred from the vulnerability class (improper access control in payment token validation) rather than from observed exploitation. The EPSS score of 0.00563 indicates a very low probability of active exploitation.

Impact Assessment

Business Impact:

  • Financial fraud: Direct monetary loss for victims whose payment methods are charged without authorization. Each successful exploit transfers value from the victim to the attacker.
  • Customer trust erosion: Victims will blame the platform for failing to protect their payment methods, leading to reputational damage.
  • Regulatory exposure: Payment card data handling is governed by PCI DSS; a flaw allowing unauthorized charges may constitute a breach of data-handling controls.
  • Chargeback costs: Cardholders disputing unauthorized charges generate chargeback fees and processing overhead for the merchant.

Affected Systems:

  • Odoo Community 15.0 and earlier
  • Odoo Enterprise 15.0 and earlier
  • Applies to on-premises and self-hosted deployments; Odoo Online (SaaS) customers are also potentially exposed.

Blast Radius: The CVSS 7.5 score reflects the high confidentiality and integrity impact (the attacker gains unauthorized use of another user's financial instrument). The attack is limited to authenticated users of the Odoo instance, but any user with an account could be both attacker and victim. Given the prevalence of Odoo as a popular open-source ERP/eCommerce platform, the affected population is significant, particularly in the SME sector.

Detection Guidance

The detection rules below are general guidelines for identifying suspicious payment activity patterns. Since the vulnerability is a business-logic authorization flaw without a distinct network signature, detection relies primarily on anomaly detection around payment token usage.

Sigma Rule

title: Suspicious Payment Token Usage - Cross-User Token Reference
id: 99091020-1111-4aaa-bbbb-cccccccccccc
status: experimental
description: Detects payment validation attempts where the tokenized payment method does not belong to the authenticated user in Odoo
logsource:
    category: application
    product: odoo
detection:
    selection:
        event_name: payment_transaction
        action: validate
    filter_payment_error:
        outcome: error
        error_code: token_not_found
    condition: selection and not filter_payment_error
level: high
falsepositives:
    - Legitimate payment method updates by administrators
    - Integrations using privileged API tokens
tags:
    - attack.t1203
    - cve.2021.23178

YARA Rule

rule Odoo_Payment_Token_Abuse_CVE_2021_23178
{
    meta:
        author = "ValtersIT Threat Intel"
        description = "Detects Odoo payment token manipulation patterns"
        cve = "CVE-2021-23178"
        date = "2024-01-01"
    strings:
        $s1 = "payment_token" ascii wide nocase
        $s2 = "tokenize" ascii wide nocase
        $s3 = "validate" ascii wide nocase
        $s4 = "payment_method" ascii wide nocase
    condition:
        2 of them and filesize < 1MB
}

Suricata IDS Rule

alert http any any -> any any (msg:"Odoo Payment Token Authorization Abuse (CVE-2021-23178)"; flow:established,to_server; content:"POST"; http_method; content:"/payment/"; http_uri; content:"validate"; http_uri; content:"token"; http_uri; content:"other_user"; nocase; threshold:type both, track by_src, count 5, seconds 60; sid:202123178; rev:1;)

Elastic Detection

sequence with maxspan=10m
  [ any where process.name == "odoo" and event.action == "payment_validation" ]
  [ any where process.name == "odoo" and event.action == "payment_validation" and 
      (log.data.user_id != log.data.token_owner_id) ]

Splunk SPL Query

index=odoo sourcetype=odoo:payment
| where action=="validate" AND outcome=="success"
| eval token_owner_mismatch = if(user_id != token_owner_id, "SUSPICIOUS", "NORMAL")
| search token_owner_mismatch="SUSPICIOUS"
| stats count by user_id, token_owner_id, src_ip, _time
| where count > 3
| table _time, user_id, token_owner_id, src_ip, count

Wazuh OSSEC Rule

<rule id="100231" level="12">
    <decoded_as>json</decoded_as>
    <field name="event_name">payment_transaction</field>
    <field name="action">validate</field>
    <field name="user_id">!=</field>
    <field name="token_owner_id">token_owner_id</field>
    <description>Odoo CVE-2021-23178: Payment token ownership mismatch detected - cross-user payment attempted</description>
    <group>odoo_payment_fraud,</group>
</rule>

Mitigation & Patch Guidance

Patch Confidence: 3/4 (LIKELY) — Two independent sources (CNA and Debian) confirm a fix exists. The exact patched version is not specified in the available data, but updating to the latest Odoo version beyond 15.0 is strongly recommended.

Immediate Mitigations:

  1. Upgrade Odoo immediately to the latest available release (16.0 or newer, or the latest 15.0 patch release if 16.0 is not yet adopted).
  2. Disable saved payment token reuse temporarily if feasible; forcing users to re-enter payment details for each transaction will eliminate the attack surface.
  3. Monitor payment transactions for unauthorized token usage, particularly looking for payment validations where the token owner and the authenticated user differ.

Patch/Upgrade Steps:

  1. Back up the Odoo database and configuration files.
  2. Update Odoo to the fixed version using the official package repositories or installer:
    • Debian/Ubuntu: apt update && apt upgrade odoo
    • Other: Use official Odoo upgrade documentation
  3. Verify the upgrade by testing the payment validation flow with two test accounts, attempting to use one user's token from another user's session.
  4. Confirm the fix by ensuring the cross-user token reference is rejected.

Long-Term Hardening:

  1. Enable two-factor authentication for portal users to reduce the likelihood of account takeovers that could be leveraged for this attack.
  2. Implement transaction anomaly detection: flag and review transactions where authenticated user ≠ token owner.
  3. Regular security audits of Odoo configurations, particularly payment gateway integrations and access control policies.
  4. Rate-limit payment validation attempts to slow down attacker enumeration of valid tokens.
  5. Maintain a rigorous patch management program for all Odoo deployments, testing and applying updates promptly upon release.
  6. Least-privilege access: ensure only authorized personnel have access to the Odoo backend where payment configurations can be modified.

References

  1. NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2021-23178 — Official vulnerability record with CVSS scoring and description.
  2. Odoo Security Advisory (via CNA): https://github.com/odoo/odoo (connection failed — verify manually)/security/advisories — Vendor-confirmed fix (access via CNA disclosure).
  3. Debian Security Tracker: https://security-tracker.debian.org/tracker/CVE-2021-23178 — Debian package fix confirmation.
  4. Vulners / VulnDB Entry: https://vulners.com/cve/CVE-2021-23178 — Aggregated vulnerability intelligence.
  5. EPSS Data: https://www.first.org/epss/ — Exploit Prediction Scoring System entry (EPSS: 0.00563).

Threat Actor Campaigns: No known threat actor campaigns or in-the-wild exploitation have been reported for CVE-2021-23178. The CVE is not listed in CISA's Known Exploited Vulnerabilities catalog (CISA KEV: NO), and no PoC or exploit code has been publicly disclosed. The EPSS percentile (43.8%) indicates moderate interest, but exploitation probability remains very low as of this report.

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2021-23178/ · 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.