Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged user
-
DeliverySet malicious traversal xml_id in e-invoice config
-
ExploitTrigger generate_xml() invoice XML generation
-
Executioninclude() resolves traversal to existing PHP
-
ImpactDisclose/execute included file contents
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection 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 low-privileged InvoicePlane account (prior to version 1.7.2) that can influence the e-invoice configuration where the xml_id value is stored. The attacker must supply a traversal sequence in xml_id and target an EXISTING .php file reachable from the XMLconfigs helper directory, since Invoices::generate_xml() calls file_exists() before include(). Exploitation is LIMITED by: the need for valid credentials with config-write access, the requirement that the traversal resolve to an already-present PHP file, and the fact that full remote code execution is NOT achievable through this flaw alone - it depends on a separate file-upload/file-write capability. Fixed in 1.7.2 via an alphanumeric-plus-hyphen allowlist on xml_id. |
| Impact | This is a moderate-priority, not urgent, finding. The CVSS 3.1 vector (AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H = 7.5) combines network reachability with two dampeners: AC:H (attacker must be able to influence the e-invoice configuration AND supply a traversal path resolving to an existing includable PHP file) and PR:L (a valid low-privileged authenticated account is required - this is not an anonymous internet attack). No EPSS score, no CISA KEV listing, and no public exploit code are present in the provided data, so exploitation status is 'no public exploit identified at time of analysis.' The I:H/A:H components of the NVD vector appear overstated: the vendor advisory (GHSA-9248-qccw-7x7j) explicitly states the standalone bug is local file inclusion and that code execution requires a SEPARATE file-upload or file-write primitive - so integrity/availability impact is conditional on a second, unlisted weakness rather than intrinsic to this CVE. The 'RCE' tag is therefore misleading relative to the advisory's own scoping. Net: a real authenticated LFI worth patching, but its practical severity is closer to a high-confidentiality information-disclosure issue than a directly weaponizable remote-code-execution flaw. |
| Exploit ScenarioDerived | An attacker holding a low-privileged InvoicePlane account with access to the e-invoice/XML configuration sets the stored xml_id to a traversal sequence (e.g. '../../../some/existing') so that Invoices::generate_xml() includes an arbitrary existing PHP file outside the XMLconfigs helper directory. This yields local file inclusion of application source or configuration; to escalate to code execution the attacker must independently plant or overwrite a PHP file via a separate primitive. No public exploit code is identified in the available data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 25, 2026
Local file inclusion in InvoicePlane before 1.7.2 allows an authenticated low-privileged user who can influence the e-invoice xml_id configuration to use path traversal sequences to include an existing .php file from the XMLconfigs helper directory. This is a moderate-priority, not urgent, finding: the advisory establishes local file inclusion, while full code execution would require a separate file-upload or file-write primitive, and no public exploit identified at time of analysis. The issue is fixed in version 1.7.2 via an allowlist on xml_id.
RemediationAI
Upgrade to InvoicePlane 1.7.2 or later; this vendor-released patch validates xml_id with an alphanumeric-plus-hyphen allowlist and is referenced by GHSA-9248-qccw-7x7j, PR #1560, commit 07ebd6b5922b47b941cc3c6922c39043ad558d8f, and release v1.7.2 (https://github.com/InvoicePlane/InvoicePlane/releases/tag/v1.7.2). If immediate upgrade is not possible, restrict who can edit e-invoice configuration to fully trusted administrators because exploitation requires an authenticated low-privileged account with config-write access, sanitize existing stored xml_id values to reject traversal sequences such as ../ or absolute paths, disable the e-invoice XML generation feature if it is not needed, and separately restrict file-upload/file-write capabilities because code execution depends on an independent file-write primitive. Trade-offs include broken invoice workflow for staff who lose config access, inability to generate XML e-invoices when the feature is disabled, and possible disruption of custom XML templates if stored xml_id values are changed.
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 invoice management application. The vulnerable Invoices::generate_xml() method builds a path by appending a database-derived xml_id to the XMLconfigs helper directory and then calls include on "$path . $xml_id . '.php'"; because xml_id is not validated before file_exists() and include, a crafted value containing traversal sequences can resolve to an existing PHP file outside the intended helper directory. This is CWE-22 (Path Traversal), and the assessed vector is CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:L, meaning remote network exploitation requires high complexity and a low-privileged authenticated account with config-write access; the CVE record's 7.5 vector is broader, but the independent assessment limits integrity and availability impact to low. The upstream fix in PR #1560 adds an allowlist check: is_string($xml_id) && preg_match('/^[A-Za-z0-9-]+$/', $xml_id) === 1.
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:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Authenticated low-priv config write (PR:L) and traversal to an existing includable file (AC:H) give an LFI with high confidentiality; code execution needs a separate primitive so I/A only Low.
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, InvoicePlane's Invoices::generate_xml() method appends a database-derived xml_id to the XMLconfigs helper directory and includes the resulting PHP path without validating the identifier. A low-privileged attacker who can influence the e-invoice configuration can use traversal sequences to include an existing PHP file. The standalone advisory establishes local file inclusion; code execution requires a separate file-upload or file-write primitive. This issue is fixed in version 1.7.2.
Technical POC Analysis
CWE-22 (path traversal) reaching a CWE-98 sink (PHP include on an attacker-influenced filename).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
InvoicePlane versions before 1.7.2 contain a local file inclusion flaw that could allow a low-privileged user with influence over e-invoice xml_id configuration to read files from the XMLconfigs helper directory via path traversal, potentially exposing sensitive PHP configuration data. While no public exploit identified at time of analysis and code execution would require an additional file-write primitive, the issue affects organizations using InvoicePlane for invoicing and warrants prioritization because internal users could access server-side files. Leadership should ensure affected instances are upgraded to 1.7.2 and that low-privileged configuration access is minimized.
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
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
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-87132
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB