חזרה

PostgreSQL מתקנת 52 פגיעויות, כולל באג בן 22 שנה
SiTech AI Team3 דק׳ קריאה

PostgreSQL מתקנת 52 פגיעויות, כולל באג בן 22 שנה

עדכוני PostgreSQL מתקנים 52 פגיעויות אבטחה, כולל CVE-2026-6460, באג בלבול טיפוסים (type confusion) שעלול לאפשר למשתמש מאומת עם הרשאות ליצירת אובייקטים להריץ קוד על השרת.

PostgreSQL שחררה עדכונים המתקנים 52 פגיעויות אבטחה, ובהן CVE-2026-6460, באג בלבול טיפוסים עם ציון CVSS של 8.8 שעלול לאפשר למשתמש מסד נתונים מאומת עם הרשאה ליצירת אובייקטים להריץ קוד על השרת. קבוצת PostgreSQL Global Development Group מסרה שלא התקבלו דיווחים על תקיפות המנצלות את הפגם, ורשומת ה-CVE של CISA מציינת את מצב הניצול כלא קיים.

הפגם

CVE-2026-6460 משפיע על כל גרסאות PostgreSQL לפני 18.7, 17.12, 16.16, 15.20 ו-14.25. הפגם נוגע לטיפוסים מורכבים, הבנויים משדות בעלי שמות שלכל אחד מהם טיפוס נתונים משלו. אפשר לשנות את הטיפוס של שדה בזמן שערכים ישנים מאותו טיפוס עדיין מוחזקים במקום אחר בשרת, ולכן השרת עלול לקרוא ערך ישן כאילו היה מהטיפוס החדש. התיקון מוסיף בדיקות גרסה שמאפשרות לשרת לזהות ערך שאינו תואם עוד את הטיפוס שלו. קוד שרץ דרך הפגם מקבל את הרשאות משתמש מערכת ההפעלה שמפעיל את PostgreSQL.

מחקר הניצול

חוקר האבטחה Mehmet Ince פרסם השבוע ניתוח טכני המתאר ניצול עובד ב-PostgreSQL 18.6. השיטה שלו מכינה שאילתה שמחזיקה ערך, משנה את הטיפוס של אחד משדות הערך ואז מריצה את השאילתה. הניתוח כולל את ה-SQL שמפיל שרת לא מתוקן ואת השלב השני שמדליף כתובות זיכרון, אך לא את ה-SQL של השלב האחרון שמפעיל פקודה בשרת. הוא כתב שהוא הצליח לעורר את הקריסה בתפקיד התחברות בעל ההרשאות הנמוכות ביותר. הודעת האבטחה של הפרויקט מתארת את התוקף רק כמי שיכול ליצור אובייקטים, בלי לציין אילו הרשאות נדרשות לכך. Red Hat מציינת בהודעת ה-CVE שלה שתוקף זקוק להתחברות למסד נתונים עם יכולת ליצור או לשנות אובייקטים. אף אחד מהמקורות האלה אינו אומר אם חשבון עם הרשאות ברירת מחדל בלבד יכול לעבור את הקריסה ולהריץ קוד.

אינס מייחס את שורש הפגם ל-5 במאי 2004, כאשר PostgreSQL קיבלה את היכולת לשנות את הטיפוס של עמודה. הטכניקה שלו להרצת קוד נשענת על שינוי מאוחר יותר מ-14 במאי 2015. הוא גם התאים את הניצול לשירותי PostgreSQL מנוהלים והעביר באופן פרטי הוכחות היתכנות לצוותי האבטחה של הספקים באוגוסט.

תיקונים אחרים

הפרויקט מודה ליותר מתריסר מדווחים על CVE-2026-6460, ובהם החוקר עצמו, ומייחס לו גם חמש פגיעויות נוספות באותה מהדורה. הפרויקט מדרג 32 מתוך 52 הפגיעויות בציון 8.8, הגבוה במהדורה. לפי הציונים במדד הפגיעויות שלו, רק פגם שרת אחד אינו דורש לא התחברות ולא פעולה של משתמש: CVE-2026-116322 מאפשר ללקוח לא מאומת לעורר הפעלה מחדש של שרתי PostgreSQL 18. תיקונים בכלי הלקוח כוללים ארכיון שנבנה במיוחד שיכול לגרום ל-pg_restore להריץ קוד בהרשאות המשתמש שמפעיל אותו, ושרת מקור שנפרץ שיכול לגרום ל-psql להריץ קוד דרך סקריפט השחזור בפלט ה-tar של pg_dump.

מה על מנהלי מערכת לעשות

עדכנו את השרת ל-18.7, 17.12, 16.16, 15.20 או 14.25, בהתאם לגרסה הראשית שלכם. בנו מחדש או עדכנו כל תוסף בשפת C באותו זמן כמו השרת. תוספים שנבנו מול גרסאות ישנות יותר עדיין נטענים, אך לפי הודעה של מתחזקי חבילות ה-RPM של הפרויקט ייתכן שהם אינם מוגנים מפני הפגיעויות שתוקנו במהדורה זו. תוספים אחדים יזדקקו גם לשינוי בקוד המקור. תוספים שנבנו מחדש למהדורות החדשות עלולים להיכשל בטעינה בשרתים ישנים. חבילות תוספים במאגרי ה-RPM של הפרויקט דורשות כעת את מהדורת המשנה החדשה. אם PostgreSQL פועל מחוץ ליחידת השירות של החבילה שלו, למשל תחת Patroni, הפעילו אותו מחדש מיד לאחר העדכון. עדכנו כלי לקוח כמו pg_dump, pg_restore, reindexdb ו-vacuumdb בכל מחשב שמריץ אותם. אל תשתמשו בהגדרה החדשה composite_type_mismatch כדי לכבות את הבדיקות, מפני שהפרויקט אומר שהדבר נושא בסיכוני אבטחה. הודעת האבטחה והערות המהדורה אינן מציעות מעקף לשרתים שאי אפשר לעדכן עדיין.

PostgreSQL 14 הגיעה כעת לסוף דרכה, ו-14.25 היא המהדורה האחרונה שלה. גרסאות ראשיות ישנות יותר מושפעות גם הן ולא קיבלו עדכון. לאחר העדכון יש לבצע את שלבי האינדוקס מחדש שמופיעים בהכרזת המהדורה. אם אתם משתמשים בגיבויים מצטברים, קחו גיבוי מלא חדש ובססו עליו את הגיבויים המצטברים המאוחרים.

מקורות: The Hacker News

SiTech

SiTech — פיתוח אתרים בכוח ה-AI

אנחנו בונים אתרים מהירים ומודרניים ומשלבים AI בתהליכי עבודה אמיתיים. יש לכם פרויקט או שאלה? נשמח לעזור.