PT-2026-135861
Publicado
2026-10-23
·
Atualizado
2026-10-23
Descrição por
CVSS 3.1
6.5
MédiaMétricasAV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
Impact
Three issues allowed actions protected by the
#[Authorize] attribute to run against records the current user is not authorized for:- Out-of-order parameter keys on actions.
#[Authorize]resolved a model parameter by its array key, while the action itself received parameters positionally. A request sending params as an object with reordered integer keys (e.g.{"1": 2, "0": 1}) could pass authorization with a record the user owns while the action received a different record. With#[Authorize('delete', 'comment')]ondeleteComment(Comment $comment), a user could delete another user's comment. - The same issue on event listeners. Methods using both
#[On]and#[Authorize]with a model parameter were affected in the same way through thedispatchcall. #[Json]methods ran before authorization. When a method had both#[Json]and#[Authorize], the method body executed before the authorization check. The response was still a 403, but any side effects (such as database writes) had already happened.
Only applications using the
#[Authorize] attribute are affected: on methods that take model parameters (issues 1 and 2), or on #[Json] methods (issue 3). Authorization performed inside the method (e.g. $this->authorize(...)) is not affected. Livewire 3.x is not affected.Patches
Fixed in v4.4.8. Call and event parameters must now be a list or use named (string) keys, otherwise the request is rejected, and
#[Json] methods are authorized before they run.Workarounds
Upgrade to v4.4.8. If you can't upgrade right away, call
$this->authorize(...) inside affected methods instead of relying on the #[Authorize] attribute.Credits
Reported by Yousef Aman (@yousef-aman).
Explorabilidade
Correção
Impactos
Fornecedores
Produtos afetados
Identificadores relacionados
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