Inti artikel
Advisory GHSA-p5vf-pjf5-ggj3 pada Nuxt Image bisa mematikan server lewat rute /_ipx. Ini siapa yang terdampak, apa yang kami lakukan, dan cara menambalnya.

Apa yang diumumkan
Pada 30 Oktober 2026, tim Nuxt menerbitkan advisory GHSA-p5vf-pjf5-ggj3 untuk modul Nuxt Image dengan tingkat keparahan tinggi (skor CVSS 8,1). Nuxt Image adalah modul yang dipakai banyak situs untuk mengecilkan dan mengubah format gambar. Pada situs yang berjalan sebagai server, modul ini membuka rute bernama /_ipx secara otomatis, tanpa konfigurasi apa pun.
Rute tersebut memakai pustaka ipx untuk membaca gambar. Pustaka ini memiliki celah integer overflow saat membuka gambar multi halaman, misalnya TIFF, GIF, WebP, atau AVIF. Gambar yang sengaja dirancang dapat merusak memori saat dibuka. Akibatnya, satu permintaan tanpa login sudah cukup untuk mematikan proses server. Dalam kondisi tertentu, kerusakan memori tersebut dapat dimanfaatkan untuk menjalankan kode dengan hak akses proses server.
Siapa yang terdampak
Versi yang terdampak adalah Nuxt Image 2.0.0 sampai sebelum 2.2.1, dan 1.0.0 sampai sebelum 1.11.2. Versi 0.x telah mencapai akhir masa dukungan dan tidak akan mendapat perbaikan.
Risikonya nyata apabila ketiga kondisi berikut berlaku bersamaan:
- Situs berjalan sebagai server dengan penyedia gambar ipx bawaan, sehingga rute /_ipx aktif.
- Penyerang dapat menempatkan gambar buatannya di lokasi yang dibaca ipx, misalnya melalui fitur unggah, host konten pengguna yang masuk daftar domain gambar, atau konfigurasi yang mengizinkan host gambar apa pun.
- Rute /_ipx dapat diakses tanpa login, yang merupakan kondisi bawaan.
Situs yang dibangun statis, yang berjalan di platform edge seperti Cloudflare Workers, atau yang memakai penyedia gambar milik platform seperti Vercel dan Netlify, tidak mendaftarkan rute ini.
Apa yang kami lakukan
Kami memeriksa seluruh situs kami yang memakai Nuxt Image. Hasilnya, empat situs memakai versi yang terdampak (Nuxt Image 2.0.0 atau 2.1.0, dengan pustaka ipx 3.1.1 atau 4.0.0 beta). Pada setiap situs kami menaikkan Nuxt Image ke 2.2.1, memastikan berkas kunci dependensi memakai ipx 4.1.0 yang sudah ditambal, menjalankan seluruh tes, lalu merilisnya ke produksi. Keempat situs sudah dirilis. Setelah rilis, kami memeriksa dari luar bahwa rute gambar masih melayani gambar sebagaimana mestinya pada keempat situs.
Sambil memperbaiki, kami juga memeriksa apakah ada pihak yang sempat memanfaatkan celah ini. Kami membaca log akses dan log aplikasi yang masih tersimpan pada tiga situs dan mencari seluruh permintaan ke /_ipx. Yang kami temukan hanya permintaan biasa ke gambar milik kami sendiri, tanpa pesan galat dan tanpa tanda proses yang berhenti tiba-tiba. Satu alamat IP meminta sekitar sepuluh gambar kami sendiri secara berurutan, dan seluruh permintaan itu hanya dialihkan tanpa diproses.

Batas dari pemeriksaan ini
Kami perlu menyampaikan batas pemeriksaan ini. Log yang tersimpan hanya mencakup rentang sekitar satu jam sampai sekitar sembilan hari, tergantung situsnya, sehingga pemeriksaan ini tidak membuktikan bahwa tidak pernah ada percobaan sebelumnya. Untuk situs keempat, yang berjalan di hosting bersama, kami tidak memeriksa log sama sekali. Yang dapat kami nyatakan: pada log yang tersedia dari tiga situs, tidak ada tanda serangan. Sumber gambar di situs kami juga hanya penyimpanan milik kami sendiri, sehingga penyerang tidak memiliki jalan mudah untuk menempatkan gambar buatannya.
Langkah yang dapat diambil pengelola situs
Bagi pengelola situs yang memakai Nuxt Image:
- Naikkan ke 2.2.1 (atau 1.11.2 bila masih di jalur 1.x), lalu periksa dengan npm ls ipx bahwa ipx ikut menjadi versi yang ditambal.
- Bila belum dapat menaikkan versi, blokir /_ipx/** di reverse proxy jika rute itu tidak dipakai, atau pasang handler sendiri pada rute itu yang membalas 404.
- Pastikan gambar dari pihak lain tidak dapat menjadi sumber ipx: simpan unggahan di luar path publik dan batasi daftar domain gambar pada host yang dikendalikan sendiri. Memeriksa ekstensi atau Content-Type saja tidak cukup, karena pembaca gambar dipilih berdasarkan isi berkas.
- Pada versi 2.2.1 ke atas, aktifkan opsi restrictDecoders bila format gambar lain tidak diperlukan, karena opsi ini menutup pembaca format yang tidak dibutuhkan.
Sumber: GHSA-p5vf-pjf5-ggj3 dan GHSA-qf89-6xm4-66wm

