CVE-2025-54068 — Laravel Livewire RCE via Unmarshaling (Pre-Auth, Critical)
Paket: livewire/livewire
CVE-2025-54068 — Laravel Livewire RCE via Unmarshaling (Pre-Auth, Critical)
Kategori: Laravel Security | Remote Code Execution
CVE: CVE-2025-54068
Severity: Critical (CVSS 9.8)
Affected Version: Livewire 3.0.0-beta.1 s/d 3.6.3
Status: Patched (v3.6.4+)
Peneliti: Rémi Matasse & Pierre Martin (Synacktiv)
Ringkasan
Pada Januari 2026, firma keamanan Synacktiv mempublikasikan advisory untuk kerentanan kritis pada Laravel Livewire v3 — salah satu framework full-stack paling populer untuk ekosistem Laravel. Kerentanan ini memungkinkan penyerang yang tidak terautentikasi mengeksekusi perintah sembarang di server target melalui manipulasi mekanisme hydration Livewire.
Livewire menggunakan konsep hydration dan dehydration untuk mengelola state komponen. Saat komponen di-dehydrate, state-nya disimpan dan dikirim ke frontend beserta checksum. Saat di-rehydrate, server memverifikasi checksum sebelum memulihkan state komponen.
Per 2025, Livewire digunakan oleh lebih dari 30% proyek Laravel baru, dan menurut data BuiltWith, terdapat lebih dari 130.000 instance publik aplikasi berbasis Livewire — menjadikan kerentanan ini berdampak sangat luas.
Mekanisme Serangan
Synthesizer pada Livewire menyediakan mekanisme untuk mendefinisikan bagaimana tipe data kustom di-serialize (dehydrated) dan di-deserialize (hydrated) ketika dikirim antara client dan server. Untuk dikenali sebagai synthesizer, Livewire melakukan pengecekan pada setiap elemen payload menggunakan fungsi isSyntheticTuple.
Penyerang dapat menyisipkan synthesizer berbahaya melalui field updates pada Livewire request. Berikut contoh request eksploitasi:
POST /livewire/update HTTP/1.1
Host: target.com
Cookie: XSRF-TOKEN=ey[...]
Content-Type: application/json
{
"_token": "...",
"components": [
{
"snapshot": "{\"data\": {\"count\":1}, [...]}",
"updates": {
"count": []
},
"calls": []
}
]
}
Catatan:
count: []adalah injeksi tipe array pada field yang seharusnya integer.
Saat komponen Livewire di-mount dengan cara tertentu, penyerang dapat membuat request update berbahaya yang menyebabkan penanganan data terstruktur secara tidak aman selama proses hydration — berujung pada perilaku unserialization yang tidak diinginkan dan akhirnya remote command execution dalam konteks proses web server.
Dua Jalur Eksploitasi
1. Eksploitasi dengan APP_KEY (Post-Auth Escalation)
Dengan menggabungkan kelas synthesizer Livewire dengan kelas yang sudah ada, penyerang dapat membuat payload yang mencapai stealthy remote code execution ketika APP_KEY diketahui. Exploit ini memanfaatkan recursive hydration Livewire untuk menginstansiasi objek sembarang dan menjalankan kode yang dikontrol penyerang selama proses restorasi state komponen.
2. Pre-Authenticated RCE (Tanpa APP_KEY)
Kerentanan ini memungkinkan penyerang yang tidak terautentikasi mencapai remote command execution dalam skenario tertentu, bersumber dari cara update properti komponen tertentu di-hydrate. Kerentanan ini unik pada Livewire v3 dan tidak memengaruhi versi major sebelumnya.
Indicator of Compromise (IOC)
Percobaan eksploitasi yang gagal akan menghasilkan log seperti berikut:
Cannot assign array to property App\Livewire\LivewireComponent::field of type ?string
/var/www/html/vendor/livewire/livewire/src/Mechanisms/HandleComponents/HandleComponents.php (442)
...
Perhatian: Percobaan yang berhasil bisa saja sepenuhnya tidak meninggalkan log apapun jika cast berhasil dilakukan.
Timeline
| Tanggal | Event |
|---|---|
| 12 Juni 2025 | Advisory dikirim ke tim Livewire |
| 17 Juli 2025 | Patch dirilis (v3.6.4) |
| 17 Juli 2025 | CVE-2025-54068 ditetapkan |
| 23 Desember 2025 | Detail teknis dipublikasikan |
| 8 Januari 2026 | Advisory resmi Synacktiv dirilis |
Mitigasi
Wajib dilakukan segera:
# Update Livewire ke versi aman
composer require livewire/livewire:^3.6.4
composer update livewire/livewire
Jika sistem kamu sudah dieksploitasi, regenerasi APP_KEY wajib dilakukan. Langkah ini tidak boleh dilewati karena penyerang yang memiliki APP_KEY tetap bisa mengkompromikan server meski Livewire sudah diupdate:
php artisan key:generate
Alat otomasi eksploitasi Livepyre tersedia di github.com/synacktiv/Livepyre untuk keperluan testing/penelitian internal.
Referensi
| Sumber | URL |
|---|---|
| CVE-2025-54068 | https://nvd.nist.gov/vuln/detail/CVE-2025-54068 |
| Advisory Synacktiv | https://www.synacktiv.com/en/publications/livewire-remote-code-execution |
| GitHub Advisory | https://github.com/livewire/livewire/security/advisories/GHSA-29cq-5w36-x7w3 |
| Patch Commit | https://github.com/livewire/livewire/commit/ef04be7 |
| Livepyre (PoC Tool) | https://github.com/synacktiv/Livepyre |
Artikel ini ditulis untuk tujuan pendidikan dan riset keamanan. Eksploitasi tanpa izin adalah ilegal. Selalu lakukan pengujian keamanan hanya pada sistem yang kamu miliki atau memiliki izin tertulis.