Celah Keamanan Pillow Bisa Bikin Server Python Jalankan Malware


Ilustrasi Python Logo

Ilustrasi Python Logo

Library pengolah gambar Pillow yang banyak digunakan dalam ekosistem Python ditemukan memiliki sejumlah celah keamanan serius. Salah satunya memungkinkan penyerang menjalankan perintah sistem operasi pada server melalui manipulasi nama file gambar. Kerentanan ini menjadi perhatian karena Pillow digunakan secara luas dalam layanan web, pemrosesan dokumen, hingga proyek Artificial Intelligence (AI).

Kerentanan dengan kode CVE-2026-112900 tersebut berkaitan dengan cara Pillow menangani file berformat Encapsulated PostScript (EPS). Dalam proses membuka gambar EPS, Pillow meneruskan nama file ke Ghostscript, sebuah program eksternal yang digunakan untuk memproses gambar, tanpa melakukan pemeriksaan nama file secara memadai.

Kondisi ini membuka peluang bagi penyerang untuk menyalahgunakan nama file sebagai instruksi yang dapat dijalankan oleh Ghostscript. Jika serangan berhasil, penyerang berpotensi menjalankan perintah sistem operasi pada server yang memproses file tersebut.

Pengembang Pillow telah memperbaiki celah tersebut melalui peluncuran versi 13.0.0 pada 16 Oktober 2026. Pembaruan ini juga mencakup perbaikan sejumlah kerentanan lain, termasuk masalah pada pemrosesan gambar JPEG dan TIFF yang dapat menyebabkan program mengalami gangguan hingga berpotensi membuka jalan bagi eksekusi kode.

Meski belum ada laporan eksploitasi aktif terhadap kerentanan EPS tersebut, keberadaannya tetap perlu diwaspadai, terutama oleh pengelola aplikasi yang menerima dan memproses unggahan gambar dari pengguna.

 

Pillow Digunakan Luas dalam Ekosistem Python

Pillow merupakan salah satu library utama untuk pemrosesan gambar dalam bahasa pemrograman Python. Library ini menyediakan berbagai fungsi, seperti membuka, mengubah ukuran, memotong, mengonversi, dan menyimpan gambar dalam beragam format.

Penggunaannya tidak terbatas pada aplikasi pengolah gambar. Pillow juga banyak dimanfaatkan dalam fitur unggah gambar di situs web, pembuatan avatar dan thumbnail, pemrosesan dokumen dan PDF, serta berbagai proyek machine learning.

Luasnya penggunaan tersebut membuat kerentanan pada Pillow berpotensi berdampak terhadap banyak aplikasi yang mengandalkan library ini. OX Security, perusahaan keamanan siber yang menyoroti persoalan tersebut melalui laporannya, memperkirakan Pillow diunduh sekitar 436 juta kali setiap bulan.

Angka tersebut menunjukkan besarnya jangkauan library ini dalam ekosistem pengembangan perangkat lunak. Namun, jumlah unduhan tidak serta-merta menunjukkan jumlah aplikasi yang rentan. Risiko sebenarnya bergantung pada versi Pillow yang digunakan, konfigurasi sistem, serta cara aplikasi memproses file dari sumber eksternal.

Pembaruan Pillow 13.0.0 menjadi penting karena tidak hanya menangani satu celah keamanan. Rilis ini mencakup perbaikan kerentanan dengan empat tingkat keparahan, mulai dari rendah hingga kritis. Dua di antaranya dikategorikan kritis oleh pengembang Pillow.

 

Manipulasi Nama File Menjadi Kunci Serangan

Berbeda dari serangan yang mengeksploitasi isi gambar, kerentanan CVE-2026-112900 berpusat pada nama file yang diproses aplikasi.

Dalam pemberitahuan keamanannya, pengembang Pillow menjelaskan bahwa pemicu kerentanan berada pada nama file, bukan pada isi dokumen PostScript. Artinya, file EPS yang tampak tidak berbahaya pun dapat menjadi bagian dari serangan apabila nama file yang digunakan telah dimanipulasi oleh penyerang.

