חזרה לפיד
newsמקור: Django Weblog — כללי3.11.2026

עדכון אבטחה קריטי ב-Django: חובה לעדכן גרסה

אמ;לק

התגלתה פרצת אבטחה בפריימוורק Django שמאפשרת לתוקף לגרום לקריסת זיכרון בשרת (Memory Exhaustion) באמצעות העלאת קבצים זדונית. אם האתר שלכם מבוסס Django, עליכם לעדכן לגרסאות האחרונות באופן מיידי.

סיכום בעברית: מערכת VibeSec · מדיניות המקורות

נוסף ל-VibeSec:

כותרת מקורית: Django security releases issued: 6.1.3, 6.0.10, and 5.2.19

עדכון אבטחה קריטי ב-Django: חובה לעדכן גרסה

התוכן המלא בעברית

תרגום אוטומטי מהמקור; מונחים טכניים נשארו באנגלית. לנוסח המחייב — הכתבה המקורית.

בהתאם למדיניות שחרור האבטחה שלנו, צוות ⁦Django⁩ מוציא מהדורות עבור ⁦Django⁩ 6.1.3, ⁦Django⁩ 6.0.10 ו-⁦Django⁩ 5.2.19. מהדורות אלו מטפלות בבעיות האבטחה המפורטות להלן. אנו מעודדים את כל המשתמשים של ⁦Django⁩ לשדרג בהקדם האפשרי.

⁦CVE-2026-108147⁩: מיצוי זיכרון פוטנציאלי ב-⁦MultiPartParser⁩ באמצעות העלאת קובץ ⁦base64-encoded⁩

בעת שימוש ב-django.http.multipartparser.⁦MultiPartParser⁩ , העלאות מרובי חלקים עם ⁦Content-Transfer-Encoding⁩: ⁦base64⁩ יכולות להיות מאוחסנות במלואן בזיכרון, ללא קשר ל-⁦FILE_UPLOAD_MAX_MEMORY_SIZE⁩ , לפני שהן מועברות למטפלי העלאה, מה שעלול לצרוך זיכרון מוגזם.

לבעיה זו יש חומרה "נמוכה" לפי ה-⁦Django Security Policy⁩ .

⁦CVE-2026-111211⁩: הזרקת יומן רישום פוטנציאלית באמצעות ערכי טופס גיאומטריה ללא יציאה

django.contrib.gis.forms.⁦GeometryField⁩ והווידג'טים שלו רשמו ערכים לא חוקיים שנשלחו ישירות, מה שמאפשר לכתוב תווי בקרה (למשל, שורות חדשות או ⁦ANSI⁩ רצפי בריחה) ללא escape לתוך יומנים. זה יכול לאפשר הזרקת יומנים או זיוף, ולאפשר לתוקפים לתפעל את המראה או המבנה של יומן, במיוחד ביומנים המעובדים על ידי מערכות חיצוניות או נצפים במסופים.

לבעיה זו יש חומרה "נמוכה" לפי ה-⁦Django Security Policy⁩ .

⁦CVE-2026-111362⁩: זיוף בקשות בצד השרת באמצעות crs חבר של ⁦GeoJSON⁩ גיאומטריות

גרסאות קודמות של מפרט ⁦GeoJSON⁩ אפשרו לציין מערכת התייחסות לקואורדינטות (⁦CRS⁩) על ידי ⁦URL⁩. מכיוון ש⁦GDAL⁩ עדיין פותר את ה⁦URLs⁩ אלה, כל נתיב אימות, שמירה או שאילתה שבו גיאומטריה מופעלת מקלט משתמש אפשרו לתוקף לשלוח ⁦CRS⁩ זדוני שיבצע בקשת רשת כמשתמש בתהליך ⁦Django⁩, או יקרא קובץ, או שניהם.

חיפושים נגד שדות מרחביים, שדה הטופס ⁦GeometryField⁩ ו-⁦GEOSGeometry⁩ דוחים כעת ⁦GeoJSON⁩ גיאומטריות עם ⁦CRS⁩ הפניות למשאבים חיצוניים. כלי השירות ⁦DataSource and LayerMapping⁩ לטעינת נתונים מהימנים ממשיכים לקבל ערכים אלה.

לבעיה זו יש חומרה "בינונית" לפי ה-⁦Django Security Policy⁩ .

תודה ל-⁦Submersion Security Research Team⁩ על הדיווח.

⁦CVE-2026-113593⁩: חשיפה פוטנציאלית של נתונים פרטיים באמצעות כותרות ריקות וחסרות של ⁦Vary⁩

⁦UpdateCacheMiddleware⁩ ו-⁦cache_page⁩() יצרו את אותו מפתח מטמון עבור בקשה שהשמיטה כותרת הרשומה בכותרת ⁦Vary⁩ של התגובה ובקשה ששלחה את הכותרת הזו עם ערך ריק. כתוצאה מכך, תגובה שנשמרה במטמון עבור אחת מהבקשות הללו יכולה להיות מוגשת לאחרת, מה שעלול להוביל לחשיפת נתונים פרטיים.

מפתחות מטמון מבחינים כעת בין ערכי כותרת חסרים וריקים, כנדרש על ידי ⁦RFC⁩ 9111#section-4.1 .

תגובות שנשמרו בעבר במטמון עבור בקשות שהשמיטו כותרת הרשומה ב-⁦Vary⁩ לא יותאמו עוד, ויישמרו שוב במטמון בבקשה הבאה.

