Building an unmarshelling chain from hydrators#
hack.lu 2025 digest Program Adjacent pick 21–24 October 2025
Speakers not listed in the program text (companion outline: "Exploitation by using laravel-crypto-killer")
- Why: A reproducible unserialize-to-RCE chain in one of the most-deployed PHP stacks, with a shipping product vulnerable by default, is a concrete at-scale risk worth understanding even outside web-appsec focus.
- What: A three-step Livewire (Laravel) chain to remote command execution given the
APP_KEY: first a phpinfo leak viaFnStream/ShardedPrefixPublicUrlGenerator, then RCE viaSerializableClosure/Queueable/BroadcastEventgadgets, and finally a rebuilt chain reaching aTerminal-initiatedexitso the request completes normally (no error 500) for stealth. The whole process is automated in a new exploit mode of synacktiv'slaravel-crypto-killer; invoiceninja ships a defaultAPP_KEYand is vulnerable by default. (from abstract only) - How: Gadget-chain analysis across GuzzleHttp, League Flysystem, and Laravel framework classes, with payload construction on Livewire's hydration mechanism.
- Where applicable: Laravel/Livewire applications where
APP_KEYis known, leaked, or default; org-agnostic but framework-specific.