
Pillow-ის ბიბლიოთეკის კრიტიკული ხარვეზი სპეციალურად შექმნილი EPS ფაილის სახელით კოდის გაშვების საშუალებას იძლევა
Pillow-ის EPS ხარვეზი თავდამსხმელს ფაილის სახელის კონტროლით კოდის გაშვების საშუალებას აძლევს; CVE-2026-112900 ეხება 2.6.0-12.3.0 ვერსიებს და გამოსწორებულია 13.0.0-ში (16 ოქტომბერი). განაახლეთ და დაბლოკეთ EPS-ის არასანდო ატვირთვები.
ხარვეზის დეტალები
Pillow, Python-ისთვის ყველაზე გავრცელებული გამოსახულებათა ბიბლიოთეკა, EPS-ის დამუშავებაში კრიტიკულ ხარვეზს შეიცავს. EPS ფაილის გახსნისას Pillow ფაილის სახელს Ghostscript-ის პროგრამას გადასცემს ვალიდაციის გარეშე. თავდამსხმელს, რომელიც ფაილის სახელს აკონტროლებს, შეუძლია მიაღწიოს იმას, რომ Ghostscript-მა სახელი ბრძანებებად აღიქვას, რაც თვითნებური კოდის გაშვებას იწვევს. ხარვეზი აღრიცხულია როგორც CVE-2026-112900 და ეხება Pillow-ის 2.6.0-დან 12.3.0-მდე ვერსიებს. პროექტის მომვლელებმა 13.0.0 ვერსია 16 ოქტომბერს გამოუშვეს, რათა პრობლემა მოეგვარებინათ.
გაფრთხილებაში ნათქვამია, რომ ხარვეზს ფაილის სახელი იწვევს და არა PostScript დოკუმენტში არსებული რაიმე; ეს ნიშნავს, რომ უწყინარი EPS ფაილი შეიძლება საშიში გახდეს, თუ ფაილის სახელს შეცვლიან. ხარვეზი მხოლოდ მაშინ აქტიურდება, როცა სისტემაზე gs პროგრამაა დაყენებული, რომელიც EPS-ის მხარდაჭერისთვისაა საჭირო.
ზემოქმედება და მასშტაბი
Pillow-ს იყენებენ ვებ-ატვირთვის ფორმებში, ავატარებისა და მინიატურების გენერაციაში, დოკუმენტებისა და PDF-ის პაიპლაინებში და მანქანური სწავლების პროექტების უმეტესობაში. OX Security-ის შეფასებით, ბიბლიოთეკა თვეში დაახლოებით 436 მილიონჯერ ჩამოიტვირთება. 13.0.0 ვერსია დიდი უსაფრთხოების გამოშვებაა, რომელიც მოიცავს შესწორებებს ოთხი სიმძიმის დონისთვის, და მათგან ორს პროექტის მომვლელები კრიტიკულად აფასებენ. CVE-ის ჩანაწერში EPS ხარვეზი 10-დან 9,2 ქულით არის შეფასებული, ხოლო მომვლელები მას ზომიერად აფასებენ, რადგან თავდამსხმელმა ფაილის სახელი უნდა აკონტროლოს. EPS ხარვეზის ექსპლუატაცია რეალურ პირობებში არ დაფიქსირებულა.
იმავე გამოშვებაში დამატებითი კრიტიკული შესწორებებიც შედის: ისინი აგვარებენ რეჟიმის შეცვლის შემდეგ მეხსიერების ხელახალი გამოყენების ხარვეზს, JPEG-ის დეკოდირების ორ გადადინებას და 2013 წლიდან არსებულ TIFF ბუფერის გადადინებას. FlashPix ფორმატში JPEG-ის გადადინებამ შეიძლება კოდის გაშვება გამოიწვიოს Image.open ფუნქციის ერთი გამოძახებით, თუ არჩევითი olefile პაკეტია დაყენებული. TIFF-ის გადადინება ხდება მაშინ, როცა შეკუმშულ TIFF-ს ინახავენ მეხსიერებაში არსებულ ბუფერში, მაგალითად io.BytesIO ბუფერში; ეს გავრცელებული პრაქტიკაა იმ სერვისებისთვის, რომლებიც ატვირთვებს ხელახლა კოდირებენ.
რისკის შემცირების ნაბიჯები
განაახლეთ Pillow 13.0.0-მდე და ხელახლა ააწყვეთ ყველა კონტეინერი, wheel პაკეტი ან საბაზო იმიჯი, რომელიც ძველ ასლს შეიცავს. Pillow 13 აღარ უჭერს მხარს Python 3.10-ს, ამიტომ 3.10-ზე დარჩენილი გარემოები Python 3.11 ან უფრო ახალ ვერსიაზე უნდა გადავიდნენ. განახლების ბრძანებაა pip install -U 'Pillow>=13.0.0'.
თუ დაუყოვნებლივ განახლება შეუძლებელია, შემდეგი ზომები რისკს ამცირებს: gs პროგრამა არ დატოვოთ იმ ჰოსტებზე, რომლებიც არასანდო ატვირთვებს ამუშავებენ, და EPS ფაილებისთვის არასოდეს გადასცეთ თავდამსხმელის მიერ კონტროლირებადი ფაილის სახელი Image.open ფუნქციას; მოერიდეთ draft() და thumbnail() ფუნქციების გამოყენებას არასანდო JPEG-ებზე, ან ჯერ გამოიძახეთ load(), ან გადასცეთ reducing_gap=None; TIFF-ის მეხსიერებაში არსებულ ბუფერში შენახვას მოეკიდეთ როგორც მგრძნობიარე ოპერაციას, როცა გამოსახულება მომხმარებლისგან მოდის.
წყაროები: The Hacker News
SiTech — AI-გაძლიერებული ვებ დეველოპმენტი
ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.