Description
Crater's NotePolicy checks only a blanket Bouncer ability (manage-all-notes / view-all-notes) with no company-ownership comparison, unlike InvoicePolicy and other sibling policies which additionally verify ->hasCompany(->company_id). Any authenticated user of one company can read, edit, or delete another company's notes by ID.
Published: 2026-08-05
Score: 8.2 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Crater's NotePolicy verifies only a blanket Bouncer ability (manage-all-notes or view-all-notes) and does not compare the company ownership of notes. The policy thus lacks a check like ->hasCompany(->company_id). Because of this, any authenticated user from one company can read, edit, or delete another company's notes by ID. This is an IDOR (CWE‑639) that compromises the confidentiality and integrity of the notes.

Affected Systems

The vulnerability impacts the open‑source invoicing application Crater from the vendor crater‑invoice. No specific release or version is identified in the advisory, so any current or future versions that retain the described policy logic may be affected until the fix is applied.

Risk and Exploitability

The CVSS score of 8.2 classifies it as High severity, and the EPSS score of 0.00215 (less than 1%) indicates a low yet non‑zero likelihood of exploitation. Based on the description, it is inferred that the attack vector is through the web interface or API endpoints for show, update, and destroy actions, requiring only a valid user session. There is no indication of denial of service or remote code execution, but unauthorized access to other organizations' notes carries significant privacy and data integrity risks.

Generated by OpenCVE AI on August 10, 2026 at 21:52 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the latest Crater release that includes a company‑ownership check in NotePolicy.
  • If an update is not yet available, modify NotePolicy to verify $user->hasCompany($model->company_id) for view and manage actions and adjust NotesController to pass the Note instance to authorize() to prevent IDOR.
  • Review all policy classes and controllers for similar missing ownership validations to ensure comprehensive access control.

Generated by OpenCVE AI on August 10, 2026 at 21:52 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

References
History

Mon, 10 Aug 2026 12:00:00 +0000

Type Values Removed Values Added
Description Crater's NotePolicy checks only a blanket Bouncer ability (manage-all-notes / view-all-notes) with no company-ownership comparison, unlike InvoicePolicy and other sibling policies which additionally verify $user->hasCompany($model->company_id). NotesController's show(), update(), and destroy() actions authorize via $this->authorize('view notes'/'manage notes') without passing the target Note model, and Note's company-scoping (scopeWhereCompany) is applied only in the list endpoint, not in show/update/destroy. Any authenticated user of one company can read, edit, or delete another company's notes by ID. This is a distinct finding from the previously reported CustomerPolicy company-ownership omission (a different policy class and controller). Crater's NotePolicy checks only a blanket Bouncer ability (manage-all-notes / view-all-notes) with no company-ownership comparison, unlike InvoicePolicy and other sibling policies which additionally verify ->hasCompany(->company_id). Any authenticated user of one company can read, edit, or delete another company's notes by ID.

Mon, 10 Aug 2026 11:30:00 +0000

Type Values Removed Values Added
Title Crater: Cross-Company IDOR on Notes via Missing Company-Ownership Check in NotePolicy Crater - Cross-Company IDOR on Notes via Missing Company-Ownership Check in NotePolicy

Fri, 07 Aug 2026 09:45:00 +0000

Type Values Removed Values Added
First Time appeared Crater-invoice-inc
Crater-invoice-inc crater
Vendors & Products Crater-invoice-inc
Crater-invoice-inc crater

Wed, 05 Aug 2026 14:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Wed, 05 Aug 2026 11:15:00 +0000

Type Values Removed Values Added
Description Crater's NotePolicy checks only a blanket Bouncer ability (manage-all-notes / view-all-notes) with no company-ownership comparison, unlike InvoicePolicy and other sibling policies which additionally verify $user->hasCompany($model->company_id). NotesController's show(), update(), and destroy() actions authorize via $this->authorize('view notes'/'manage notes') without passing the target Note model, and Note's company-scoping (scopeWhereCompany) is applied only in the list endpoint, not in show/update/destroy. Any authenticated user of one company can read, edit, or delete another company's notes by ID. This is a distinct finding from the previously reported CustomerPolicy company-ownership omission (a different policy class and controller).
Title Crater: Cross-Company IDOR on Notes via Missing Company-Ownership Check in NotePolicy
Weaknesses CWE-639
References
Metrics cvssV3_1

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


Subscriptions

Crater-invoice-inc Crater
cve-icon MITRE

Status: PUBLISHED

Assigner: TuranSec

Published:

Updated: 2026-08-10T11:45:50.555Z

Reserved: 2026-08-05T10:53:53.176Z

Link: CVE-2026-71242

cve-icon Vulnrichment

Updated: 2026-08-05T12:52:17.587Z

cve-icon NVD

Status : Received

Published: 2026-08-05T11:16:27.123

Modified: 2026-08-10T12:17:26.747

Link: CVE-2026-71242

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-10T22:00:05Z

Weaknesses
  • CWE-639

    Authorization Bypass Through User-Controlled Key