CVE-2026-55739 PUBLISHED

Crater: Missing Tenant-Ownership Check in CustomerPolicy Allows Cross-Company Customer Data Theft and Deletion

Assigner: TuranSec
Reserved: 17.06.2026 Published: 05.08.2026 Updated: 05.08.2026

Crater isolates data per company_id, and its Invoice/Estimate/Payment/Expense policies enforce both a Bouncer ability check and $user->hasCompany($model->company_id). CustomerPolicy's view/update/delete methods omit the company-ownership check entirely, checking only the blanket ability. Route-model-bound customer lookups and the bulk Customer::deleteCustomers() method are similarly unscoped (self::find($id) with no company filter). Any authenticated user of one company can read, reassign (steal), or delete another company's customer records, with deletion cascading to that customer's invoices and payments.

Metrics

CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L
CVSS Score: 8.2

Product Status

Vendor crater-invoice
Product Crater
Versions Default: unknown
  • Version 6.0.6 is affected

Credits

  • Bobur Abdugafforov finder

References

Problem Types

  • CWE-639 Authorization Bypass Through User-Controlled Key CWE