Every CVE Search/ Get API key

CVE-2026-55561

InvoicePlane: Guest user IDOR in quote approval and rejection

5.3 Medium

InvoicePlane is a self-hosted open source application for managing invoices, clients, and payments. Prior to 1.7.2-beta-1, guest users can approve or reject quotes belonging to any client, not just their assigned clients. The approve() and reject() methods in the Guest Quotes controller, application/modules/guest/controllers/Quotes.php, call approve_quote_by_id($quote_id) and reject_quote_by_id($quote_id) directly without the where_in('ip_quotes.client_id', $this->user_clients) scoping that sibling methods use. A guest user assigned to one client can change another client's quote status by supplying sequential integer quote_id values, and email_quote_status() also sends notification emails. Additionally, generate_pdf() calls mark_viewed($quote_id) before checking the client scope, allowing a guest user to mark another client's quote as viewed. These issues are fixed in version 1.7.2-beta-1 and the subsequent stable version 1.7.2.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
Low
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
Low
Availability
None

Exploit likelihood

0.27%Unchanged since Oct 29, 2026
90%50%10%1%

What each source reports

CVE List Score used 5.3

InvoicePlane: Guest user IDOR in quote approval and rejection

InvoicePlane is a self-hosted open source application for managing invoices, clients, and payments. Prior to 1.7.2-beta-1, guest users can approve or reject quotes belonging to any client, not just their assigned clients. The approve() and reject() methods in the Guest Quotes controller, application/modules/guest/controllers/Quotes.php, call approve_quote_by_id($quote_id) and reject_quote_by_id($quote_id) directly without the where_in('ip_quotes.client_id', $this->user_clients) scoping that sibling methods use. A guest user assigned to one client can change another client's quote status by supplying sequential integer quote_id values, and email_quote_status() also sends notification emails. Additionally, generate_pdf() calls mark_viewed($quote_id) before checking the client scope, allowing a guest user to mark another client's quote as viewed. These issues are fixed in version 1.7.2-beta-1 and the subsequent stable version 1.7.2.

Record
CVE-2026-55561
CVSS 4.0
5.3 MediumCVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
Weakness
CWE-639
Updated
2026-11-03
EUVDEUVD-2026-112549 5.3

InvoicePlane is a self-hosted open source application for managing invoices, clients, and payments. Prior to 1.7.2-beta-1, guest users can approve or reject quotes belonging to any client, not just their assigned clients. The approve() and reject() methods in the Guest Quotes controller, application/modules/guest/controllers/Quotes.php, call approve_quote_by_id($quote_id) and reject_quote_by_id($quote_id) directly without the where_in('ip_quotes.client_id', $this->user_clients) scoping that sibling methods use. A guest user assigned to one client can change another client's quote status by supplying sequential integer quote_id values, and email_quote_status() also sends notification emails. Additionally, generate_pdf() calls mark_viewed($quote_id) before checking the client scope, allowing a guest user to mark another client's quote as viewed. These issues are fixed in version 1.7.2-beta-1 and the subsequent stable version 1.7.2.

Record
EUVD-2026-112549
CVSS 4.0
5.3 MediumCVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
Updated
2026-11-03
NVD 5.3

InvoicePlane is a self-hosted open source application for managing invoices, clients, and payments. Prior to 1.7.2-beta-1, guest users can approve or reject quotes belonging to any client, not just their assigned clients. The approve() and reject() methods in the Guest Quotes controller, application/modules/guest/controllers/Quotes.php, call approve_quote_by_id($quote_id) and reject_quote_by_id($quote_id) directly without the where_in('ip_quotes.client_id', $this->user_clients) scoping that sibling methods use. A guest user assigned to one client can change another client's quote status by supplying sequential integer quote_id values, and email_quote_status() also sends notification emails. Additionally, generate_pdf() calls mark_viewed($quote_id) before checking the client scope, allowing a guest user to mark another client's quote as viewed. These issues are fixed in version 1.7.2-beta-1 and the subsequent stable version 1.7.2.

Record
CVE-2026-55561
CVSS 4.0
5.3 MediumCVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Weakness
CWE-639
Updated
2026-11-03
OSV 5.3

InvoicePlane: Guest user IDOR in quote approval and rejection

InvoicePlane is a self-hosted open source application for managing invoices, clients, and payments. Prior to 1.7.2-beta-1, guest users can approve or reject quotes belonging to any client, not just their assigned clients. The approve() and reject() methods in the Guest Quotes controller, application/modules/guest/controllers/Quotes.php, call approve_quote_by_id($quote_id) and reject_quote_by_id($quote_id) directly without the where_in('ip_quotes.client_id', $this->user_clients) scoping that sibling methods use. A guest user assigned to one client can change another client's quote status by supplying sequential integer quote_id values, and email_quote_status() also sends notification emails. Additionally, generate_pdf() calls mark_viewed($quote_id) before checking the client scope, allowing a guest user to mark another client's quote as viewed. These issues are fixed in version 1.7.2-beta-1 and the subsequent stable version 1.7.2.

Record
CVE-2026-55561
CVSS 4.0
5.3 MediumCVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
Weakness
CWE-639
Updated
2026-11-04

Affected products

History

History
RecordedChangedSources
factsEUVD, NVD, OSV
referencesCVE List
first indexedCVE List, EUVD, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-55561 is a medium vulnerability (CVSS 5.3) in Invoiceplane, published October 28, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.27%, the 20th percentile. No source names a fixed version.

References

MoveEnter Open