CVE-2026-55386: InvoiceShelf ORDER BY SQL injection through orderByField
InvoiceShelf is an open-source web & mobile app that helps track expenses, payments and create professional invoices and estimates. Prior to version 2.4.0, InvoiceShelf passes the authenticated user's orderByField query parameter into Laravel orderBy calls in Invoice::scopeApplyFilters without restricting the value to column identifiers. A crafted SQL expression can therefore enter the ORDER BY clause across invoice and other list endpoints, enabling boolean-based blind extraction of database information. This issue is fixed in version 2.4.0.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
InvoiceShelfto a version that resolves this vulnerability.Fixed in 2.4.0
Event History
Frequently Asked Questions
Who can exploit this issue?
An attacker must be authenticated because the vulnerable orderByField parameter is taken from an authenticated user's request. The affected surface includes invoice and other list endpoints that use the vulnerable filtering scope.
What is the practical impact of successful exploitation?
A crafted SQL expression can be placed into an ORDER BY clause, allowing boolean-based blind extraction of information from the database.
Which versions are affected and how should it be remediated?
InvoiceShelf versions prior to 2.4.0 are affected. Upgrade to version 2.4.0, which fixes the issue.