Skip to main content

InvoicePlane EUVDEUVD-2026-87131

| CVE-2026-33639 HIGH
SQL Injection (CWE-89)
2026-09-25 GitHub_M
7.2
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Obtain administrator session
  2. Delivery
    Open Settings page
  3. Exploit
    Submit malicious tax_rate_decimal_places value
  4. Execution
    Injected clauses execute in ALTER TABLE
  5. Persist
    Corrupt ip_tax_rates schema / drop columns
  6. Impact
    Financial data structure damaged, app unavailable

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Persistence

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 administrator account, because the exploited tax_rate_decimal_places value is set through the admin-only Settings page (Settings::index()) - this is the primary limiting factor and matches CVSS PR:H. The affected code path is present by default in InvoicePlane prior to 1.7.2 with no special feature or non-default configuration needed; any version below 1.7.2 is vulnerable once an attacker reaches the settings form. No user interaction beyond the attacker's own submission is required (UI:N), and the ALTER TABLE runs on the normal MySQL/MariaDB backing store. Exploitation is blocked by upgrading to 1.7.2, which integer-casts the value and enforces a 2-3 range.

Impact

The CVSS 3.1 vector (AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H, base 7.2) is internally consistent with the description: the vulnerable tax_rate_decimal_places setting is explicitly 'administrator-controlled', which correctly maps to PR:H. This is the single most important limiting signal - the attacker must already hold administrator credentials to reach Settings::index(), so this is a privilege-escalation-of-impact / post-auth integrity flaw, not a pre-auth mass-exploitation risk. No EPSS score, CISA KEV listing, or public POC is present in the input, so exploitation status is 'no public exploit identified at time of analysis.' The C:H rating is the weakest part of the vendor vector: the injection occurs inside an ALTER TABLE (DDL) statement whose realistic payoff is schema corruption (column removal/alteration), which cleanly supports the described I:H/A:H (permanent financial-data-structure damage and application unavailability) but makes classic data exfiltration harder than a SELECT-based SQLi - I temper confidentiality to C:L. Net: a genuine SQL injection worth patching, but real-world urgency is bounded by the admin prerequisite, so this is a moderate priority rather than an internet-facing emergency.

Exploit ScenarioDerived

An authenticated InvoicePlane administrator (or an attacker who has obtained admin credentials via phishing, credential reuse, or a separate session compromise) opens the Settings page and submits a crafted tax_rate_decimal_places value that breaks out of the DECIMAL(5, ...) clause and appends additional SQL to the ip_tax_rates ALTER TABLE statement. The injected clauses drop or alter required columns, permanently corrupting the financial schema and rendering the application unavailable. No public exploit code is identified, but the payload is trivial to construct given the direct string interpolation shown in the patch diff.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 25, 2026

SQL injection in InvoicePlane's tax-rate settings allows an authenticated administrator to inject arbitrary SQL fragments into the ALTER TABLE statement that rebuilds the ip_tax_rates schema, letting them alter or drop required database columns in every release prior to 1.7.2. Because the malicious value is changed through the admin-only Settings page, exploitation requires high privileges (CVSS PR:H); the outcome is persistent schema corruption affecting financial data structures and potential loss of application availability, with integrity and availability impact rated high. No public exploit code has been identified at time of analysis, and the issue is resolved by upgrading to 1.7.2.

RemediationAI

Vendor-released patch: upgrade to InvoicePlane 1.7.2 (https://github.com/InvoicePlane/InvoicePlane/releases/tag/v1.7.2), which integer-casts tax_rate_decimal_places and enforces the 2-to-3 range so the value can no longer add clauses to the ALTER TABLE statement; the underlying changes are in pull requests 1481 and 1488 and commits 8fe41750d7c6fd039ac7353e5311bf4c140c3436, efec2d28d574ca616f218d758bd5adaa9a60b3a0 and fca7792a24de0a749d881cbbe4af6f58e9545d20, with full details in the advisory at https://github.com/InvoicePlane/InvoicePlane/security/advisories/GHSA-34g5-4hfc-g983. If upgrading immediately is not possible, the compensating control that fits the exploit prerequisites is to restrict and audit administrator access, since the setting can only be reached through the admin-only Settings page (PR:H) - remove or tightly limit admin accounts, avoid shared or over-privileged admin credentials, and restrict the settings interface to trusted networks or IP allowlists; the trade-off is reduced administrative convenience and the risk that any remaining admin can still trigger the corrupting DDL. Because the injected clause runs as a schema-changing statement, also verify the ip_tax_rates table structure against a known-good baseline and keep verified database backups, since damage to financial data structures may require restoration rather than a code-only fix; disabling the tax-rate settings feature via code changes is possible but is itself an unsupported modification and may break invoice calculations, whereas patching to 1.7.2 removes the issue entirely.

Affected VersionsENISA

InvoicePlane < 1.7.2

Affected Packages

euvd invoiceplane fix: 1.7.2

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-89 (SQL injection) arising from unsafe string interpolation in a DDL statement. InvoicePlane is a PHP application built on CodeIgniter; in Settings::index(), the administrator-controlled setting tax_rate_decimal_places was concatenated directly into an ALTER TABLE ... DECIMAL(5,{$settings['tax_rate_decimal_places']}) NOT NULL statement for the ip_tax_rates table. Because CodeIgniter's Query Builder cannot parameterize DDL statements, the developer used raw string interpolation instead of a bound value, so a crafted setting can terminate the DECIMAL clause and append additional SQL clauses to the schema-changing statement. The upstream fix (visible in PR 1481 and the associated commits) casts the setting to an integer with (int) and enforces a strict 2-to-3 range, rejecting invalid input with a new invalid_tax_rate_decimal_places language string before the ALTER TABLE executes. Affected deployments are self-hosted InvoicePlane instances running on a normal MySQL/MariaDB backing store, identified by CPE cpe:2.3:a:invoiceplane:invoiceplane:*:*:*:*:*:*:*:*, with no non-default configuration required for the vulnerable code path to be reachable.

Know when Invoiceplane 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 (GitHub_M) PRIMARY 7.2 HIGH
AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 6.7 MEDIUM

Admin-only setting drives PR:H; injection is straightforward (AC:L) over the web app (AV:N); DDL injection yields schema corruption so I:H/A:H, but limited data-read capability tempers confidentiality to C:L.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
High
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Sep 25, 2026 - 17:04 EUVD
CVE Published
Sep 25, 2026 - 15:36 cve.org
HIGH 7.2

DescriptionCVE.org

InvoicePlane is a self-hosted open source application for managing invoices, clients, and payments. Prior to 1.7.2, InvoicePlane interpolates the administrator-controlled tax_rate_decimal_places setting into an ALTER TABLE statement for ip_tax_rates in Settings::index() without strict integer validation. A crafted setting value can add clauses to the schema-changing statement and remove or alter required database columns. The resulting schema corruption can permanently modify financial data structures and make the application unavailable. This vulnerability is fixed in 1.7.2.

Technical POC Analysis

CWE-89 (improper neutralization of special elements in an SQL command), manifesting here as DDL injection rather than classic data exfiltration.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

InvoicePlane billing and invoicing deployments older than 1.7.2 contain a database injection flaw in the tax-rate configuration page that can corrupt core financial tables. Only users holding full administrator rights can trigger it, but success permanently damages the database schema that stores tax and invoice data, potentially taking the application offline and undermining the accuracy of financial records. Leadership should care because an internal privileged account - or one compromised through credential theft - could disrupt billing operations and data integrity across the finance function.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 68% exploitable
Prevalence
Low
self-hosted open-source invoicing app, niche SMB deployment, no enterprise 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 HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
Medium
Technical Impact
Total

Priority Score

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

Attack Technique

SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.

CVE-2025-67084 CRITICAL POC
9.9 Jan 15

InvoicePlane through 1.6.3 allows authenticated users to upload PHP files as attachments that can be executed remotely.

CVE-2026-25548 CRITICAL POC
9.1 Feb 18

Remote Code Execution in InvoicePlane self-hosted invoicing application through code injection. PoC and patch available.

CVE-2017-1000238 HIGH POC
8.8 Nov 17

InvoicePlane version 1.4.10 is vulnerable to a Arbitrary File Upload resulting in an authenticated user can upload a mal

CVE-2021-29024 HIGH POC
7.5 May 17

In InvoicePlane 1.5.11 a misconfigured web server allows unauthenticated directory listing and file download. Rated high

CVE-2026-23491 HIGH POC
7.5 Feb 18

Unauthenticated attackers can read arbitrary files from InvoicePlane servers through path traversal in the Guest control

CVE-2025-67082 MEDIUM POC
6.5 Jan 15

An SQL injection vulnerability in InvoicePlane through 1.6.3 has been identified in "maxQuantity" and "minQuantity" para

CVE-2024-56975 CRITICAL
9.8 Mar 28

InvoicePlane (all versions tested as of December 2024) v.1.6.11 and before contains a remote code execution vulnerabilit

CVE-2023-23011 MEDIUM POC
6.1 Feb 07

Cross Site Scripting (XSS) vulnerability in InvoicePlane 1.6 via filter_product input to file modal_product_lookups.php.

CVE-2018-12255 MEDIUM POC
6.1 Jul 03

An XSS issue was discovered in InvoicePlane 1.5.10 via the "Quote PDF Password(Optional)" field. Rated medium severity (

CVE-2026-24745 MEDIUM POC
5.7 Feb 18

Stored XSS via SVG file upload in InvoicePlane 1.7.0 Login Logo functionality allows authenticated administrators to inj

CVE-2026-24744 MEDIUM POC
5.7 Feb 18

Stored XSS in InvoicePlane 1.7.0's invoice editing function fails to sanitize the invoice_number parameter, allowing aut

CVE-2026-24743 MEDIUM POC
5.7 Feb 18

Stored XSS in InvoicePlane 1.7.0 via malicious SVG file upload in the Invoice Logo function allows authenticated adminis

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