Skip to main content

BottleCRM CVE-2026-110595

| EUVDEUVD-2026-101223 MEDIUM
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-10-14 VulnCheck GHSA-8vqj-3q69-wq28
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as user with mass-import permission
  2. Exploit
    Send oversized CSVs concurrently to import endpoints
  3. Execution
    _read_upload() buffers full files before 5 MB check
  4. Impact
    Exhaust worker memory and trigger OOM termination

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation 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

Exploitation requires an authenticated account that additionally holds the application's 'mass-import' permission; this is the key limiting factor and rules out anonymous or ordinary low-privilege users. The attacker must send oversized CSV files (larger than the intended 5 MB limit) to the specific /api/contacts/import/ and /api/cases/import/ endpoints, and must send them concurrently to outpace memory reclamation and actually exhaust worker memory. No special non-default product configuration is needed beyond having the import feature available and the privileged permission granted; impact is limited to availability (worker OOM) with no data exposure or modification.

Impact

This is a medium-severity availability-only issue, not an urgent priority. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) confirms network reachability with low attack complexity and no user interaction, but exploitation requires PR:L - an authenticated account that also holds the application-specific 'mass-import' permission - and the only impact is VA:L (limited availability loss via worker out-of-memory). There is no confidentiality or integrity impact (VC:N/VI:N). No EPSS score was provided, the CVE is not on CISA KEV, and no public exploit code is referenced, so there is no public exploit identified at time of analysis; all signals point to a low-likelihood, limited-blast-radius denial-of-service rather than a widely weaponized flaw. The signals are internally consistent (CWE-770 uncontrolled resource allocation matches the description and the availability-only vector), so no conflict needs flagging - the main caveat is product-identity ambiguity noted below rather than risk-signal disagreement. Realistic risk is confined to environments that grant import permissions to semi-trusted users; a malicious insider or a compromised low-privilege account could degrade service, but external unauthenticated mass exploitation is not possible.

Exploit ScenarioDerived

An authenticated user (or attacker using stolen credentials) who holds the mass-import permission repeatedly uploads CSV files larger than the 5 MB limit to /api/contacts/import/ and /api/cases/import/, sending many concurrently. Because _read_upload() reads the entire file into memory before the size check is enforced, the worker processes allocate memory faster than the limit can reject them, exhausting RAM and triggering out-of-memory termination that disrupts service for other users. No public proof-of-concept is referenced, so exploitation would require an attacker to craft the oversized-upload flooding themselves.

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

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

Alert me

AnalysisAIv1 – Oct 14, 2026

Uncontrolled memory allocation in BottleCRM 0.45 through 1.14.5 lets an authenticated user who also holds the application's 'mass-import' permission send oversized CSV files to the /api/contacts/import/ and /api/cases/import/ endpoints, causing worker processes to exhaust memory and terminate. The root cause is that the upload handler reads the entire file into memory before enforcing the intended 5 MB limit, so a single oversized file or, more effectively, several concurrent oversized files can outpace memory reclamation and trigger out-of-memory kills. Impact is availability-only (worker crashes, degraded or interrupted import and request handling) with no data exposure or modification; exploitation is gated by the privileged mass-import permission, no public exploit code has been identified, and no vendor-released patch was identified at time of analysis. This is a medium-severity denial-of-service issue rather than an urgent priority, and it is not confirmed actively exploited (no CISA KEV listing).

RemediationAI

No vendor-released patch was identified at time of analysis; the only upstream references are the vulnerability report (https://github.com/Django-CRM/Django-CRM/issues/828), the vulnerable source locations, and the VulnCheck advisory (https://www.vulncheck.com/advisories/bottlecrm-0.45-through-1.14.5-memory-exhaustion-via-contact-and-case-csv-import), so track issue #828 for the fix commit and upgrade as soon as a patched release is tagged. Until then, enforce a request-body size cap at the reverse proxy so oversized CSV bodies are rejected before reaching Django - nginx client_max_body_size 5m (or the equivalent body-size limit in Apache/Traefik/cloud load balancers); the trade-off is that legitimate imports near the limit may be truncated or rejected with a 413. Apply per-account/per-IP rate limiting on /api/contacts/import/ and /api/cases/import/ (for example nginx limit_req or an API gateway throttle) to defeat the concurrency required to outpace memory reclamation, at the cost of slowing bulk onboarding workflows. Constrain blast radius by lowering worker concurrency and setting explicit memory limits per worker (Gunicorn --max-requests with worker recycling, container memory limits plus OOM-score tuning) so an OOM event kills one worker rather than the whole service, accepting reduced throughput. Tighten the mass-import permission so only trusted administrators hold it, and audit existing grants, since the permission is a prerequisite for exploitation. If the import feature is not needed, disable or block the two endpoints at the proxy; the trade-off is loss of bulk contact and case loading functionality.

Affected VersionsENISA

BottleCRM 0.45 ≤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

BottleCRM (the Django-CRM project, published under the micropyramid namespace as cpe:2.3:a:micropyramid:bottlecrm) is a Django-based open-source CRM. The flaw is classified as CWE-770, Allocation of Resources Without Limits or Throttling. The vulnerable code path is the _read_upload() helper referenced in both backend/contacts/import_views.py and backend/cases/import_views.py at line 44 of the v1.14.5 tree: the multipart upload is fully consumed into memory before the 5 MB size constraint is evaluated, so the check is a validation step rather than a memory guard. Because each Django/Gunicorn/uWSGI worker handles requests independently, memory pressure is per-worker: a single oversized upload spikes one worker, while parallel requests across workers can collectively exhaust the container or host and cause the OOM killer to terminate workers. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N) and the independent CVSS 3.1 assessment (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L) agree: the attack is network-reachable and low complexity but requires low privileges, and the sole consequence is limited availability loss. The PR:L component reflects the requirement for an authenticated account that has additionally been granted the mass-import permission, which rules out anonymous or ordinary low-privilege users and is the key limiting factor; no non-default configuration is needed beyond the import feature being reachable and the permission being granted.

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 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
vuln.today AI 4.3 MEDIUM

Network-reachable import endpoints give AV:N/AC:L, but the mass-import permission requires PR:L, and the only effect is partial, recoverable availability loss, so A:L with C:N/I:N.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

BottleCRM 0.45 through 1.14.5 contains an uncontrolled memory allocation vulnerability in _read_upload() that reads entire CSV uploads before enforcing the 5 MB limit. Authenticated users with mass-import permission can send oversized CSV files concurrently to /api/contacts/import/ and /api/cases/import/ endpoints to exhaust worker memory and trigger out-of-memory termination.

Threat Intelligence Overview

EPSS Score
0.5%
Top 61% exploitable
Prevalence
Low
niche open-source Django CRM, limited enterprise deployment footprint
Data Quality
5 sources
Confidence: Medium

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.5%
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· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
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