Masalah muncul ketika Pillow meneruskan nama file tersebut ke Ghostscript untuk memproses gambar. Dalam kondisi tertentu, Ghostscript dapat menafsirkan nama yang dikendalikan penyerang sebagai instruksi, kemudian mengarahkannya ke file lain yang berisi perintah untuk dijalankan.

Situasi ini membuat fitur unggah gambar menjadi salah satu titik yang perlu diperiksa. Aplikasi yang menggunakan masukan pengguna untuk menentukan atau membentuk nama file berisiko lebih tinggi jika tidak melakukan validasi dengan benar sebelum file diproses.

Meski demikian, eksploitasi tidak otomatis berhasil pada setiap aplikasi yang menggunakan Pillow. Kerentanan EPS ini hanya dapat menjangkau Ghostscript apabila program gs terpasang pada sistem. Ghostscript memang dibutuhkan Pillow untuk membuka file EPS.

Celah tersebut memengaruhi Pillow versi 2.6.0 hingga 12.3.0. Pengembang Pillow memberikan penilaian tingkat keparahan sedang (moderate) karena serangan mensyaratkan penyerang memiliki kendali atas nama file. Sementara itu, catatan CVE yang diterbitkan GitHub memberikan skor 9,2 dari 10, yang masuk kategori kritis.

Perbedaan penilaian ini menunjukkan bahwa skor keparahan perlu dibaca bersama kondisi eksploitasi dan konfigurasi sistem yang terdampak, bukan dijadikan satu-satunya tolok ukur risiko.

 

Kerentanan JPEG Juga Berpotensi Membahayakan

Selain celah pada EPS, pembaruan Pillow 13.0.0 memperbaiki sejumlah masalah keamanan lain. Dua perbaikan masuk kategori kritis menurut pengembang, yakni masalah penggunaan kembali data gambar lama setelah perubahan mode gambar serta dua kerentanan overflow pada proses dekode JPEG.

Salah satu kerentanan JPEG berkaitan dengan format FlashPix (FPX). Dalam kondisi tertentu, celah ini terbukti dapat memungkinkan eksekusi perintah yang dikendalikan penyerang melalui satu pemanggilan fungsi Image.open() terhadap file yang telah dimanipulasi, selama paket opsional olefile terpasang.

Pillow mengenali file FPX berdasarkan isi file, bukan sekadar ekstensi yang digunakan. Karena itu, mengganti atau menyamarkan ekstensi file saja tidak cukup untuk menghilangkan risiko. Server yang secara otomatis membuka unggahan dari sumber tidak tepercaya dapat terpapar apabila kondisi yang diperlukan untuk eksploitasi terpenuhi.

Kerentanan JPEG lainnya tercatat dengan kode CVE-2026-112403. Celah ini menyebabkan luapan pada buffer memori ketika aplikasi membuat gambar mini dari file JPEG lossless yang telah dimanipulasi. Dampak yang dilaporkan adalah program mengalami crash, bukan eksekusi kode.

Kerentanan tersebut ditemukan oleh Anthropic dengan bantuan Claude untuk mempelajari keamanan perangkat lunak sumber terbuka, kemudian divalidasi secara manual oleh Ada Logics. Temuan ini merupakan bagian dari upaya yang lebih luas untuk mengidentifikasi kelemahan keamanan pada berbagai library sumber terbuka.

 

Celah TIFF Tersembunyi Selama Lebih dari Satu Dekade

Kerentanan lain yang diperbaiki dalam pembaruan tersebut adalah CVE-2026-112393, yang telah berada di dalam Pillow sejak 2013.

Celah ini menyebabkan luapan buffer memori ketika aplikasi menyimpan gambar TIFF terkompresi ke dalam memori, bukan langsung ke file di disk. Pola tersebut umum digunakan oleh layanan yang memproses ulang gambar unggahan, kemudian mengirimkan hasilnya kembali kepada pengguna.

