Livewire Remote Command Execution via Unmarshaling (Hydratio... #1710
+154
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🤖 Automated Content Update
This PR was automatically generated by the HackTricks News Bot based on a technical blog post.
📝 Source Information
🎯 Content Summary
Overview and Impact
The blog analyzes Laravel Livewire 3’s hydration/unmarshaling mechanism and shows how it can be abused for remote command execution (RCE) in two ways:
• A design flaw that gives RCE when an attacker knows the Laravel
APP_KEYby forging Livewire snapshots and abusing synthesizers plus Laravel deserialization gadgets.• CVE-2025-54068: an unauthenticated RCE in Livewire 3 that does no...
🔧 Technical Details
Turning Livewire Hydration and Synthesizers into a Generic Object-Instantiation Primitive
Livewire represents complex component properties using synthetic tuples of the form
[value, {"s":"<key>", ...meta}], wheresidentifies a synthesizer such asclctn,formormdl. The corehydrate()function checks each value withisSyntheticTuple()and dispatches to the corresponding synthesizer, passing a recursive$hydrateChildcallback that re-invokeshydrate()on nested children. By crafting JSON that uses tuples like[data,{"s":"clctn","class":"Some\\Class"}], an attacker can cause Livewire to instantiate arbitrary classes with controlled constructor parameters and recursively hydrated child objects. This converts Livewire’s hydration into a powerful generic object-instantiation engine that can be directed to build gadget graph...🤖 Agent Actions
Summary:
pentesting-web/deserialization/livewire-hydration-synthesizer-abuse.md) detailing how Livewire’s hydration, synthesizers, and Queueable/SerializableClosure gadgets can be weaponized both with a knownAPP_KEYand via CVE-2025-54068. The page covers snapshot forging, synth primitives, phpggc-based gadget chains, tool-assisted exploitation (laravel-crypto-killer & Livepyre), and defensive guidance, with full references.Testing:
This PR was automatically created by the HackTricks Feed Bot. Please review the changes carefully before merging.
📚 Repository Maintenance
All .md files have been checked for proper formatting (headers, includes, etc.).