Skip to content

Conversation

@PhiloNL
Copy link
Contributor

@PhiloNL PhiloNL commented Jan 23, 2026

Summary

  • Adds #[Locked] attributes to $activeComponent and $components properties in the Modal component
  • Provides defense-in-depth against Livewire hydration attacks (CVE-2025-54068)
  • Updates test to use proper server-side methods instead of directly setting properties

Context

While CVE-2025-54068 was fixed in Livewire 3.6.4, the $components array property made this package a convenient attack target for automated scanning. Adding #[Locked] prevents any client-side manipulation of these properties via Livewire's updates mechanism, eliminating this package as an attack vector even on unpatched Livewire versions.

Test plan

  • Verify all existing tests pass
  • Confirm modal opening/closing still works (uses server-side methods)
  • Confirm resetState() still works (server-side method)

🤖 Generated with Claude Code

This hardens the Modal component against Livewire hydration attacks
(CVE-2025-54068). While the vulnerability was fixed in Livewire 3.6.4,
adding #[Locked] to $activeComponent and $components provides
defense-in-depth by preventing any client-side manipulation of these
properties via the updates mechanism.

The test was updated to use proper server-side methods instead of
directly setting properties, which is exactly what #[Locked] prevents.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@PhiloNL PhiloNL merged commit 3c17ed4 into main Jan 23, 2026
1 check passed
@PhiloNL PhiloNL deleted the chore/security-hardening branch January 23, 2026 11:08
PhiloNL added a commit that referenced this pull request Jan 23, 2026
)

This hardens the Modal component against Livewire hydration attacks
(CVE-2025-54068). While the vulnerability was fixed in Livewire 3.6.4,
adding #[Locked] to $activeComponent and $components provides
defense-in-depth by preventing any client-side manipulation of these
properties via the updates mechanism.

The test was updated to use proper server-side methods instead of
directly setting properties, which is exactly what #[Locked] prevents.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants