GHSA-mhf7-xp6r-6qrc
Livewire: Authorization bypass in #[Authorize] via reordered parameter keys and #[Json] execution order
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 the__dispatchcall. #[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).
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- High
- Availability
- None
What each source reports
GitHub Advisories Score used 6.5
Livewire: Authorization bypass in #[Authorize] via reordered parameter keys and #[Json] execution order
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 the__dispatchcall. #[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).
- Record
GHSA-mhf7-xp6r-6qrc- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-863
- Updated
- 2026-11-02
OSV 6.5
Livewire: Authorization bypass in #[Authorize] via reordered parameter keys and #[Json] execution order
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 the__dispatchcall. #[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).
- Record
GHSA-mhf7-xp6r-6qrc- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-863
- Updated
- 2026-11-02
Affected packages
| Package | Affected | Fixed |
|---|---|---|
livewire/livewirePackagist | 4.3.0 up to 4.4.8 | 4.4.8 |
livewire/livewirePackagist | 4.3.0 up to 4.4.8, plus listed versions v4.3.0v4.3.1v4.3.2v4.3.3v4.3.4 Show 9 moreShow lessv4.3.5v4.4.0v4.4.1v4.4.2v4.4.3v4.4.4v4.4.5v4.4.6v4.4.7 | 4.4.8 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | GitHub Advisories, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
GHSA-mhf7-xp6r-6qrc is a medium vulnerability (CVSS 6.5) in livewire/livewire, published October 23, 2026. No source lists public exploit code. Fixed in livewire/livewire 4.4.8.