Pillow, Python için en yaygın kullanılan görüntü kütüphanesi, kendisine açması söylenen dosyanın adını belirterek sunucuda işletim sistemi komutları çalıştırabiliyor.
Flaw, CVE-2026-112900 olarak tanımlanan açık, Pillow'un EPS görüntülerini ele alış biçiminde bulunuyor. Kütüphane bu dosyaları piksele çevirmek için ayrı bir program olan Ghostscript'e dosya adını kontrol etmeden iletiyor.
Ghostscript, saldırganın seçtiği adı dosya yerine komut olarak okuyabiliyor ve komut çalıştıran ikinci bir dosyaya yönlendirebiliyor. Pillow bakım ekibi sorunu 16 Ekim'de yayımlanan 13.0.0 sürümünde giderdi.
Pillow, Python ile görüntü işlenen hemen her yerde karşımıza çıkıyor: web yükleme formları, avatar ve küçük resim araçları, belge ve PDF hatları ve çoğu makine öğrenmesi projesi kütüphaneyi kullanıyor. Açıklara dikkat çeken raporu hazırlayan OX Security, kütüphanenin ayda yaklaşık 436 milyon kez indirildiğini tahmin ediyor.
13.0.0 sürümü düşükten kritik seviyeye dört farklı önem derecesinde düzeltme içeren büyük bir güvenlik güncellemesi. Bakım ekibinin iki düzeltmeyi kritik olarak nitelendirdiği bu sürümde açıkların saldırı altında olduğuna dair bir bilgi yok.
Zayıflık resimde değil dosya adında. Uyarıda "Açık, PostScript belgesindeki herhangi bir şeyden değil, dosya adından tetikleniyor" deniyor. Bu da zararsız bir EPS dosyası bile saldırgan dosya adını belirlediğinde zarar verebiliyor anlamına geliyor. Kullanıcı girdisinden alınan veya oluşturulan saklanan dosya adını koruyan yükleme uç noktaları gerçekçi hedef.
Açık, EPS'yi açmak için Pillow'un ihtiyaç duyduğu gs programının kurulu olduğu sunucularda Ghostscript'e ulaşabiliyor. Sorun Pillow'un 2.6.0 sürümünden 12.3.0 sürümüne kadar olanlarını etkiliyor.
Bakım ekibi, saldırganın dosya adını kontrol etmesi gerektiği için riski orta olarak değerlendiriyor. GitHub tarafından atanan CVE kaydı ise riski 10 üzerinden 9,2 olarak puanlıyor ve aynı koşulu işaretliyor.
İki düzeltme bakım ekibinin en üst "kritik" kategorisinde yer alıyor. Biri sürüm notlarında mod değişiminden sonra yeniden kullanılan eski görüntü verisi olarak tanımlanan ayrı bir bellek hatası. Diğeri Pillow'un JPEG kodlamasındaki iki taşma açığını kapsıyor.
Bu JPEG açıklarından biri FlashPix (FPX) biçiminde. İsteğe bağlı olefile paketi kurulu olduğu sürece tek bir Image.open() çağrısıyla hazırlanmış bir dosyadan saldırganın komutunu çalıştırabildiği gösterildi. Pillow bu dosyaları uzantıya değil içeriğe göre tanıyor, bu yüzden güvensiz yüklemeleri açan bir sunucu kullanıcı müdahalesi olmadan etkilenebiliyor.

Diğeri CVE-2026-112403, hazırlanmış kayıpsız bir JPEG'in küçük resmi oluşturulduğunda bellek tamponunu taşırıyor. Uyarı kod çalıştırma değil çökme bildiriyor. Uyarıya göre hata "Açık kaynaklı yazılımların güvenliğini incelemek için Anthropic'in Claude'u kullanmasıyla bulundu, Ada Logics tarafından manuel olarak doğrulandı" ve şirketin açık kaynak kütüphanelerinde yüzlerce açık ortaya çıkaran daha geniş çabasının parçası.
Üçüncü açık CVE-2026-112393, Pillow'da 2013'ten beri bulunuyor. Bir program sıkıştırılmış bir TIFF görüntüsünü diskteki bir dosyaya değil belleğe kaydettiğinde bellek tamponunu taşırıyor; bu, bir yüklemeyi yeniden kodlayıp geri gönderen bir hizmet için yaygın bir kalıp. Uyarıya göre bildirenler süreci bununla çökertti ve yalnızca bellek adreslerini sızdıran ikinci ayrı bir açık yardımıyla kod çalıştırmaya dönüştürdü. Diske gerçek bir dosyaya kaydetme etkilenmiyor.
CVE kayıtları EPS, TIFF ve JPEG küçük resmi açıklarını 10 üzerinden 9,2 puanla kritik olarak değerlendiriyor. Her biri puanın taşımadığı koşullara bağlı ve bakım ekibinin kendi değerlendirmeleri orta ile kritik arasında değişiyor. CVE kayıtlarında CISA analistleri EPS açığı için bilinen bir istismar olmadığını, TIFF açığı için ise kamuya açık bir kanıt kavramı olduğunu belirtiyor.
Yapılacaklar
Pillow 13.0.0 sürümüne yükseltin, bu sürüm tüm bu sorunları düzeltiyor ve daha eski bir kopyayı içeren konteyner, wheel veya taban görüntülerini yeniden oluşturun. Pillow 13 Python 3.10'u bırakıyor, bu yüzden hâlâ 3.10 üzerinde çalışan kurulumlar için Python 3.11 veya daha yenisi gerekiyor.
pip install -U "Pillow>=13.0.0"
Yükseltme yapana kadar Pillow'un güvenlik rehberi ve uyarılar, her yolu kesen adımları gösteriyor:
EPS / Ghostscript: Güvensiz yüklemeleri işleyen herhangi bir sunucuda gs programını tutmayın ve EPS için Image.open() için saldırgan tarafından kontrol edilen bir dosya adını asla geçirmeyin.
JPEG küçük resimleri: Güvensiz JPEG'lerde draft() ve thumbnail() kullanmaktan kaçının, önce load() çağırın veya reducing_gap=None parametresini geçirin.
TIFF: Kullanıcıdan gelen bir görüntü için io.BytesIO gibi bir bellek tamponuna TIFF kaydetmeyi hassas bir yol olarak ele alın.