
פגם קריטי בספריית התמונות Pillow מאפשר הרצת קוד דרך שם קובץ EPS מעוצב
פגם בטיפול ב-EPS של Pillow מאפשר לתוקפים להריץ קוד על ידי שליטה בשם הקובץ; 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 ב-9.2 מתוך 10, בעוד המתחזקים מדרגים אותו כבינוני מכיוון שהתוקף חייב לשלוט בשם הקובץ. לא נצפה ניצול של פגם ה-EPS בשטח.
תיקונים קריטיים נוספים באותה גרסה מטפלים בבאג שימוש חוזר בזיכרון לאחר שינוי מצב, שתי גלישות בפענוח JPEG, וגלישת חיץ TIFF ותיקה הקיימת מאז 2013. גלישת ה-JPEG בפורמט FlashPix יכולה להשיג הרצת קוד עם קריאה בודדת ל-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 מחוץ למארחים המעבדים העלאות לא מהימנות ולעולם אל תעבירו שם קובץ בשליטת תוקף ל-Image.open עבור קבצי EPS; הימנעו משימוש ב-draft() ו-thumbnail() על קבצי JPEG לא מהימנים, או קראו ל-load() תחילה, או העבירו reducing_gap=None; התייחסו לשמירת TIFF לחיץ בזיכרון כפעולה רגישה כאשר התמונה מגיעה ממשתמש.
מקורות: The Hacker News
SiTech — פיתוח אתרים בכוח ה-AI
אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.