Crater isolates data per company_id, and its Invoice/Estimate/Payment/Expense policies enforce both a Bouncer ability check and ->hasCompany(->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 with no company filter).
References
| Link | Resource |
|---|---|
| https://github.com/crater-invoice/crater |
Configurations
No configuration.
History
24 Oct 2026, 16:10
| Type | Values Removed | Values Added |
|---|---|---|
| Summary | (es) Crater aísla los datos por company_id, y sus políticas de Factura/Estimación/Pago/Gasto aplican tanto una verificación de habilidad de Bouncer como $user -mayor que hasCompany($model -mayor que company_id). Los métodos view/update/delete de CustomerPolicy omiten por completo la verificación de propiedad de la empresa, verificando solo la habilidad general. Las búsquedas de clientes vinculadas a modelos de ruta y el método masivo Customer::deleteCustomers() están igualmente sin alcance (self::find($id) sin filtro de empresa). Cualquier usuario autenticado de una empresa puede leer, reasignar (robar) o eliminar los registros de clientes de otra empresa, con la eliminación en cascada a las facturas y pagos de ese cliente. |
23 Oct 2026, 21:10
| Type | Values Removed | Values Added |
|---|---|---|
| Summary |
|
Information
Published : 2026-08-05 08:16
Updated : 2026-10-24 16:10
NVD link : CVE-2026-55739
Mitre link : CVE-2026-55739
CVE.ORG link : CVE-2026-55739
JSON object : View
Products Affected
No product.
CWE
CWE-639
Authorization Bypass Through User-Controlled Key