לבעיה זו יש חומרה "נמוכה" בהתאם למדיניות האבטחה ⁦Django⁩.

תודה ל-⁦Andrew Gonzalez⁩ על הדיווח.

⁦CVE-2026-113733⁩: חשיפת גיבוב של סיסמה למשתמשי מנהל "הצג בלבד" עם מודלים מותאמים אישית של משתמשים

למשתמשי מנהל מערכת עם הרשאת תצוגה (אך לא לשנות) למודל משתמש הוצג כל ה-hash של הסיסמה כאשר המודל לא היה ⁦AUTH_USER_MODEL⁩ , או כאשר ⁦AUTH_USER_MODEL⁩ ירש את שדה הסיסמה שלו ממודל אב קונקרטי באמצעות ירושה מרובה טבלאות.

לבעיה זו יש חומרה "נמוכה" לפי ה-⁦Django Security Policy⁩ .

⁦CVE-2026-114582⁩: זיוף בקשות בצד השרת באמצעות קלט מחרוזת ⁦SpatialReference⁩

SpatialReference העביר קלט מחרוזת ל-⁦GDAL⁩, אשר כברירת מחדל פותר את ⁦URLs⁩ וקורא קבצים. התנהגות זו לא תועדה על ידי ⁦Django⁩. שיטות אחרות שהושפעו כללו את ⁦GEOSGeometry.transform⁩() , ⁦OGRGeometry.transform⁩(), ⁦GDALRaster.transform⁩() , ה-srs seter של ⁦OGRGeometry⁩ ו-srs and srid seters של ⁦GDALRaster⁩ . ⁦URL⁩ או נתיב קובץ המגיע לכל אחד מאלה יוציא בקשה יוצאת או יקרא קובץ כמשתמש בתהליך ⁦Django⁩. ניתן לשלב את וקטורי ההתקפה כדי לחשוף תוכן קובץ מקומי על ידי צפייה בבקשות יוצאות.

SpatialReference משבית כעת גישה לרשת ולקבצים בעת ניתוח קלט מחרוזת ב-⁦GDAL⁩ 3.9 ואילך. כתוצאה מכך, נתיבי קבצים ו-⁦URLs⁩ אינם מתקבלים עוד כקלט ⁦SpatialReference⁩. הפניות למילון המשתמשות בקידומת ⁦DICT⁩:, לרבות אלה עם הקידומת ⁦ESRI⁩:: , נדחות בכל הגרסאות ⁦GDAL⁩.

הגנה מלאה דורשת ⁦GDAL⁩ 3.9 ואילך. מספרים שלמים ⁦SRIDs⁩ נחפשים ישירות במסד הנתונים ⁦EPSG⁩, אז העדיפו אותם כאשר הקלט אינו מהימן. לחלופין, אם יש להשתמש במחרוזות בגרסאות ⁦GDAL⁩ נמוכות יותר, השווה לרשימת אישורים. בדיקת המערכת החדשה gis.⁦W001⁩ מזהירה כאשר הגרסה המותקנת של ⁦GDAL⁩ אינה לפחות 3.9.

לבעיה זו יש חומרה "נמוכה" בהתאם למדיניות האבטחה ⁦Django⁩.

גרסאות נתמכות מושפעות

הַחְלָטָה

תיקונים לפתרון הבעיה הוחלו על הסניפים הראשיים, 6.1, 6.0 ו-5.2 של ⁦Django⁩. ניתן להשיג את התיקונים מהשינויים הבאים.

⁦CVE-2026-108147⁩: מיצוי זיכרון פוטנציאלי ב-⁦MultiPartParser⁩ באמצעות העלאת קובץ ⁦base64-encoded⁩

⁦CVE-2026-111211⁩: הזרקת יומן רישום פוטנציאלית באמצעות ערכי טופס גיאומטריה ללא יציאה

⁦CVE-2026-111362⁩: זיוף בקשות בצד השרת באמצעות crs חבר של ⁦GeoJSON⁩ גיאומטריות

⁦CVE-2026-113593⁩: חשיפה פוטנציאלית של נתונים פרטיים באמצעות כותרות ריקות וחסרות של ⁦Vary⁩

⁦CVE-2026-113733⁩: חשיפת גיבוב של סיסמה למשתמשי מנהל "הצג בלבד" עם מודלים מותאמים אישית של משתמשים

⁦CVE-2026-114582⁩: זיוף בקשות בצד השרת באמצעות קלט מחרוזת ⁦SpatialReference⁩

המהדורות הבאות הוצאו

מקש ⁦PGP⁩ ⁦ID⁩ המשמש לגרסה זו הוא ⁦Jacob Walls⁩: 131403F4D16D8DC7

הערות כלליות לגבי דיווח אבטחה

כמו תמיד, אנו מבקשים שבעיות אבטחה פוטנציאליות ידווחו באמצעות דוא"ל פרטי ל-security@djangoproject.com , ולא באמצעות המופע ⁦Trac⁩ של ⁦Django⁩, ולא דרך ⁦Django Forum⁩. אנא עיין במדיניות האבטחה שלנו למידע נוסף.

#python#cve#django#vulnerability#web-security
קרא במקור

קריאה וכלים קשורים

אבטחת Pythonמונחי אבטחה והסברים בעברית