חזרה

Git מתקן פגם המאפשר למאגרים זדוניים להריץ קוד במהלך שיבוטים רקורסיביים
SiTech AI Team3 דק׳ קריאה

Git מתקן פגם המאפשר למאגרים זדוניים להריץ קוד במהלך שיבוטים רקורסיביים

Git 2.56.1 מתקן את CVE-2026-111760, פגם חיתוך מספר שלם המאפשר למאגר זדוני להריץ קוד במהלך שיבוטים רקורסיביים עם תת-מודולים. חמש פגיעויות CVE נוספות תוקנו גם הן.

Git שחרר תיקונים לפגם שיכול לאפשר למאגר זדוני להריץ קוד תוקף במכונה שמשבטת אותו באופן רקורסיבי עם תת-מודולים. הבעיה, המסומנת כ-CVE-2026-111760, תוקנה ב-Git 2.56.1, עם תיקונים תואמים ב-2.50.2, 2.51.3, 2.52.1, 2.53.1, 2.54.1 ו-2.55.1. המהדורה מתייחסת גם לחמש פגיעויות נוספות.

הפגם העיקרי ואופן פעולתו

CVE-2026-111760 הוא חיתוך מספר שלם באופן שבו Git מטפל באינדקס שלו. נתיב ארוך במיוחד יכול לעבור את בדיקת הבטיחות של Git, אך Git כותב אותו לדיסק תחת שם קצר יותר שתוקף יכול להגדיר כ-.git. הדבר יכול לאפשר לתוקף להחליף את קובץ .git של תת-מודול בקישור סמלי לתיקייה המכילה ווים (hooks) או תצורה זדוניים. ווים (hooks) הם תוכניות ש-Git מריץ בנקודות מוגדרות, כך שברגע ש-Git משתמש באותה תיקייה, קוד התוקף יכול לרוץ. תת-מודולים חשובים מכיוון ש-Git מסרב להחליף תיקיית .git בקישור סמלי, אך בתת-מודול ששובט זה עתה, .git הוא קובץ.

הגרסאות המתוקנות דוחות נתיבים ארוכים במיוחד כאלה לפני שאורכם יכול להיחתך.

פגיעויות נוספות שתוקנו

המהדורות מתקנות גם את CVE-2026-113408, שבו שרת זדוני יכול לשלוח שם ענף עם מעבר נתיב כשמישהו משבט מאגר ריק דרך פרוטוקול Git גרסה 2; עם מנגנון ה-backend של files reference, עדכון מאוחר יותר יכול לכתוב מחוץ לתיקיית ההפניות של Git. CVE-2026-114467 כרוך במיזוג תגית עם יותר משתי חתימות GPG, דבר המשחית זיכרון מחסנית ועלול לגרום למניעת שירות. CVE-2026-114469 מאפשר לתיקון בינארי המתרחב לגודל גדול מאוד לעבור את מגבלת גודל התיקון של Git של כ-1 GiB ולגרום לקריסה של Git עם קריאה מחוץ לגבולות. CVE-2026-105437 כרוך במיזוג גדול מאוד עם קונפליקטים רבים ומאפיין conflict-marker-size גדול, שיכול לגרום ל-Git לכתוב מעבר לסוף חוצץ קטן מדי ולהשחית זיכרון ערימה. CVE-2026-114466 כרוך בשלוש תכונות של git fast-import, rewrite-submodules-from, rewrite-submodules-to ו-export-pack-edges, שניתן היה להשתמש בהן כדי לקרוא קבצים שרירותיים או ליצור קבצים ולהוסיף להם נתונים; Git כעת דוחה אותם בזרם קלט אלא אם מוגדר --allow-unsafe-features.

הערות GitHub ו-GitLab

GitHub הסביר את התיקונים בכתבה מפורטת והחיל אותם על github.com ועל GitHub Enterprise Cloud. עבור GitHub Enterprise Server, הם נמצאים בגרסאות 3.19.15, 3.20.11, 3.21.9 ו-3.22.4. גרסאות מתוקנות של GitHub Desktop ואפליקציית GitHub Copilot נמצאות בהכנה, וגם GitHub Codespaces ו-GitHub Actions יקבלו את Git המתוקן. Git for Windows לא שחרר גרסה המבוססת על Git 2.56.1 נכון ליום שלישי ב-19:09 UTC, לפי בדיקת תגי השחרור שלו על ידי The Hacker News. GitLab, שהקצה את CVE-2026-105437, אמר ששרתי אירוח קוד הם בעלי הסבירות הגבוהה ביותר להיות ממוקדים דרך git merge-tree, ושמאפיין conflict-marker-size ניתן להגדרה בקובץ .gitattributes שמקומט במאגר.

הנחיות הקלה

GitHub ממליץ להתקין גרסה מתוקנת ממערכת ההפעלה או ממפיץ ה-Git, ולעדכן כל אפליקציה שמגיעה עם העתק משלה של Git. עד להתקנת גרסה מתוקנת, GitHub מציע צעדים שאינם מחליפים את התיקונים: לשבט רק משרתים שאתם סומכים עליהם; לא לשבט באופן רקורסיבי מאגרים שאינכם סומכים עליהם; לא למזג תוכן או תגיות שאינכם סומכים עליהם; ולא לעבד תיקונים בינאריים או זרמי fast-import ממקורות שאינכם סומכים עליהם. עבור CVE-2026-105437, שרתים שאינם יכולים לשדרג עדיין יכולים להוסיף conflict-marker-size=7 לקובץ info/attributes של כל מאגר, או לכבות את בדיקות המיזוג הללו עבור מאגרים לא מהימנים.

מקורות: The Hacker News

SiTech

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

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