Python uchun eng keng tarqalgan rasm kutubxonasi Pillow, serverda operatsion tizim buyruqlarini bajarish uchun ochilishi aytilgan fayl nomini ko'rsatish orqali ishlatilishi mumkin.

CVE-2026-112900 deb nomlangan zaiflik Pillow'ning EPS rasmlarini qayta ishlash usulida yotadi: u fayl nomini avval tekshirmasdan, rasmni piksellarga aylantirish uchun alohida dastur — Ghostscript'ga yuboradi.

Ghostscript hujumchi tanlagan nomni fayl emas, balki ko'rsatma sifatida o'qishi mumkin va uni bajariladigan buyruqlarni o'z ichiga olgan ikkinchi faylga yo'naltirishi mumkin. Pillow'ning ishlab chiquvchilari buni 16-oktabrda chiqarilgan 13.0.0 versiyasida tuzatishdi.

Pillow Python rasmlarni qayta ishlaydigan deyarli har joyda uchraydi: veb yuklash shakllari, avatar va eskiz vositalari, hujjat va PDF quvurlari, shuningdek, ko'pchilik mashina o'rganish loyihalari uni o'z ichiga oladi. Zaifliklarga e'tiborni qaratgan OX Security firmasi kutubxona oyiga taxminan 436 million marta yuklanishini hisoblaydi.

13.0.0 versiyasi katta xavfsizlik yangilanishi bo'lib, to'rtta jiddiylik darajasidagi — pastdan tanqidiygacha — tuzatishlarni o'z ichiga oladi, ulardan ikkitasi ishlab chiquvchilar tomonidan tanqidiy deb baholangan. Hech bir zaiflik hozircha hujum ostida ekani ma'lum emas.

Zaiflik rasmda emas, fayl nomida. "Zaiflik fayl nomi orqali ishga tushadi, PostScript hujjatidagi hech narsa orqali emas," deb aytiladi maslahatda, ya'ni zararsiz EPS fayl ham hujumchi uning nomini o'rnatganida zarar yetkazishi mumkin. Bu yuklash nuqtalarini, foydalanuvchi kiritgan ma'lumotdan saqlangan fayl nomini saqlaydigan yoki quradigan, haqiqiy nishonga aylantiradi.

Zaiflik faqat Ghostscript o'rnatilgan, ya'ni gs dasturi mavjud bo'lgan xostlarda ishlaydi, chunki Pillow EPS ochish uchun unga muhtoj. U Pillow'ning 2.6.0 dan 12.3.0 gacha bo'lgan versiyalariga ta'sir qiladi.

Ishlab chiquvchilar buni o'rtacha deb baholashadi, chunki hujumchi fayl nomini nazorat qilishi kerak. GitHub tomonidan berilgan CVE yozuvi uni 10 dan 9.2 deb baholaydi va xuddi shu shartni belgilaydi.

Ikkita tuzatish ishlab chiquvchilarning eng yuqori "tanqidiy" darajasida. Biri alohida xotira xatosi bo'lib, reliz eslatmalarida rejim o'zgargandan keyin eski rasm ma'lumotlari qayta ishlatilishi deb ta'riflangan. Ikkinchisi Pillow'ning JPEG dekodlashidagi ikkita to'lib ketish zaifligini qamrab oladi.

Ushbu JPEG zaifliklaridan biri, FlashPix (FPX) formatida, Image.open() yagona chaqiruvi bilan tayyorlangan faylda hujumni bajarishi ko'rsatildi, agar ixtiyoriy olefile paketi o'rnatilgan bo'lsa. Pillow bu fayllarni kengaytmasi emas, balki mazmuni orqali taniydi, shuning uchun ishonchsiz yuklamalarni ochadigan server hech qanday foydalanuvchi harakatisiz zararlanishi mumkin.

Ikkinchisi, CVE-2026-112403, dastur tayyorlangan yo'qotishsiz JPEG'dan eskiz (thumbnail) yaratganda xotira buferini to'ldirib yuboradi. Uning maslahati jarayonning ishdan chiqishini, kod bajarilishini emas, xabar qiladi. Bu xato "Anthropic tomonidan Claude yordamida ochiq manba dasturiy ta'minot xavfsizligini o'rganish orqali topilgan, Ada Logics tomonidan qo'lda tasdiqlangan," deb aytiladi maslahatda — bu kompaniyaning kengroq sa'y-harakatining bir qismi bo'lib, u ochiq manba kutubxonalarida yuzlab zaifliklarni aniqlagan.

Uchinchi zaiflik, CVE-2026-112393, Pillow'da 2013-yildan beri mavjud. U dastur siqilgan TIFF rasmini diskdagi faylga emas, balki xotiraga saqlaganda xotira buferini to'ldirib yuboradi — bu yuklamani qayta kodlab, foydalanuvchiga qaytaradigan xizmat uchun odatiy naqsh. Maslahatda aytilishicha, tadqiqotchilar bu bilan jarayonni ishdan chiqargan va faqat xotira manzillarini ochib beradigan ikkinchi, alohida zaiflik yordamida kod bajarishga aylantirgan. Diskdagi haqiqiy faylga saqlash ta'sirlanmaydi.

GitHub tomonidan berilgan CVE yozuvlari EPS, TIFF va JPEG-eskiz zaifliklarini 10 dan 9.2 deb baholaydi — bu tanqidiy reyting. Har biri ballar o'z ichiga olmaydigan shartlarga bog'liq, va ishlab chiquvchilarning o'z baholari o'rtachadan tanqidiygacha o'zgaradi. CVE yozuvlarida CISA tahlilchilari EPS zaifligi uchun ma'lum ekspluatatsiya yo'qligini, TIFF zaifligi uchun esa ommaviy isbot-konseptsiyani belgilaydi.

Nima qilish kerak

Barcha zaifliklarni tuzatuvchi Pillow 13.0.0 ga yangilang va eski nusxani o'z ichiga olgan har qanday konteyner, g'ildirak yoki asosiy rasmlarni qayta quring. Pillow 13 Python 3.10 ni tashlab ketadi, shuning uchun hali 3.10 da bo'lgan o'rnatishlar Python 3.11 yoki yangiroq versiyaga ham muhtoj.

pip install -U "Pillow>=13.0.0" Yangilashgacha, Pillow'ning xavfsizlik yo'riqnomasi va maslahatlari har bir yo'lni kesadigan qadamlarni ko'rsatadi:

  • EPS / Ghostscript: ishonchsiz yuklamalarni qayta ishlaydigan har qanday xostda gs dasturini o'chirib qo'ying va EPS uchun Image.open() ga hujumchi nazorat qiladigan fayl nomini hech qachon uzatmang.
  • JPEG eskizlari: ishonchsiz JPEG'larda draft() va thumbnail() dan qoching, yoki avval load() ni chaqiring, yoki reducing_gap=None ni uzating.
  • TIFF: rasm foydalanuvchidan kelganida io.BytesIO kabi xotiradagi buferga TIFF saqlashni sezgir yo'l sifatida ko'ring.