NotePolicy от Crater проверяет только общие возможности Bouncer (управление всеми заметками/просмотр всех заметок) без сравнения компаний и владельцев, в отличие от InvoicePolicy и других родственных политик, которые дополнительно проверяют $user->hasCompany($model->company_id). Действия show(), update() и Destroy() NotesController авторизуются через $this->authorize('просмотр заметок'/'управление заметками') без передачи целевой модели Note, а область видимости компании Note (scopeWhereCompany) применяется только в конечной точке списка, а не в show/update/destroy. Любой авторизованный пользователь одной компании может читать, редактировать или удалять заметки другой компании по идентификатору.
Это отличие от ранее сообщавшегося упущения компании-владельца CustomerPolicy (другой класс политики и контроллер).
Показать оригинальное описание (EN)
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.
Характеристики атаки
Последствия
Строка CVSS v3.1