Peringatan Ancaman: Kerentanan SSRF pada WeasyPrint Membuka Pintu Akses ke Sistem Internal
Sebuah ancaman keamanan siber telah teridentifikasi terkait kerentanan Server-Side Request Forgery (SSRF) pada WeasyPrint, sebuah perpustakaan Python yang populer digunakan untuk mengonversi HTML dan CSS menjadi PDF. Kerentanan ini memungkinkan penyerang untuk membuat permintaan HTTP dari sisi server ke sumber daya internal yang seharusnya tidak dapat diakses dari luar, seperti sistem manajemen internal, layanan metadata cloud, atau aplikasi yang berjalan di localhost. Jika dimanfaatkan, kerentanan ini dapat mengarah pada kebocoran data sensitif, eskalasi hak akses, dan potensi kompromi terhadap seluruh infrastruktur internal organisasi.
WeasyPrint banyak digunakan dalam aplikasi web untuk menghasilkan dokumen PDF secara dinamis, seperti faktur, laporan, atau surat resmi. Ketika aplikasi tidak memvalidasi input pengguna dengan benar—misalnya, saat merujuk ke gambar atau stylesheet dari URL eksternal—penyerang dapat memasukkan URL jahat yang menunjuk ke alamat internal. Server kemudian akan memproses permintaan tersebut seolah-olah berasal dari aplikasi itu sendiri, sehingga melewati kontrol keamanan jaringan seperti firewall internal.
Bagaimana Modus Serangannya?
- Penyerang mengidentifikasi aplikasi web yang menggunakan WeasyPrint untuk mengonversi konten HTML/CSS ke PDF.
- - Mereka menyisipkan elemen HTML (seperti `<img src="…">` atau stylesheet eksternal) yang merujuk ke URL internal, seperti `http://127.0.0.1:8080/admin` atau `http://169.254.169.254/latest/meta-data/` (layanan metadata AWS).
- - Aplikasi memproses permintaan tersebut dan WeasyPrint melakukan permintaan ke URL yang disisipkan oleh penyerang.
- - Server internal merespons karena permintaan berasal dari dalam jaringan, bukan dari luar.
- - Penyerang menerima hasil PDF atau respons yang menampilkan data sensitif dari sistem internal.
- - Data tersebut digunakan untuk eksplorasi lebih lanjut, eskalasi hak akses, atau serangan lanjutan.
Mengapa Sulit Dibedakan dari yang Asli?
- Permintaan SSRF terjadi dari dalam jaringan, sehingga terlihat seperti lalu lintas internal yang sah.
- - Tidak ada indikator serangan eksternal yang jelas karena serangan difasilitasi oleh aplikasi yang sah (WeasyPrint).
- - Format permintaan identik dengan permintaan otentik yang digunakan untuk memuat gambar atau CSS dari sumber eksternal.
- - Jika aplikasi tidak mencatat URL sumber daya yang dimuat, aktivitas malisius tidak tercatat.
Tujuan dan Teknik yang Digunakan
- Tujuan utama: Mengeksploitasi akses ke sistem internal untuk mencuri data sensitif, seperti kredensial, konfigurasi, atau metadata cloud.
- - Tujuan sekunder: Melakukan pivoting ke sistem lain dalam jaringan internal.
- - Teknik MITRE ATT&CK:
- - T1190: Exploit Public-Facing Application – Memanfaatkan aplikasi web publik yang rentan.
- - T1212: Exploitation for Credential Access – Mengakses layanan metadata untuk mendapatkan kredensial sementara.
- - T1018: Remote System Discovery – Menjelajahi host internal melalui respons SSRF.
- - T1530: Data from Cloud Storage Object – Mengakses data dari layanan cloud seperti AWS S3 melalui metadata.
Rekomendasi untuk Pengguna dan Organisasi
- Segera perbarui WeasyPrint ke versi terbaru yang telah memperbaiki kerentanan SSRF.
- - Terapkan validasi input yang ketat terhadap semua URL eksternal yang dimuat dalam HTML/CSS sebelum diproses oleh WeasyPrint.
- - Gunakan daftar putih (whitelist) domain eksternal yang diizinkan untuk dimuat.
- - Batasi akses jaringan dari server aplikasi ke layanan internal sensitif menggunakan firewall internal atau kebijakan jaringan (network segmentation).
- - Nonaktifkan penggunaan URL eksternal dalam konversi PDF jika tidak diperlukan.
- - Pantau dan catat semua permintaan keluar dari aplikasi, terutama ke alamat IP lokal atau layanan cloud metadata.
- - Gunakan solusi keamanan seperti Web Application Firewall (WAF) dengan aturan deteksi SSRF.
Kerentanan SSRF pada WeasyPrint menyoroti risiko signifikan dari penggunaan pustaka pihak ketiga yang memproses input eksternal tanpa sanitasi memadai. Serangan ini dapat menyebabkan pelanggaran keamanan besar jika tidak ditangani dengan cepat, terutama di lingkungan cloud yang bergantung pada layanan metadata.
Sumber referensi:
https://github.com/Kozea/WeasyPrint/issues/1870
https://nvd.nist.gov/vuln/detail/CVE-2025-XXXXX