Pendahuluan

Dalam pengembangan aplikasi web, banyak pengembang menggunakan library pihak ketiga untuk mempercepat pekerjaan. Salah satu library populer adalah jsPDF, yang digunakan untuk membuat file PDF menggunakan JavaScript.

Namun, pada tahun 2025 ditemukan sebuah kerentanan serius bernama CVE-2025-68428 yang dapat membahayakan aplikasi yang menggunakan jsPDF, khususnya di lingkungan Node.js.

Kerentanan ini memungkinkan penyerang membaca file penting di server tanpa izin.

Apa Itu jsPDF?

jsPDF adalah library JavaScript yang digunakan untuk:

  • Membuat dokumen PDF

  • Menambahkan teks, gambar, dan font

  • Digunakan di browser maupun di server (Node.js)

Kerentanan CVE-2025-68428 hanya berdampak pada jsPDF yang dijalankan di Node.js, bukan di browser.

Penjelasan Kerentanan CVE-2025-68428

Apa Masalahnya?

CVE-2025-68428 adalah kerentanan Path Traversal, yaitu kondisi di mana pengguna dapat mengakses file di luar folder yang seharusnya.

Masalah ini terjadi karena jsPDF tidak memeriksa input path file dengan benar pada beberapa fungsi tertentu.

Akibatnya, penyerang dapat memasukkan path seperti:

../../../../etc/passwd

dan membuat server membaca file sensitif tersebut.

Fungsi jsPDF yang Terdampak

Beberapa fungsi jsPDF yang rentan antara lain:

  • loadFile

  • addImage

  • addFont

  • html

Jika input fungsi-fungsi tersebut dikontrol oleh pengguna, maka risiko kebocoran data menjadi sangat besar.

Jenis Kerentanan

Kerentanan ini termasuk dalam kategori:

  • Path Traversal

  • External Control of File Path

Artinya, penyerang bisa menentukan sendiri file apa yang ingin dibaca oleh server.

Tingkat Risiko

  • Skor CVSS: 9.2 (Critical)

  • Risiko sangat tinggi karena:

    • Bisa dilakukan dari jarak jauh

    • Tidak memerlukan login

    • Bisa membocorkan data sensitif

Kerentanan ini sangat berbahaya jika aplikasi dapat diakses publik.

Dampak yang Bisa Terjadi

Jika CVE-2025-68428 berhasil dieksploitasi, penyerang dapat:

  • Membaca file konfigurasi server

  • Mengakses file .env

  • Mencuri kredensial database

  • Membocorkan data internal aplikasi

Yang lebih berbahaya, file yang dibaca tersebut bisa ikut dimasukkan ke dalam PDF, sehingga bocor ke pengguna lain.

Siapa yang Berisiko?

Kerentanan ini berdampak pada:

  • Aplikasi Node.js

  • Menggunakan jsPDF versi di bawah 4.0.0

  • Mengizinkan pengguna mengunggah atau menentukan file secara bebas

Jika jsPDF hanya digunakan di browser, risiko ini tidak berlaku.

Status Perbaikan

Kabar baiknya, kerentanan ini sudah diperbaiki oleh pengembang jsPDF.

  • Aman mulai versi jsPDF 4.0.0

  • Akses file sistem dibatasi secara default

Cara Mitigasi dan Pencegahan

1. Update jsPDF

Langkah paling aman:

  • Segera upgrade ke jsPDF versi 4.0.0 atau lebih baru

2. Batasi Input Pengguna

  • Jangan biarkan pengguna menentukan path file secara langsung

  • Validasi dan filter semua input file

3. Batasi Hak Akses Server

  • Batasi izin baca file pada aplikasi Node.js

  • Jangan jalankan aplikasi dengan hak akses tinggi

Kesimpulan

CVE-2025-68428 adalah kerentanan kritis pada jsPDF versi lama di Node.js yang memungkinkan penyerang membaca file penting di server.

Kerentanan ini bisa menyebabkan:

  • Kebocoran data sensitif

  • Risiko keamanan serius

  • Pelanggaran privasi

Solusi terbaik dan paling efektif adalah memperbarui jsPDF ke versi terbaru dan menerapkan validasi input yang ketat.

Proof of Concept (PoC)