Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconObtain admin file-write access
-
DeliveryUpload malicious PHP to template directory
-
ExploitDirectory scan auto-trusts template
-
InstallSet as public_invoice_template
-
C2Guest requests public invoice
-
ExecuteWeb server includes and executes file
-
ImpactArbitrary 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
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).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.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.
Articles & Coverage 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
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.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
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()`.
More in Invoiceplane
View allInvoicePlane through 1.6.3 allows authenticated users to upload PHP files as attachments that can be executed remotely.
Remote Code Execution in InvoicePlane self-hosted invoicing application through code injection. PoC and patch available.
InvoicePlane version 1.4.10 is vulnerable to a Arbitrary File Upload resulting in an authenticated user can upload a mal
In InvoicePlane 1.5.11 a misconfigured web server allows unauthenticated directory listing and file download. Rated high
Unauthenticated attackers can read arbitrary files from InvoicePlane servers through path traversal in the Guest control
An SQL injection vulnerability in InvoicePlane through 1.6.3 has been identified in "maxQuantity" and "minQuantity" para
InvoicePlane (all versions tested as of December 2024) v.1.6.11 and before contains a remote code execution vulnerabilit
Cross Site Scripting (XSS) vulnerability in InvoicePlane 1.6 via filter_product input to file modal_product_lookups.php.
An XSS issue was discovered in InvoicePlane 1.5.10 via the "Quote PDF Password(Optional)" field. Rated medium severity (
Stored XSS via SVG file upload in InvoicePlane 1.7.0 Login Logo functionality allows authenticated administrators to inj
Stored XSS in InvoicePlane 1.7.0's invoice editing function fails to sanitize the invoice_number parameter, allowing aut
Stored XSS in InvoicePlane 1.7.0 via malicious SVG file upload in the Invoice Logo function allows authenticated adminis
EUVD-2026-87129
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB