Next.js Tambal Tujuh Celah di 16.4.5 dan 15.5.29: Cache Components Bisa Bocorkan Data Antar Tenant, Cookie HttpOnly Terbaca di Rute Edge

Gambar sampul blog resmi Next.js untuk berita rilis keamanan November 2026

Tim Next.js merilis pembaruan keamanan terjadwal pada 3 November 2026. Versi 16.4.5 (Active LTS) dan 15.5.29 (Maintenance LTS) menutup tujuh celah. Satu diberi peringkat tinggi di pengumuman resmi, enam lainnya menengah. Seminggu sebelumnya, tim yang sama sudah memberi tahu bahwa rilis ini akan datang supaya pengembang sempat merencanakan peningkatan versi.

Celah di fitur cache

Empat dari tujuh celah berkaitan dengan Cache Components. Yang paling berat, GHSA-mfr8-8qww-v76h, terjadi bila fungsi publik dengan use cache dipanggil langsung sekaligus dari dalam unstable_cache, dan fungsi itu membaca parameter akar seperti pengenal tenant. Saat cache terisi dingin, panggilan lewat unstable_cache bisa menerima hasil permintaan lain tanpa pemeriksaan parameter akar. Hasil itu lalu tersimpan dan disajikan ke pemanggil berikutnya sampai entri diperbarui atau dibuang. Pada aplikasi multi-tenant, isinya bisa berupa data tenant lain.

Perlu dicatat, peringkatnya berbeda antar sumber. Blog Next.js menyebutnya High, sedangkan halaman advisori GitHub (CVE-2026-119790) memberi skor CVSS v4 sebesar 6,3 dengan label Moderate dan mencantumkan versi 16.3.0 ke atas sebagai terdampak. Advisori itu menyebut satu solusi sementara: jangan memanggil fungsi use cache dari dalam unstable_cache().

Tiga celah cache lainnya lebih sempit. Fungsi use cache yang bersarang bisa menyajikan konten satu nilai parameter akar ke permintaan nilai lain. Argumen biner yang berbeda bisa menghasilkan identitas cache yang sama, sehingga satu pengguna menerima hasil milik pengguna lain. Pada aplikasi self-hosted dengan next start, URL rekayasa dari pihak tanpa login bisa meracuni cangkang halaman bersama sehingga muncul konten salah atau 404 yang menetap. Tim Next.js menyatakan konfigurasi dengan Partial Prefetching aktif tidak terdampak pada pengujian yang dilaporkan.

Cookie, proxy, dan gambar

Tiga celah sisanya tidak bergantung pada cache. Pertama, rute Edge yang mengatur cookie lewat NextResponse.cookies.set() dapat membocorkan nilai cookie ke header internal x-middleware-set-cookie. Header ini terbaca oleh JavaScript satu origin, jadi cookie berstatus HttpOnly pun bisa terbaca. Syaratnya ada cookie sensitif pada respons terdampak dan skrip penyerang berjalan di origin yang sama. Advisorinya (CVE-2026-119346) memberi skor CVSS v4 6,0 untuk versi 16.0.0 sampai 16.4.2 dan 15.0.0 sampai 15.5.28. Rute Node.js dan cookie yang diatur lewat cookies().set() tidak terdampak dalam reproduksi.

Kedua, aplikasi self-hosted yang meneruskan Response hasil fetch dari penyerang tanpa diubah bisa mengirim isi yang sudah didekompresi dengan header pembingkaian dari respons terkompresi. Di belakang reverse proxy HTTP/1.1 yang mengantrekan permintaan pipelined pada satu koneksi backend, respons bisa tertukar antar klien. Tim Next.js menegaskan ini tidak berlaku untuk semua konfigurasi proxy. Ketiga, gambar dari sumber yang diizinkan bisa disalahklasifikasikan sebagai AVIF dan melewati pengaturan images.dangerouslyAllowSVG: false, sehingga backend optimasi gambar mendekode SVG. Tim menyebut temuan ini belum terbukti memicu XSS atau eksekusi kode jarak jauh.

Yang perlu dilakukan pengembang

Tim Next.js meminta semua pengguna menaikkan versi: npm install [email protected] untuk jalur 16, atau npm install [email protected] untuk jalur 15. Periksa dulu apakah proyek memakai Cache Components, rute Edge yang mengatur cookie, atau self-hosting di belakang reverse proxy, karena di situlah risikonya. Pekan ini Rails juga menutup celah di Active Storage, jadi tim yang memakai dua framework itu punya dua pembaruan untuk dijadwalkan.

Sumber: Next.js, November 2026 Security Release dan advisori GitHub GHSA-mfr8-8qww-v76h. Gambar: Next.js (Vercel).