Python Pillow kütüphanesinde kritik açık: Sadece dosya adı yetiyor
Python ekosisteminin temel taşlarından Pillow görsel işleme kütüphanesinde kritik bir uzaktan kod yürütme zafiyeti keşfedildi. CVE-2026-112900 olarak izlenen açık, EPS formatındaki dosyaların adları Ghostscript aracına aktarılırken sistem komutlarının doğrudan çalıştırılmasına zemin hazırlıyor.
Dosya adı üzerinden gelen tehlike: CVE-2026-112900
Web geliştiricilerinin görsel boyutlandırma, format dönüştürme ve kırpma işlemleri için yıllardır vazgeçilmez kabul ettiği Python Pillow kütüphanesinde ciddi bir güvenlik boşluğu saptandı. Zafiyet, kütüphanenin Encapsulated PostScript (EPS) uzantılı dosyaları yorumlamak için arka planda harici Ghostscript yazılımını çağırma yönteminden doğuyor.
Sistem, kullanıcı tarafından yüklenen EPS dosyasının adını komut satırı filtresinden tam olarak geçirmeden Ghostscript sürecine devrediyor. Bu durum, özel olarak hazırlanmış bir dosya adı sayesinde işletim sistemi düzeyinde rastgele komutların tetiklenmesine kapı aralıyor. Dosyanın içeriğinden bağımsız olarak, sadece dosya ismine yerleştirilen parametreler bile istismar için yetebiliyor.
Hangi sistemler risk altında ve ne yapmak gerekiyor?
Profil fotoğrafı, ürün görseli ya da belge yüklemelerine izin veren ve arka planda Python ile dosya doğrulaması yapan her web servisi bu açık karşısında hedef konumunda bulunuyor. Benzer altyapı zafiyetlerini daha önce kritik PHP güvenlik açığı örneklerinde de gördüğümüz gibi, harici sistem araçlarına bağlanan kütüphaneler doğru izole edilmediğinde tüm sunucunun ele geçirilmesine yol açabiliyor.
Sistem yöneticilerinin ve yazılım ekiplerinin alabileceği ilk ve en etkili önlem, Ghostscript bağımlılığını gerektirmeyen iş akışlarında EPS desteğini devre dışı bırakmak. İkinci adım olarak, kullanıcıdan gelen dosya adlarının doğrudan işletim sistemi komutlarına iletilmesi engellenmeli ve yüklenen her dosya sunucu tarafında rastgele üretilen güvenli karakter dizileriyle (UUID gibi) yeniden adlandırılmalı.
Pillow gibi neredeyse her Python projesinin bağımlılık ağacında bulunan bir kütüphanede komut enjeksiyonu açığı çıkması şaşırtıcı değil ama düşündürücü. Sorun aslında yine harici bir C ikilisine (Ghostscript) güvensiz parametre aktarımından kaynaklanıyor. Kullanıcı girdisini güvenli UUID dizgileriyle değiştirmeden doğrudan dosya sistemine kaydeden projeler için bu açık çok hızlı bir sunucu devralma senaryosuna dönüşebilir.
Türkiye'deki yazılım ekipleri için ne anlama geliyor?
Türkiye'de özellikle Django, Flask ve FastAPI altyapısıyla geliştirilen e-ticaret siteleri, ilan platformları ve kurumsal portallar görsel işleme yükü için ağırlıklı olarak Pillow kullanıyor. Kullanıcıların serbest dosya yüklemesi yapabildiği yerli platformların acilen sunucularındaki Pillow ve Ghostscript yapılandırmalarını gözden geçirmesi gerekiyor. Arka planda EPS dosyalarının işlenmesi zorunlu değilse dosya türü filtrelerinin kütüphaneye girmeden önce sıkılaştırılması öneriliyor.
Görsel işleme kütüphaneleri tarihsel olarak saldırı yüzeyi en geniş alanlardan biri olmayı sürdürüyor. Güvenlik yamaları dağıtılana kadar harici dosya adı doğrulaması yapmak ve gereksiz format desteğini kapatmak en pratik savunma hattı.
Sıkça sorulan sorular
Pillow kütüphanesindeki bu açık nasıl sömürülüyor?
Saldırganlar, EPS formatındaki dosyanın adının içine kabuk (shell) komutları yerleştiriyor. Pillow bu dosyayı işlemek için Ghostscript'i çalıştırdığında, filtrelenmemiş dosya adı nedeniyle işletim sistemi bu komutları doğrudan yürütüyor.
Sadece dosya içeriğini kontrol etmek sistemi korur mu?
Hayır. Açık doğrudan dosya adının parametre olarak aktarılmasından kaynaklandığı için görselin içeriği geçerli bir EPS olsa bile zararlı dosya adı komut çalıştırmayı tetikleyebilir.
Kaynaklar
- Critical Flaw in Python’s Popular Pillow Image Library Allows Code Execution via a Crafted Image. t.co, 2026. https://t.co/WgsQv9TroW
- Python Pillow Kütüphanesinde Kritik Açık: Dosya Adı ile Kod Yürütme Riski (CVE-2026-112900). @TheHackersNews, 2026. https://x.com/TheHackersNews/status/2113565218039333137