Menurut pemberitahuan keamanan, peneliti yang melaporkan kerentanan tersebut berhasil menyebabkan proses mengalami crash. Mereka juga menunjukkan bahwa dampaknya dapat ditingkatkan menjadi eksekusi kode dengan memanfaatkan kerentanan terpisah yang membocorkan alamat memori.

Namun, penyimpanan gambar secara langsung ke file di disk tidak terdampak oleh kerentanan TIFF tersebut.

Catatan CVE yang diterbitkan GitHub memberikan skor 9,2 dari 10 untuk kerentanan EPS, TIFF, dan pembuatan gambar mini JPEG. Sementara itu, catatan Badan Keamanan Siber dan Infrastruktur Amerika Serikat (CISA) menyebutkan belum ada eksploitasi yang diketahui untuk kerentanan EPS, sedangkan kerentanan TIFF telah memiliki bukti konsep (proof of concept) yang tersedia untuk publik.

Keberadaan bukti konsep tidak selalu berarti kerentanan telah digunakan dalam serangan nyata. Namun, informasi tersebut dapat membantu pihak lain memahami cara kerja kelemahan dan meningkatkan urgensi penerapan perbaikan keamanan.

 

Pengguna Disarankan Segera Memperbarui Pillow

Pengembang aplikasi dan administrator server disarankan memperbarui Pillow ke versi 13.0.0 untuk mendapatkan perbaikan seluruh kerentanan yang disebutkan. Pemeriksaan tidak cukup dilakukan pada instalasi utama karena versi lama mungkin masih tersimpan dalam kontainer, paket wheel, atau base image yang digunakan untuk menjalankan aplikasi.

Ada satu hal yang perlu diperhatikan sebelum melakukan pembaruan. Pillow 13 tidak lagi mendukung Python 3.10. Pengguna yang masih menggunakan versi tersebut perlu memperbarui Python ke versi 3.11 atau yang lebih baru agar dapat menggunakan Pillow 13.0.0.

Jika pembaruan belum dapat dilakukan, pengelola aplikasi perlu menerapkan langkah mitigasi sesuai jalur pemrosesan yang digunakan. Untuk EPS, hindari memasang Ghostscript pada server yang memproses unggahan tidak tepercaya apabila program tersebut tidak diperlukan. Aplikasi juga sebaiknya tidak meneruskan nama file yang dikendalikan pengguna ke fungsi Image.open() untuk membuka EPS.

Pada pemrosesan JPEG, pengembang perlu berhati-hati menggunakan fungsi draft()  dan thumbnail()  terhadap gambar dari sumber tidak tepercaya. Panduan mitigasi menyarankan untuk memanggil  load() terlebih dahulu atau menggunakan parameter reducing_gap=None , sesuai kebutuhan aplikasi dan rekomendasi keamanan yang berlaku.

Sementara itu, untuk TIFF, pengembang perlu meninjau proses penyimpanan gambar ke buffer memori, seperti io.BytesIO, terutama ketika sumber gambar berasal dari pengguna. Jalur pemrosesan ini perlu diperlakukan sebagai bagian yang sensitif hingga pembaruan diterapkan.

Langkah mitigasi dapat mengurangi risiko, tetapi tidak menggantikan pembaruan ke versi yang telah diperbaiki. Organisasi yang menggunakan Pillow perlu menginventarisasi seluruh dependensi dan lingkungan aplikasi untuk memastikan tidak ada salinan versi lama yang masih digunakan.

Kasus ini sekaligus menjadi pengingat bahwa keamanan aplikasi tidak hanya bergantung pada kode yang dikembangkan sendiri. Library open source yang digunakan secara luas juga dapat menjadi pintu masuk serangan apabila memiliki celah keamanan. Karena itu, pembaruan dependensi, validasi masukan pengguna, dan pemeriksaan alur pemrosesan file perlu menjadi bagian penting dari pemeliharaan keamanan aplikasi Python.

Bagikan artikel ini

Komentar ()

Video Terkait