Skip to content
OpenAdvisories
High · 7.6 CVE-2026-55382 EUVD-2026-101613

InvoiceShelf: Cross-company read/modify/delete of notes via missing company scope in NotePolicy (BOLA/IDOR)

Published Oct 14, 2026 · Updated Oct 15, 2026 · Assigned by GitHub_M

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 NotesController::show, NotesController::update, and NotesController::destroy authorize only the generic view notes or manage notes ability and do not pass the route-bound Note to NotePolicy::viewNotes or NotePolicy::manageNotes, so neither method checks the target note's company_id. Because the Note model has no global company scope, an authenticated staff user with ordinary note abilities can select another company's sequential note identifier and read, modify, or delete its reusable invoice, estimate, and payment note templates. This issue is fixed in version 2.4.0.

Affected products

VendorProductAffectedFixed
InvoiceShelf InvoiceShelf < 2.4.0 —

References