Skip to main content

InvoicePlane CVE-2026-85274

| EUVDEUVD-2026-87124 MEDIUM
Cross-Site Request Forgery (CSRF) (CWE-352)
2026-09-25 GitHub_M
6.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Lure authenticated admin to attacker page
  2. Delivery
    Browser auto-loads /invoices/recurring/stop/{id}
  3. Exploit
    Forged GET passes with no CSRF token
  4. Execution
    Recurring invoices stopped
  5. Impact
    Billing interrupted, financial loss

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V3 - Web Frontend Security Anti-CSRF tokens, SameSite cookies
MITRE ATT&CK

1 technique across 1 tactic: Initial Access

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

Exploitation Conditions

Exploitation requires a victim who is an authenticated InvoicePlane administrator with an active session to load attacker-controlled web content while that session is valid; the vulnerable endpoint is the state-changing GET route /invoices/recurring/stop/{id} in Recurring::stop() which, prior to 1.7.2, accepts requests without CSRF token validation. Limiting factors: only versions before 1.7.2 are affected; the target recurring-invoice IDs must be known or brute-forced; and the impact is confined to stopping recurring billing (no data disclosure or account compromise). No click is needed once the admin loads the page (auto-fetching <img>), but the admin-session precondition (UI:R) meaningfully constrains real-world exploitation.

Impact

This is a genuine but moderate-severity CSRF flaw (CWE-352) confirmed by the vendor advisory (GHSA-qf9q-2hxm-4wh9), the fixing PR #1636, commit 2c76ef56, and the v1.7.2 release. The NVD CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N, 6.5) is internally consistent: the attacker is unauthenticated (PR:N) because CSRF abuses the VICTIM's session, and UI:R correctly reflects that a logged-in administrator must load attacker-controlled content for the forged GET to fire. No EPSS score, no CISA KEV listing, and no public exploit code are present in the intelligence, so this is 'no public exploit identified at time of analysis' - not active exploitation. Note the fix CHANGELOG uses the loaded phrase 'zero-interaction'; that means no click is required (an <img> tag auto-fetches the GET), but it still depends on the admin being authenticated and loading the malicious page, so the practical bar is higher than a fully drive-by remote exploit. The I:H rating is defensible but arguably overstated: the only effect is stopping recurring invoices, a bounded and administratively recoverable state change (the admin can re-enable billing), so the real-world impact is business disruption/financial-loss risk rather than deep data integrity compromise. Overall a real-but-not-urgent priority - patch on a normal cycle.

Exploit ScenarioDerived

An attacker crafts a web page (or email) embedding auto-loading resources such as <img src="https://victim-invoiceplane/invoices/recurring/stop/1"> repeated across many recurring-invoice IDs. When an authenticated InvoicePlane administrator visits that content, their browser silently issues the state-changing GET requests, stopping the targeted recurring invoices and interrupting billing. No public proof-of-concept is referenced, though the fix CHANGELOG explicitly describes the trivial <img>-tag technique.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 25, 2026

Cross-site request forgery in InvoicePlane versions prior to 1.7.2 lets an attacker silently stop a victim's recurring invoices by luring an authenticated administrator into loading attacker-controlled content that auto-requests the state-changing GET endpoint /invoices/recurring/stop/{id}. Because the route performs a privileged action without CSRF token validation on a simple GET, the attacker needs only a known or brute-forceable recurring-invoice identifier and no user interaction beyond the admin having a live session. The impact is integrity-only and confined to interrupting recurring billing, which can cause financial loss for the organization; the vendor has confirmed the flaw (GHSA-qf9q-2hxm-4wh9) and fixed it in release 1.7.2. No public exploit code has been identified and the issue is not listed as actively exploited in CISA KEV, though the low attack complexity and zero-click nature of the request keep the practical risk moderate.

RemediationAI

Upgrade to InvoicePlane 1.7.2, the vendor-released patch that converts the stop action to a POST form with CSRF token validation (release tag v1.7.2, PR #1636, commit 2c76ef5655c2c188110a9c1932338e6a3022ea20); the advisory at https://github.com/InvoicePlane/InvoicePlane/security/advisories/GHSA-qf9q-2hxm-4wh9 documents the issue. If immediate upgrade is not possible, compensating controls include: block or reject GET requests to /invoices/recurring/stop/* at the reverse proxy or WAF - note this also disables the legitimate stop button in the unpatched UI, so recurring invoices would need to be stopped at the database/config level until the patch is applied; set session cookies with SameSite=Strict (or Lax) and HttpOnly, understanding that Strict can break external SSO/OAuth redirects; restrict administrative access to InvoicePlane to trusted networks or an IP allowlist/VPN, which reduces the reachable attack surface but requires network changes for remote admins; and monitor application logs for unexpected recurring-invoice stop events and unusual Referer/Origin headers, since CSRF requests typically carry foreign or absent origins. Rotating administrator sessions after confirming a suspicious stop event limits continued abuse of a hijacked session.

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

InvoicePlane is a self-hosted PHP/CodeIgniter application for invoices, clients and payments, and the affected component is the Recurring invoices controller in the invoices module (CPE cpe:2.3:a:invoiceplane:invoiceplane:*:*:*:*:*:*:*:*, all versions below 1.7.2). The root cause is CWE-352 (Cross-Site Request Forgery): the Recurring::stop() action was implemented as a link-driven GET route (invoices/recurring/stop/{invoice_recurring_id}) rendered in partial_invoices_recurring_table.php, so any browser request carrying the administrator's session cookie is treated as an authorized state change. The upstream fix in PR #1636 changed the UI to a POST form and added CSRF token validation via _csrf_field(), plus a new ensure_valid_post_request('invoices/recurring/index') guard in the controller - the classic pattern of converting a state-changing GET into a POST with a per-session token. Because no token was required and no method restriction existed, no JavaScript or social engineering beyond an auto-fetching resource (e.g. an <img> tag) is needed once the admin is authenticated; the only enumeration constraint is knowing or guessing valid recurring-invoice IDs.

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 6.5 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N
vuln.today AI 4.3 MEDIUM

Classic CSRF: attacker unauthenticated (PR:N) abusing an authed admin who must load content (UI:R); impact is a bounded, recoverable billing-stop, so I:L rather than I:H, C/A:N.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

1
Patch available
Sep 25, 2026 - 17:04 EUVD

DescriptionCVE.org

InvoicePlane is a self-hosted open source application for managing invoices, clients, and payments. Prior to 1.7.2, InvoicePlane exposes Recurring::stop() as a state-changing GET route without CSRF token validation. When an authenticated administrator loads attacker-controlled content that requests /invoices/recurring/stop/{id}, the application stops the selected recurring invoice. An attacker can target multiple identifiers to interrupt recurring billing and cause financial loss. This issue is fixed in version 1.7.2.

Threat Intelligence Overview

EPSS Score
0.2%
Top 95% exploitable
Prevalence
Low
niche self-hosted open-source PHP invoicing app, limited 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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.

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