Skip to main content

InvoicePlane CVE-2026-39353

| EUVDEUVD-2026-87129 CRITICAL
PHP Remote File Inclusion (CWE-98)
2026-09-25 GitHub_M
9.1
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Recon
    Obtain admin file-write access
  2. Delivery
    Upload malicious PHP to template directory
  3. Exploit
    Directory scan auto-trusts template
  4. Install
    Set as public_invoice_template
  5. C2
    Guest requests public invoice
  6. Execute
    Web server includes and executes file
  7. Impact
    Arbitrary code execution as web-server user

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V5 - File Handling File inclusion prevention, allowlisting
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Command and Control

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

Exploitation Conditions

Requires that the attacker already hold InvoicePlane's administrator-controlled file-write capability to place a malicious .php file into the PHP template directory that Mdl_templates scans; the planted file must then be selected as public_invoice_template. Execution is triggered when any (unauthenticated) guest renders the corresponding public invoice, at which point the guest View controller includes and runs the file with web-server privileges. Exploitation is LIMITED to versions prior to 1.7.2-rc-1 (the fix replaces directory scanning with explicit ipconfig.php allowlist constants) and is gated by the need for privileged file-write access, so it is not a fully unauthenticated attack despite the network-reachable trigger.

Impact

This is a genuine remote code execution flaw (CWE-98, PHP file inclusion), not a mislabeled lower-severity issue. The NVD CVSS of 9.1 (AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H) is defensible: the ultimate code execution runs in the unauthenticated guest public-invoice rendering path, hence the network vector and scope change, while PR:H correctly reflects that an attacker must first possess the administrator-controlled file-write capability to plant the malicious PHP template. The real-world risk is tempered by two factors that do not appear in the raw score: (1) the high-privilege prerequisite (admin file-write) means this is not a drive-by unauthenticated RCE despite AV:N, and (2) no EPSS score, no CISA KEV listing, and no public exploit code are present in the input, so there is no evidence of active or automated exploitation. Signals are internally consistent - high CVSS impact justified by real RCE, but exploitation is gated behind privileged access, making this a serious-but-conditional issue rather than a mass-exploitation emergency. The Tags conflict with the mechanism: 'Information Disclosure' is inaccurate (this executes code, not merely leaks data) and 'LFI' only partially captures it since the included file is attacker-authored and executed.

Exploit ScenarioDerived

An attacker who has obtained InvoicePlane administrator access (or otherwise abuses the admin-controlled file-write capability) drops a malicious .php file into the template directory, which Mdl_templates automatically trusts and allows to be set as the public_invoice_template. The attacker then requests a public invoice URL as an unauthenticated guest, causing the guest View controller to include and execute the planted PHP with web-server privileges. No public exploit code is identified in the provided data.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
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

Remote code execution in InvoicePlane builds prior to 1.7.2-rc-1 allows an attacker who already holds InvoicePlane's administrator-controlled file-write capability to plant a malicious PHP file inside the PHP template directory that Mdl_templates automatically scans and trusts. That planted file can then be selected as public_invoice_template, and when any unauthenticated guest renders the corresponding public invoice, the guest View controller includes and executes it with web-server privileges - a CWE-98 PHP file-inclusion flaw with a CVSS 3.1 base score of 9.1 (AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H). Exploitation is gated by the need for high-privilege file-write access (PR:H) even though the execution trigger is network-reachable and unauthenticated, and no public exploit code has been identified at time of analysis; the vendor fixes the issue in 1.7.2-rc-1 by replacing filesystem scanning with explicit allowlist constants.

RemediationAI

Upgrade to InvoicePlane 1.7.2-rc-1 (or a later stable release once available), which removes filesystem template discovery and replaces it with explicit allowlist constants in ipconfig.php; the vendor advisory is at https://github.com/InvoicePlane/InvoicePlane/security/advisories/GHSA-v735-2x3r-gwpp and the reference patch is commit 00e599db25804024eb323cfb751349bf3b1d8e8a via pull request https://github.com/InvoicePlane/InvoicePlane/pull/1536, with the release tagged at https://github.com/InvoicePlane/InvoicePlane/releases/tag/v1.7.2-rc-1. After upgrading, administrators who rely on custom templates must register each template name (without the .php extension) in the appropriate constant - CUSTOM_INVOICE_TEMPLATES_PDF, CUSTOM_INVOICE_TEMPLATES_PUBLIC, CUSTOM_QUOTE_TEMPLATES_PDF, or CUSTOM_QUOTE_TEMPLATES_PUBLIC - otherwise the template will not appear in the UI, which is an intentional trade-off of the fix. If patching must be deferred, the highest-value compensating control is to close the privileged file-write path into the PHP template directory by removing write permissions for the web-server account on that directory and auditing which InvoicePlane roles or integrations can write there; the trade-off is that legitimate template deployment then requires an out-of-band, administrator-triggered file copy. Restricting exposure of guest/public invoice rendering URLs to trusted networks reduces the trigger surface but does not eliminate the flaw, since the malicious template remains executable whenever a public invoice is rendered, and any such access restriction will break legitimate customer-facing invoice links. Finally, treat any pre-existing administrator file-write capability or third-party integration with upload rights as an attacker-controlled vector and inventory the template directory for unexpected .php files.

Affected VersionsENISA

InvoicePlane < 1.7.2-rc-1

Affected Packages

euvd invoiceplane fix: 1.7.2-rc-1

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

InvoicePlane is a self-hosted PHP application (built on CodeIgniter) for invoices, clients, and payments, and the affected CPE cpe:2.3:a:invoiceplane:invoiceplane:*:*:*:*:*:*:*:* covers all releases before 1.7.2-rc-1. The root cause is CWE-98 (Improper Control of Filename for Include/Require Statement in PHP Program, i.e. PHP remote/local file inclusion): Mdl_templates constructs its permitted template list by scanning a PHP template directory rather than deriving it from a static configuration, and the same directory is reachable through an administrator-controlled file-write capability. Any .php file dropped into that directory is therefore implicitly trusted by Mdl_templates::_merge_custom() and becomes selectable as public_invoice_template; because the guest View controller later performs a PHP include of the selected template name, the planted file executes in the context of the web server. The upstream fix removes the scan-to-discover behaviour entirely and requires template names (without the .php extension) to be registered in explicit ipconfig.php constants - CUSTOM_INVOICE_TEMPLATES_PDF, CUSTOM_INVOICE_TEMPLATES_PUBLIC, CUSTOM_QUOTE_TEMPLATES_PDF and CUSTOM_QUOTE_TEMPLATES_PUBLIC - so the filesystem is never enumerated for templates, which the patch documents as RCE prevention. The scope-changing CVSS vector (S:C) reflects that code execution escapes the application's assumed privilege boundary and lands on the underlying web server.

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 9.1 CRITICAL
AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
vuln.today AI 9.1 CRITICAL

Admin-level file-write is required to plant the payload (PR:H), but code executes in the unauthenticated guest render path (AV:N, S:C) yielding full RCE impact (C:H/I:H/A:H).

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Sep 25, 2026 - 17:04 EUVD
CVE Published
Sep 25, 2026 - 15:30 cve.org
CRITICAL 9.1

DescriptionCVE.org

InvoicePlane is a self-hosted open source application for managing invoices, clients, and payments. Prior to 1.7.2-rc-1, InvoicePlane builds its permitted template list by scanning a PHP template directory that can be written through an administrator-controlled file-write capability. A malicious PHP file placed in the directory is automatically trusted by Mdl_templates and can be selected as public_invoice_template. When a public invoice is rendered, the guest View controller includes the trusted file and executes it with web-server privileges. This issue is fixed in version 1.7.2-rc-1.

Technical POC Analysis

Primary bug class: CWE-98 Improper Control of Filename for Include/Require Statement in PHP.

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 deployments prior to 1.7.2-rc-1 are exposed to a critical remote code execution flaw that can be triggered by unauthenticated guests after a high-privileged attacker plants a malicious template, potentially leading to full web server compromise and exposure of sensitive billing and customer data. This affects finance, IT, and customers relying on the invoicing platform, and a single compromised administrator account or insider could disrupt billing operations, enable fraud, and trigger regulatory consequences. Leadership should treat this as a high-priority risk requiring immediate containment and a rapid upgrade plan.

Business Impact: Severe
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 64% exploitable
Prevalence
Low
niche self-hosted open-source invoicing app, no broad enterprise 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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
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
Very High
Technical Impact
Total

Priority Score

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

Attack Technique

Local File Inclusion vulnerabilities occur when an application accepts user-controlled input to specify which file should be loaded or executed, typically through functions like PHP's `include()`, `require()`, or `fopen()`.

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