Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessHost malicious page with delete request
-
ExploitLure authenticated admin to load it
-
ExecutionBrowser sends cross-origin request with session
-
ImpactInvoice or tax record deleted
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 | Exploitation requires (1) a victim who is an authenticated InvoicePlane administrator with an active session, and (2) that victim to load attacker-controlled content that triggers the vulnerable Invoices::delete() or Invoices::delete_invoice_tax() route, which prior to 1.7.2 accepted state-changing requests without a POST method or CSRF token. Limiting factors: the attack is only possible against instances running before 1.7.2, it cannot succeed without administrator interaction (loading the malicious content while logged in), and the attacker gains no direct authentication - they rely entirely on the victim's session. Impact is confined to deletion of invoice or invoice-tax records. |
| Impact | This is a moderate, not high, real-world priority despite the 7.5 CVSS. The core issue is a CSRF flaw (the fixing commit adds a POST-method check plus verify_csrf_token() on state-changing routes), yet the record is CWE-22 'Path Traversal' with a matching 'Path Traversal' tag - that classification is wrong and should be treated as CSRF/CWE-352. The supplied CVSS vector (AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H) is also internally inconsistent with a CSRF: it sets UI:N, but the description explicitly requires an authenticated administrator to load attacker-controlled content (victim interaction), and it assigns PR:L to the attacker when in CSRF the privilege belongs to the tricked victim, not the attacker. The C:H/I:H/A:H impact is overstated - the described consequence is deletion of an invoice or invoice-tax record, which is an integrity/availability concern with no confidentiality disclosure. No EPSS score, no CISA KEV listing, and no public exploit were provided, so there is no signal of active or automated exploitation. Net: a legitimate, vendor-confirmed and patched CSRF, but requiring victim interaction and limited to data deletion, warranting routine patching rather than emergency response. |
| Exploit ScenarioDerived | An attacker crafts a web page (or email/forum content) containing an auto-loading request to InvoicePlane's Invoices::delete() or delete_invoice_tax() route and lures a logged-in administrator to open it. Because the routes accepted GET/side-effect requests without a CSRF token, the administrator's authenticated session silently deletes the targeted invoice or tax record. No public exploit code was provided, though the trivial nature of the GET-based deletion makes weaponization straightforward. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 25, 2026
Cross-site request forgery in InvoicePlane before 1.7.2 allows a remote, unauthenticated attacker to force deletion of invoice and invoice-tax records by inducing a logged-in administrator to load attacker-controlled content that invokes the Invoices::delete() or Invoices::delete_invoice_tax() routes. Those routes performed state-changing operations without requiring a POST method or validating a CSRF token, so the victim administrator's active session was sufficient to authorize the deletion (independent assessment: CVSS:3.1/AV:N/AC:L/PR:N/UI:R - integrity high, availability low, confidentiality none). No public exploit has been identified at time of analysis, and no confirmed active exploitation (CISA KEV) applies; despite the 7.5 base score, this is a moderate rather than high real-world priority because it requires administrator interaction and results only in removal of financial records, with the fix released in 1.7.2.
RemediationAI
Vendor-released patch: 1.7.2 - upgrade InvoicePlane to 1.7.2 or later (https://github.com/InvoicePlane/InvoicePlane/releases/tag/v1.7.2), which introduces an ensure_valid_post_request() check enforcing the POST method and validating the CSRF token on the affected invoice deletion routes; the prerequisite change is visible in commit 2f426e39d3744f2d732dc48114f96eeac9cbbfc3 and is documented in advisory GHSA-mhvh-4j3w-7pvj. If upgrading immediately is not possible, compensating controls are limited because the flaw stems from the application accepting GET-style state changes without a token: restrict administrative access to the InvoicePlane backend to trusted networks or IP ranges (side effect: off-site administrators lose access unless routed through a VPN), require administrators to log out when not actively administering the instance so no session cookie is available to be abused, and enable browser cookie protections such as SameSite=Strict/Secure/HttpOnly and modern strict-origin CSRF defenses at any reverse proxy in front of the app (trade-offs: SameSite enforcement can break legitimate cross-site or embedded workflows and is browser-dependent, so it reduces but does not eliminate the risk). There is no supported configuration flag within the affected versions that disables these specific routes, so patching remains the only complete fix; also note the supplied CWE-22/Path Traversal tag appears incorrect for this CSRF issue and should not drive the remediation approach.
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 for managing invoices, clients, and payments, built on the CodeIgniter framework where controller methods map directly to HTTP routes. The affected controller, application/modules/invoices/controllers/Invoices.php, exposed the delete() and delete_invoice_tax() actions as callable via HTTP without verifying the request method or a CSRF token; the upstream fix adds a security helper and an ensure_valid_post_request() guard that rejects any request whose method is not POST and that fails verify_csrf_token(), redirecting with an 'invalid_request' flash message. The root-cause class is cross-site request forgery (CWE-352), which is the flaw the commit and advisory actually address; note that the supplied CWE mapping (CWE-22, Path Traversal) and the 'Path Traversal' tag do not match the described behavior or the patch, and appear to be a misclassification of this CSRF/missing-method-validation issue. The CPE cpe:2.3:a:invoiceplane:invoiceplane:*:*:*:*:*:*:*:* indicates all versions up to and including 1.7.1 are potentially affected. The discrepancy between the vendor-supplied vector (CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H, score 7.5) and the independent assessment (AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:L) reflects a disagreement about attack prerequisites: the assessed vector correctly models the CSRF nature of the bug, where the attacker needs no credentials but does need the victim to trigger the request, while the vendor vector overstates confidentiality impact and understates the user-interaction requirement.
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
Classic CSRF: attacker needs no privileges (PR:N) but the authenticated admin must load malicious content (UI:R); deletes financial data so I:H, minor A:L, no confidentiality (C:N).
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 exposes Invoices::delete() and Invoices::delete_invoice_tax() as state-changing routes without requiring POST and validating a CSRF token. When an authenticated administrator loads attacker-controlled content that requests an affected route, the application can delete an invoice or invoice tax record. The cross-origin action can remove financial data without the administrator's intent. This issue is fixed in version 1.7.2.
Technical POC Analysis
Bug class: cross-site request forgery (CWE-352).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Organizations self-hosting the InvoicePlane billing application at versions below 1.7.2 face a cross-site request forgery flaw that lets an unauthenticated attacker delete invoice and invoice-tax records simply by luring a logged-in administrator to a malicious web page. The exposure is limited to data integrity of financial records and requires administrator interaction, but deletion of invoices can disrupt billing, revenue reconciliation, and audit trails, and may create compliance obligations around record retention. No public exploit has been identified at time of analysis, so this is a manageable but time-sensitive housekeeping issue for finance and IT teams running the affected product.
Apply vendor patch (upgrade to InvoicePlane 1.7.2 or later).
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
Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.
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-87133
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB