Read the docs
TI-2026-80016 Aliases GHSA-mhf7-xp6r-6qrc

Livewire: Authorization bypass in #[Authorize] via reordered parameter keys and #[Json] execution order

Priority LOW 38CWE-863Published · Updated

Key facts

Attack vector
—
Privileges required
—
User interaction
—
Attack complexity
—
Impact type
Security bypass
Confidentiality · integrity · availability
—
Fix status
Fixed

No CVSS vector from any source. Fix status from GitHub. Impact type from CWE-863.

Summary

### Impact Three issues allowed actions protected by the `#[Authorize]` attribute to run against records the current user is not authorized for: 1. **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')]` on `deleteComment(Comment $comment)`, a user could delete another user's comment. 2. **The same issue on event listeners.** Methods using both `#[On]` and `#[Authorize]` with a model parameter were affected in the same way through the `__dispatch` call. 3. **`#[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](https://github.com/yousef-aman)).

Why it matters now

Fix Fixed livewire/livewire (Packagist): 4.4.8

SSVC decision points

Not available: CISA has not published SSVC decision points for this record.

Affected products

VendorProductAffected versionsFixed inStatusSource
—livewire/livewire (Packagist)4.3.0 to before 4.4.84.4.8Patch availableGHSA-mhf7-xp6r-6qrc
  • livewire/livewire (Packagist) Vendor— Affected 4.3.0 to before 4.4.8 Fixed in 4.4.8 Patch available GHSA-mhf7-xp6r-6qrc

Remediation

  • Fix · GHSA-mhf7-xp6r-6qrc livewire/livewire (Packagist) Fixed in 4.4.8 Advisory →

Timeline

  1. 2026-10-23 Threatist record created from GHSA-mhf7-xp6r-6qrc

References

Sources

This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences