Description
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 public customer invoice, estimate, and payment routes use an EmailLog token's numeric mailable_id without verifying mailable_type, and the JSON handlers do not enforce EmailLog::isExpired. A token issued for one document type can therefore disclose a different company's document when numeric identifiers collide, and an expired token can remain usable on the JSON routes GET /customer/invoices/{email_log:token}, GET /customer/estimates/{email_log:token}, and GET /customer/payments/{email_log:token}. View handlers can also mark a mismatched invoice or estimate as viewed and send a notification. This issue is fixed in version 2.4.0.
Published: 2026-10-14
Score: 8.2 High
EPSS: < 1% Very Low
KEV: No
Impact: High‑severity data disclosure via token type confusion
Action: Apply Patch
AI Analysis

Impact

InvoiceShelf’s public invoice, estimate, and payment routes accepted an EmailLog token that carried only a numeric mailable_id. The application did not check the mailable_type field and did not enforce token expiration. As a result, a token created for one document type could be used to retrieve another company’s documents when numeric identifiers collide, and expired tokens remained usable. The flaw also allowed an unauthorized party to mark mismatched invoices or estimates as viewed and trigger notifications. The vulnerability therefore enables confidential data leakage and potential disruption of notification workflows.

Affected Systems

Versions of InvoiceShelf released before 2.4.0 are impacted. The attack vector originates from the public GET routes that serve customer invoices, estimates, and payments identified by an EmailLog token.

Risk and Exploitability

The CVSS score of 8.2 places the issue in the high severity range, underscoring a significant risk to confidentiality. EPSS information is not available, so the current probability of exploitation remains uncertain, but the public nature of the routes suggests that token discovery or guessing does not require privileged access. The vulnerability is not yet listed in the CISA KEV catalog, though its severity warrants close monitoring and timely remediation.

Generated by OpenCVE AI on October 15, 2026 at 13:21 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update InvoiceShelf to version 2.4.0 or later to enable mailable_type verification and token expiration enforcement.
  • Restrict public access to the invoice, estimate, and payment token routes using application settings or a web application firewall.
  • Monitor system audit logs for abnormal invoice or estimate view activity to detect potential misuse.

Generated by OpenCVE AI on October 15, 2026 at 13:21 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 17 Oct 2026 17:30:00 +0000

Type Values Removed Values Added
First Time appeared Invoiceshelf
Invoiceshelf invoiceshelf
Vendors & Products Invoiceshelf
Invoiceshelf invoiceshelf

Wed, 14 Oct 2026 21:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 14 Oct 2026 19:45:00 +0000

Type Values Removed Values Added
Description 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 public customer invoice, estimate, and payment routes use an EmailLog token's numeric mailable_id without verifying mailable_type, and the JSON handlers do not enforce EmailLog::isExpired. A token issued for one document type can therefore disclose a different company's document when numeric identifiers collide, and an expired token can remain usable on the JSON routes GET /customer/invoices/{email_log:token}, GET /customer/estimates/{email_log:token}, and GET /customer/payments/{email_log:token}. View handlers can also mark a mismatched invoice or estimate as viewed and send a notification. This issue is fixed in version 2.4.0.
Title InvoiceShelf: Public EmailLog token type confusion allows cross-company invoice disclosure
Weaknesses CWE-285
References
Metrics cvssV3_1

{'score': 8.2, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N'}


Subscriptions

Invoiceshelf Invoiceshelf
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-14T19:43:41.543Z

Reserved: 2026-06-16T18:57:40.182Z

Link: CVE-2026-55383

cve-icon Vulnrichment

Updated: 2026-10-14T19:43:38.536Z

cve-icon NVD

Status : Deferred

Published: 2026-10-14T20:17:48.350

Modified: 2026-10-15T21:08:49.703

Link: CVE-2026-55383

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-17T17:15:11Z

Weaknesses