Kerentanan Kritis Middleware CVE-2025-29927 di Next.js telah ditemukan dan dilaporkan dengan cara yang etis oleh dua peneliti keamanan, Rachid Allam (alias zhero) dan Yassir Alam (alias inzo_). Temuan ini kemudian dilaporkan kepada tim Next.js melalui saluran pelaporan kerentanan privat di GitHub dan email resmi keamanan Vercel, security@vercel.com.
Kerentanan ini berdampak pada sistem Middleware di beberapa versi Next.js dan berpotensi dimanfaatkan untuk melewati proses keamanan yang seharusnya dijalankan. Artikel ini akan membahas bagaimana kerentanan ini ditemukan, dampaknya, hingga langkah-langkah yang diambil untuk menanganinya.
Table of Contents
Penjelasan CVE-2025-29927
CVE-2025-29927 adalah kerentanan kritis yang ditemukan pada sistem Middleware di Next.js, sebuah framework populer untuk pengembangan aplikasi web berbasis React. Kerentanan ini memungkinkan penyerang mendapatkan akses tanpa izin ke rute-rute yang dilindungi seperti “/dashboard/admin”. CVE-2025-29927 memiliki skor CVSS sebesar 9.1 (Kritis).
Next.js adalah framework pengembangan web open-source yang dibangun di atas React, dirancang untuk memudahkan pembuatan aplikasi web yang cepat, skalabel, dan ramah pengguna. Framework ini sering digunakan sebagai middleware, yang memungkinkan pengembang menjalankan kode khusus untuk tugas seperti otentikasi, pengalihan, dan modifikasi respons sebelum permintaan mencapai halaman akhir.
Pada 27 Februari 2025, para peneliti keamanan melaporkan kepada Vercel bahwa Next.js rentan terhadap bypass otentikasi. Kerentanan ini pertama kali ditemukan oleh dua peneliti keamanan yaitu Rachid Allam (alias zhero) dan Yassir Alam (alias inzo_). Mereka melaporkan temuan ini secara etis kepada tim pengembang melalui jalur pelaporan privat GitHub dan juga mengirimkan notifikasi langsung ke alamat email keamanan resmi milik Vercel (security@vercel.com).
Pada awalnya, laporan tersebut mengindikasikan bahwa celah hanya terdapat pada versi Next.js yang lebih lama (12.x), sehingga sempat ditempatkan dalam prioritas rendah dalam antrean triase. Namun, setelah adanya laporan tambahan dari para peneliti yang menunjukkan bahwa versi yang lebih baru juga terdampak, tim keamanan Vercel dan tim pengembang Next.js segera memulai investigasi lanjutan.
Kerentanan ini memengaruhi versi Next.js berikut, dan organisasi disarankan untuk segera memperbarui aplikasi Next.js mereka yang rentan.
Timeline/Kronologi Insiden CVE-2025-29927
27 Februari 2025
Kerentanan pertama kali dilaporkan oleh Rachid Allam dan Yassir Alam melalui sistem pelaporan privat GitHub serta email ke security@vercel.com. Saat itu, mereka menyampaikan bahwa versi lama Next.js (12.x) terdampak, sehingga laporan mendapat prioritas rendah dalam proses triase.
1 Maret 2025
Pada tanggal 1 Maret 2025, para peneliti keamanan mengirim email tambahan dalam thread baru (email baru). Peneliti menginformasikan bahwa kerentanan yang ditemukan tidak hanya memengaruhi versi lama Next.js, tetapi juga berdampak pada versi yang lebih baru.
5 Maret 2025
Tim keamanan Vercel mulai menyelidiki validitas dan dampak kerentanan. Mereka juga mengumumkan rencana kebijakan LTS (Long-Term Support) untuk membatasi dukungan keamanan bagi versi Next.js yang lebih lama.
14 Maret 2025
Tim keamanan Vercel menyampaikan laporan tersebut kepada tim Next.js untuk mulai meneliti dampak dan opsi perbaikan. Setelah ditinjau, kerentanan dikonfirmasi sebagai valid. Karena Next.js bisa dihosting dengan berbagai cara, semua jalur implementasi perlu ditinjau.
15 Maret 2025
Solusi teknis mulai dirancang, yaitu dengan menambahkan proses validasi pada header internal x-middleware-subrequest. Jika validasi gagal, maka header akan difilter untuk mencegah penyalahgunaan.
17 Maret 2025
Pull request yang berisi patch dibuka di repositori GitHub Next.js di 17 Mar 2025. Patch dirilis untuk Next.js 14.2.25 pada 17 Mar 2025 dan Next.js 15.2.3 pada 18 Mar 2025.
18 Maret 2025
CVE-2025-29927 secara resmi diterbitkan oleh GitHub.
21 Maret 2025
CVE-2025-29927 dipublikasikan ke publik.
22 Maret 2025
Karena CVE (laporan kerentanan) tidak langsung menyebutkan apakah aplikasi yang dihosting di Vercel terdampak atau tidak, tim dengan cepat menerbitkan changelog di platform Vercel untuk memberi tahu bahwa pelanggan mereka aman. Selain itu, backport untuk Next.js 13.5.9 juga diterbitkan.
23 Maret 2025
Backport tambahan untuk Next.js 12.3.5 diterbitkan.
Bagaimana Eksploitasi CVE-2025-29927 di Next.js Bekerja?
Kerentanan CVE-2025-29927 disebabkan oleh penyalahgunaan header HTTP internal khusus bernama x-middleware-subrequest. Header ini sebenarnya dirancang untuk operasi internal framework guna mencegah Middleware memproses permintaan yang sama secara berulang, sehingga menghindari loop tak berujung.
Namun, adanya cacat desain memungkinkan penyerang eksternal memanipulasi header ini dan mengendalikan cara Middleware dijalankan. Dengan membuat permintaan yang memiliki nilai x-middleware-subrequest tertentu, penyerang dapat mengecoh aplikasi agar sepenuhnya melewati eksekusi Middleware. Akibatnya, semua kontrol keamanan seperti pembatasan akses atau validasi sesi yang diterapkan dalam Middleware bisa sepenuhnya dilewati.
Solusi untuk Kerentanan CVE-2025-29927
Pendekatan paling efektif adalah menghapus header x-middleware-subrequest sedini mungkin dalam proses penanganan permintaan. Jika aplikasi Anda dijalankan di belakang load balancer atau reverse proxy seperti AWS Elastic Load Balancer (ELB), Cloudflare, atau layanan serupa lainnya, Anda dapat mengonfigurasi aturan untuk menghapus header x-middleware-subrequest dari seluruh lalu lintas yang masuk. Dengan cara ini, meskipun penyerang mengirimkan permintaan berbahaya yang menyertakan header ini, permintaan tersebut tidak akan sampai ke aplikasi Next.js yang rentan dan tidak akan memengaruhi eksekusi middleware.
Solusi Pentest untuk Deteksi CVE-2025-29927 dan Kerentanan Lainnya
Untuk memastikan apakah sistem Anda aman dari kerentanan seperti CVE-2025-29927, pengujian keamanan (penetration testing/pentest) secara menyeluruh sangat penting dilakukan—terutama jika Anda menggunakan framework modern seperti Next.js. LOGIQUE menyediakan jasa penetration testing profesional yang dirancang untuk mengidentifikasi celah keamanan tersembunyi, termasuk bypass autentikasi melalui penyalahgunaan header seperti x-middleware-subrequest.
Tim keamanan LOGIQUE terdiri dari ethical hacker bersertifikasi yang berpengalaman menguji sistem berbasis React, Next.js, serta berbagai arsitektur frontend-backend modern. Dengan pentest dari LOGIQUE, Anda akan mendapatkan:
- Simulasi serangan nyata terhadap Middleware dan endpoint sensitif.
- Analisis detail terhadap potensi bypass autentikasi dan otorisasi.
- Rekomendasi teknis yang dapat langsung diterapkan oleh tim developer Anda.
- Laporan lengkap dan terstruktur, cocok untuk keperluan audit keamanan internal maupun eksternal.
Jangan tunggu sampai celah ini dieksploitasi pihak yang tidak bertanggung jawab. Lindungi sistem Anda sekarang dengan jasa pentest dari LOGIQUE. Hubungi kami sekarang!