מהדורות מתקנות של מערכת בקרת המקור המבוזר Git 2.24.1, 2.23.1, 2.22.2, 2.21.1, 2.20.2, 2.19.3, 2.18.2, 2.17.3, 2.16.6, 2.15.4 ו-2.14.62.24.1 XNUMX, אשר תיקן פגיעויות שאפשרו לתוקף לשכתב נתיבים שרירותיים במערכת הקבצים, לארגן ביצוע קוד מרחוק או להחליף קבצים בספריית ".git/". רוב הבעיות שזוהו על ידי העובדים
Microsoft Security Response Center, пять из восьми уязвимостей специфичны для платформы Windows.
- - פקודת סטרימינג "פיצ'ר ייצוא-סימנים=נתיב" כתוב תוויות לספריות שרירותיות, בהן ניתן להשתמש כדי להחליף נתיבים שרירותיים במערכת הקבצים בעת ביצוע פעולת "ייבוא מהיר של git" עם נתוני קלט לא מסומנים.
- - בריחה לא נכונה של ארגומנטים של שורת הפקודה לביצוע מרחוק של קוד תוקף במהלך שיבוט רקורסיבי באמצעות כתובת האתר ssh://. בפרט, ארגומנטים בריחה שהסתיימו בקו נטוי אחורי (לדוגמה, "מבחן \") טופלו בצורה שגויה. במקרה זה, בעת מסגור טיעון עם מרכאות כפולות, הציטוט האחרון היה בריחה, מה שאפשר לארגן את החלפת האפשרויות שלך בשורת הפקודה.
- — при рекурсивном клонировании субмодулей («clone —recurse-submodules») в окружении Windows при определённых условиях מפעילים את השימוש באותה ספריית git פעמיים (.git, git~1, git~2 ו-git~N מוכרים כספרייה אחת ב-NTFS, אבל מצב זה נבדק רק עבור git~1), שניתן להשתמש בה כדי לארגן כתיבה לספרייה ". git". כדי לארגן את ביצוע הקוד שלו, תוקף, למשל, יכול להחליף את הסקריפט שלו דרך המטפל שלאחר התשלום בקובץ .git/config.
- — обработчик буквенных имён дисков в путях Windows при трансляции путей типа «C:\» был рассчитан только на замену однобуквенных латинских идентификаторов, но не учитывал возможность создания виртуальных дисков, назначаемых через «subst буква:путь». Такие пути обрабатывались не как абсолютные, а как относительные пути, что позволяло при клонировании вредоносного репозитория организовать запись в произвольный каталог за пределами рабочего дерева каталогов (например, при использовании цифр или unicode-символов в названии диска — «1:\what\the\hex.txt» или «ä:\tschibät.sch»).
- — при работе на платформе Windows применение альтернативных потоков данных в NTFS, создаваемых через добавление признака «:stream-name:stream-type» к имени файла, החלף קבצים בספריית ".git/" בעת שיבוט מאגר זדוני. לדוגמה, השם ".git::$INDEX_ALLOCATION" ב-NTFS טופל כקישור חוקי לספריית ".git".
- — при использовании Git в окружении WSL (Windows תת-מערכת עבור Linux) при обращении к рабочему каталогу הגנה מפני מניפולציה של שמות ב-NTFS (התקפות באמצעות תרגום שמות FAT היו אפשריות, למשל, ניתן היה לגשת ל-".git" דרך ספריית "git~1").
- -
записи в каталог «.git/» на платформе Windows при клонировании вредоносных репозиториев, содержащих файлы с обратным слешем в имени (например, «a\b»), который допустим в Unix/Linux, но воспринимается как часть пути в Windows. - - בדיקה לא מספקת של שמות תת-מודולים עלולה לשמש כדי לארגן התקפות ממוקדות, שאם ישובטו באופן רקורסיבי, עלולות להיות כדי לבצע את הקוד של התוקף. Git לא מנע יצירת ספריית תת-מודול בתוך ספריית תת-מודול אחר, מה שברוב המקרים רק יוביל לבלבול, אך לא מנע בפוטנציה את החלפת התוכן של מודול אחר במהלך תהליך השיבוט הרקורסי (לדוגמה, ספריות התת-מודולים "hipo" ו-"hipo/hooks" ממוקמים כ-" .git/modules/hippo/" ו-".git/modules/hipo/hooks/", וניתן להשתמש בספריית ה-hooks בהיפופוטם בנפרד כדי לארח הוקס שהופעלו.
משתמשים Windows рекомендуется срочно обновить версию Git, а до обновления воздержаться от клонирования непроверенных репозиториев. Если возможности срочно обновить версию Git пока нет, то для снижения риска атаки рекомендуется не запускать «git clone —recurse-submodules» и «git submodule update» с непроверенными репозиториями, не использовать «git fast-import» с непроверенными входными потоками и не клонировать репозитории в разделы на базе NTFS.
למען אבטחה נוספת, מהדורות חדשות אוסרות גם על שימוש במבנים בצורת "submodule.{name}.update=!command" ב-.gitmodules. עבור הפצות, אתה יכול לעקוב אחר שחרור עדכוני החבילות בדפים ,, , , , , , .
מקור: OpenNet.ru
