CVE-2026-81887: Livewire DOM-based cross-site scripting during client-side state handling
Impact In Livewire v3 (≤ 3.8.2) and v4 (≤ 4.3.3), a vulnerability allows unauthenticated attackers to execute arbitrary JavaScript in the origin of an affected application in specific scenarios. The issue stems from how certain client-side component state is handled. This vulnerability does not affect prior major versions. Exploitation requires user interaction, but does not require authentication or prior access to the application. The issue does not bypass server-side authorisation and grants an attacker no privileges beyond those the affected user already holds.
Patches This issue has been patched in Livewire v3.8.3 and v4.3.4. All users are strongly encouraged to upgrade to these versions or later as soon as possible.
Workarounds There is no known workaround at this time. Users are strongly advised to upgrade to a patched version immediately.
Other sources
Livewire is a full-stack framework for Laravel. From 3.0.0-beta.1 until 3.8.3 and 4.3.4, the dot-notated query-string parser in js/plugins/history/index.js, including fromQueryString() and insertDotNotatedValueIntoData(), accepts the proto, constructor, and prototype path segments and creates inherited objects. Client-side state handlers then access effects.html, effects.js, effects.xjs, and effects.scripts without Object.prototype.hasOwnProperty.call(), allowing inherited attacker-controlled state to be treated as trusted effects. An unauthenticated attacker can craft a URL that, when opened by a user, executes arbitrary JavaScript in the affected application's origin. Exploitation requires user interaction and does not bypass server-side authorization or grant privileges beyond the affected user. This issue is fixed in versions 3.8.3 and 4.3.4.
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
composer/livewire/livewireto a version that resolves this vulnerability.Fixed in 4.3.4 - Upgrade
Upgrade
composer/livewire/livewireto a version that resolves this vulnerability.Fixed in 3.8.3 - Upgrade
Upgrade
Livewireto a version that resolves this vulnerability.Fixed in 3.8.3 - Upgrade
Upgrade
Livewireto a version that resolves this vulnerability.Fixed in 4.3.4
Event History
Frequently Asked Questions
Who can exploit this issue, and what must they do?
An unauthenticated attacker can craft a malicious URL containing dot-notated query-string paths. Exploitation requires a user to open that URL in an affected application's origin.
What is the impact on a user who opens a malicious link?
The attacker can execute arbitrary JavaScript in the affected application's origin, within the context of the user who opened the link. The issue does not bypass server-side authorization or grant privileges beyond that affected user.
Which versions should be remediated?
Affected releases run from 3.0.0-beta.1 through versions before 3.8.3 in the 3.x line, and versions before 4.3.4 in the 4.x line. Upgrade to 3.8.3 or 4.3.4 as applicable.