Skip to main content

BottleCRM CVE-2026-110592

| EUVDEUVD-2026-101220 MEDIUM
Improper Encoding or Escaping of Output (CWE-116)
2026-10-14 VulnCheck GHSA-mpf8-4qc8-mc43
5.1
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 member
  2. Delivery
    Inject HTML/CSS into invoice notes/terms/client fields
  3. Exploit
    Render custom-template invoice PDF
  4. Execution
    Overlay forged totals and payment details
  5. Impact
    Deliver via download, public link, or email

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding for downstream
Exploitation Conditions

Requires an authenticated account with organization-member privileges that can create or edit invoices, AND the target must use a custom invoice template processed by render_invoice_template() (the HTML is injected via notes, terms, client name, or client address fields). Exploitation further depends on a victim viewing the rendered PDF - delivered by download, public link, or email (UI:P) - so it is a passive-interaction, fraud-oriented flaw rather than automatic server-side compromise. Limiting factors: valid credentials (PR:L) and the custom-template rendering path are prerequisites; default configurations not using custom templates or not exposing PDFs to external recipients substantially reduce realistic risk.

Impact

This is a genuinely medium/low-priority issue, not an inflated high-CVSS finding. The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:L/VA:N) scores only 5.1, and the metrics are internally consistent with the description: network-reachable but requiring valid low-level authentication (PR:L - an organization member) and passive user interaction (UI:P - a victim must open/view the resulting PDF). Impact is limited to integrity (VI:L) with no confidentiality or availability effect, which matches CWE-116 output-encoding abuse rather than code execution or data theft. No EPSS score, CISA KEV listing, or public POC was provided in the input, so exploitation pressure appears low: this maps to 'no public exploit identified at time of analysis.' The realistic threat is social-engineering/fraud (forged invoice totals, payee and payment instructions) rather than server compromise. One signal to verify: the CPE identifies the product as micropyramid:bottlecrm, but all three references point to the Django-CRM/Django-CRM repository - confirm with the vendor whether BottleCRM and Django-CRM are the same codebase before acting on version ranges.

Exploit ScenarioDerived

A low-privileged but trusted member of an organization edits an invoice's notes, terms, client name or address fields, embedding HTML and CSS that the custom-template renderer in render_invoice_template() does not escape. When the generated PDF is downloaded, shared via a public link, or emailed to a client, the injected markup overlays the real totals, payee, and payment instructions, producing a fraudulent-but-authentic-looking invoice. No public exploit code was identified in the provided data; exploitation requires an authenticated account and a victim who opens the PDF (UI:P).

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

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

Alert me

AnalysisAIv1 – Oct 14, 2026

HTML injection in BottleCRM 0.30 through 1.14.5 lets an authenticated organization member embed arbitrary markup and CSS into customized invoice PDFs by writing HTML into the notes, terms, client name, or client address fields that render_invoice_template() processes. The injected content can visually overlay totals, payee details, and payment instructions in the resulting PDF, which is then viewed by a victim through a direct download, a public link, or an email attachment (CVSS 4.0 base 5.1; assessed 3.1 vector AV:N/AC:L/PR:L/UI:R, integrity-only with low impact). Exploitation requires the deployment to actually use a custom invoice template and requires a victim to open the rendered document, making this a fraud-oriented, low-to-medium priority issue rather than automatic server-side compromise, and no public exploit code or confirmed active exploitation was identified at time of analysis.

RemediationAI

No vendor-released patch was identified at time of analysis, so the primary action is to treat the custom-template rendering path as untrusted: stop using custom invoice templates and fall back to the built-in default template, which does not expose the vulnerable interpolation, accepting the loss of branding and layout customization as the trade-off. Where custom templates are business-critical, apply strict output sanitization to the notes, terms, client name, and client address fields before they reach render_invoice_template() - HTML-escape them or run them through an allow-list sanitizer such as Bleach with a minimal tag set - and strip style attributes and positioning CSS, at the cost of losing any legitimate rich formatting in those fields. Additionally, restrict who holds organization-member privileges capable of creating or editing invoices (least privilege, since the assessed vector requires PR:L), and limit distribution of generated PDFs to verified internal or known recipients rather than open public links, which removes the UI:R delivery step and the realistic fraud path. Track the upstream issue at https://github.com/Django-CRM/Django-CRM/issues/825 and the advisory at https://www.vulncheck.com/advisories/bottlecrm-0.30-through-1.14.5-html-injection-via-custom-invoice-pdf-template for a fixed release, and re-validate these compensating controls once a patched version is published.

Affected VersionsENISA

BottleCRM 0.30 ≤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 flaw is a CWE-116 improper output encoding / escaping issue in the Django-based BottleCRM (Django-CRM) invoicing subsystem. The vulnerable routine, render_invoice_template() in backend/invoices/pdf.py (referenced at lines 660-712 of the v1.14.5 source), assembles invoice data from user-controlled fields - notes, terms, client name, and client address - into HTML that is subsequently converted to PDF. Because those values are interpolated into the template without adequate context-aware escaping when a custom template is in use, an attacker with organization-member privileges who can create or edit invoices can supply tags, styles, and positioned elements that are preserved in the generated document. The impact class is therefore HTML/CSS injection into a generated document (defaced or spoofed invoice content) rather than script execution in a browser or command execution on the server; the CVSS 4.0 vector records no confidentiality or availability effect and only low integrity impact, and the CPE cpe:2.3:a:micropyramid:bottlecrm:*:*:*:*:*:*:*:* confirms the affected product family across the stated version span.

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

Network-reachable with valid low-privileged member access (PR:L); a victim must open the PDF (UI:R); integrity-only impact (I:L) from forged invoice content, no confidentiality or availability loss and no scope change.

3.1 AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:L/VA:N/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
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

BottleCRM 0.30 through 1.14.5 contains an HTML injection vulnerability in render_invoice_template() that allows authenticated organization members to inject markup into custom-template invoice PDFs. Attackers can place HTML and CSS in notes, terms, client name or address fields to overlay totals, payee and payment instructions in PDFs served via download, public links and emails.

Threat Intelligence Overview

EPSS Score
0.4%
Top 73% 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.4%
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

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

Attack Technique

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

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