Skip to main content

BottleCRM EUVDEUVD-2026-101222

| CVE-2026-110594 MEDIUM
Inefficient Regular Expression Complexity (ReDoS) (CWE-1333)
2026-10-14 VulnCheck GHSA-r225-9m2h-4x6v
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as organization administrator
  2. Delivery
    Create routing rule with backtracking regex
  3. Exploit
    Trigger case save evaluating _match_condition()
  4. Execution
    Regex catastrophically backtracks, pins worker
  5. Impact
    Shared worker pool exhausted, cross-tenant DoS

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V2 - Validation and Business Logic Regex complexity limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an authenticated organization administrator account (PR:H) with the ability to create case routing rules; the malicious payload is a regex pattern in a routing rule condition that is evaluated by _match_condition() in cases/routing.py during case saves. Exploitation is limited by this administrative privilege requirement and by the routing-rules feature being in use, but it needs no user interaction and works against default configurations once a routing rule can be created. The key aggravating condition is architectural: worker processes are shared across all tenants, so the impact of a single tenant admin extends to unrelated tenants.

Impact

This is a moderate-severity availability issue, not a top-tier emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:H/UI:N, VA:H, all confidentiality and integrity metrics N) correctly frames it: network-reachable and low-complexity, but gated behind PR:H - the attacker must already be an authenticated organization administrator. The score of 6.9 is driven almost entirely by the availability impact amplified by the multi-tenant blast radius (workers are shared across all tenants). No EPSS score, KEV listing, or explicit proof-of-concept was supplied in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation. The practical risk is therefore an insider or compromised-admin-account scenario rather than mass opportunistic exploitation: the privilege barrier sharply limits who can trigger it, but the cross-tenant impact means one malicious or compromised tenant admin can degrade service for unrelated tenants, which is the genuinely concerning dimension. Note a data discrepancy to verify: the product is identified as micropyramid:bottlecrm, yet all references point to the Django-CRM/Django-CRM GitHub repository - confirm with the vendor which product/codebase is actually affected.

Exploit ScenarioDerived

An authenticated organization administrator (or an attacker who has compromised such an account) logs into the CRM and creates a case routing rule whose condition uses a crafted regular expression designed for catastrophic backtracking. When any case save subsequently evaluates that rule via _match_condition(), the regex engine consumes a worker indefinitely; repeating this exhausts the worker pool. Because workers are shared across all tenants, the denial of service spreads beyond the attacker's own organization. No public exploit code was provided in the input.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.6% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 14, 2026

Case routing rule conditions in BottleCRM 0.43 through 1.14.5 accept unbounded regular expressions that are evaluated by _match_condition() every time a case is saved, so an authenticated organization administrator can insert a catastrophically backtracking pattern and pin or exhaust Django web workers, producing a denial of service. Because those worker processes are shared across all tenants on a deployment, the impact of one organization's admin reaches unrelated customers, which is why the assessed CVSS 3.1 vector marks scope as changed (S:C) with high availability impact and no confidentiality or integrity loss. Exploitation requires a high-privilege authenticated account (PR:H, organization administrator able to create routing rules) and the routing-rules feature being in active use, but needs no user interaction; no public exploit code and no confirmed active exploitation were identified at time of analysis, and the 6.9 base score places this as a moderate, availability-only risk.

RemediationAI

No vendor-released patch identified at time of analysis; the only upstream reference is the tracking issue https://github.com/Django-CRM/Django-CRM/issues/830, which is not a merged PR, commit, or tagged release, so no exact fixed version can be cited. Until a patched release is published, the most effective control is to stop untrusted regexes from reaching the backtracking engine: replace the condition matcher with a non-backtracking engine (for example the Python regex module's timeout, or RE2/google-re2), or run the match in a subprocess/thread with a hard timeout so a pathological pattern is abandoned rather than pinning the worker - the trade-off is code changes that must be maintained against upstream. Administrative mitigations with fewer side effects include temporarily disabling the case routing rules feature if it is not business-critical, restricting rule-creation rights to a small, trusted set of administrators (this directly closes the PR:H entry point but not the underlying code flaw), and enforcing a max length and character allowlist on the condition pattern while rejecting nested quantifiers such as (a+)+ or (\w*)* - allowlists are imperfect and can block legitimate rules. Operational controls that reduce blast radius include isolating tenants into separate worker pools or processes, shortening worker timeouts and enabling aggressive worker recycling under a process manager so hung requests are killed, and alerting on sustained 100% worker CPU with zero request completions, since the shared-pool design turns one tenant's malicious rule into an outage for all tenants.

Affected VersionsENISA

BottleCRM 0.43 ≤1.14.5

Affected Packages

euvd bottlecrm no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The root cause is CWE-1333 (Inefficient Regular Expression Complexity), a ReDoS class in which a user-supplied pattern is compiled and matched by Python's backtracking regex engine without bounds on complexity or execution time. In BottleCRM the attacker-controlled input is the condition field of a case routing rule, and the vulnerable match happens in _match_condition() inside backend/cases/routing.py (lines 107-114 in the v1.14.5 tree referenced by the advisory), which runs when cases are saved - meaning each save re-executes the malicious pattern and holds the worker for the duration of the backtracking blowup. The CPE record cpe:2.3:a:micropyramid:bottlecrm:*:*:*:*:*:*:*:* identifies Micropyramid BottleCRM as the affected product, and the reported version range 0.43 through 1.14.5 spans the open-source Django-based project (Django-CRM/Django-CRM) tracked by GitHub issue 830. The architectural amplifier noted in the code/advisory references is that the CRM commonly runs under a fixed pool of web workers shared by all tenants, so a single tenant administrator monopolizing those workers degrades or denies service for tenants who never created a rule. The assessed vector (AV:N/AC:L/PR:H/UI:N/S:C/C:N/I:N/A:H) is consistent with this: remote, low-complexity exploitation from an authenticated administrative session, no user interaction, availability-only impact that crosses a security scope boundary through the shared worker pool.

Know when Bottlecrm gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 6.8 MEDIUM

Network-reachable and low-complexity but requires org-admin privileges (PR:H); scope is changed (S:C) because shared workers impact tenants beyond the attacker's authorization; availability-only impact (A:H).

3.1 AV:N/AC:L/PR:H/UI:N/S:C/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:H/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
High
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

BottleCRM 0.43 through 1.14.5 contains a regular expression denial of service vulnerability that allows authenticated organization administrators to block web workers via unbounded routing rule regex patterns. Attackers can create a routing rule with a catastrophically backtracking pattern evaluated by _match_condition() during case saves, exhausting workers shared across all tenants.

Threat Intelligence Overview

EPSS Score
0.6%
Top 51% exploitable
Prevalence
Low
niche open-source CRM, limited enterprise deployment footprint
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.6%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

35
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy