Оновлення Git з усуненням 8 вразливостей

Опубліковано коригувальні випуски розподіленої системи управління вихідними текстами 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, у яких усунуті вразливості, що дозволяють атакуючому переписати довільні шляхи у файловій системі, організувати віддалений запуск коду або перезаписати файли в каталозі ".git/". Більшість проблем виявлено співробітниками
Microsoft Security Response Center, п'ять із восьми вразливостей специфічні для платформи Windows.

  • CVE-2019-1348 — потокова команда feature export-marks=pathдозволяє записати мітки довільні каталоги, що може використовуватися для перезапису довільних шляхів у ФС при виконанні операції git fast-import з неперевіреними вхідними даними.
  • CVE-2019-1350 - Некоректне екранування аргументів командного рядка могло привести до віддаленого виконання коду атакуючого під час рекурсивного клонування з використанням URL ssh://. Зокрема, некоректно оброблялося екранування аргументів, що закінчуються на зворотний сліш (наприклад, "test"). В цьому випадку при обрамленні аргументу подвійними лапками, остання лапка виявлялася екранованою, що дозволяло організувати підстановку своїх опцій у командному рядку.
  • CVE-2019-1349 - при рекурсивному клонуванні субмодулів («clone-recurse-submodules») в оточенні Windows за певних умов можна було ініціювати використання одного git-каталогу двічі (.git, git~1, git~2 і git~N в NTFS розпізнається як один каталог, але ця ситуація перевірялася тільки для git~1), що могло застосовуватися для організації запису в каталог. git». Для організації виконання коду атакуючий, наприклад, може підставити свій скрипт через обробник post-checkout у файлі .git/config.
  • CVE-2019-1351 — обробник буквених імен дисків у коліях Windows під час трансляції колій типу «C:» був розрахований лише на заміну однолітерних латинських ідентифікаторів, але не враховував можливість створення віртуальних дисків, що призначаються через «subst буква:шлях». Такі шляхи оброблялися не як абсолютні, а як відносні шляхи, що дозволяло при клонуванні шкідливого репозиторію організувати запис у довільний каталог поза робочим деревом каталогів (наприклад, при використанні цифр або unicode-символів у назві диска — «1:\what\the\" hex.txt» або «ä:\tschibät.sch»).
  • CVE-2019-1352 — під час роботи на платформі Windows застосування альтернативних потоків даних у NTFS, створюваних через додавання ознаки ":stream-name:stream-type" до імені файлу, дозволяло перезаписати файли в каталозі ".git/" при клонуванні шкідливого репозиторію. Наприклад, ім'я ".git::$INDEX_ALLOCATION" в NTFS оброблялося як коректне посилання на каталог ".git".
  • CVE-2019-1353 - при використанні Git в оточенні WSL (Windows Subsystem for Linux) при зверненні до робочого каталогу не застосовувалася захист від маніпуляції іменами в NTFS (можливі атаки через трансляцію імен FAT, наприклад, до «.git» можна було звернутися через каталог «git~1»).
  • CVE-2019-1354 -
    можливість записи в каталог ".git/" на платформі Windows при клонуванні шкідливих репозиторіїв, що містять файли зі зворотним слешем в імені (наприклад, "a\b"), який допустимо в Unix/Linux, але сприймається як частина шляху в Windows.
  • CVE-2019-1387 - Недостатня перевірка імен субмодулів могла використовуватися для організації цільових атак, які при рекурсивному клонуванні потенційно могли навести до виконання коду атакуючого. Git не забороняв створювати каталог субмодуля в каталозі іншого субмодуля, що в більшості випадків лише може призвести до замішання, але потенційно не виключає перезапису вмісту іншого модуля в процесі рекурсивного клонування (наприклад, каталоги субмодулів «hippo» та «hippo/hooks» розміщуються як « .git/modules/hippo/» і «.git/modules/hippo/hooks/», а каталог hooks в hippo може окремо використовуватися для розміщення обробників, що запускаються.

Користувачам Windows рекомендується терміново оновити версію Git, а до оновлення утриматися від клонування неперевірених репозиторіїв. Якщо можливості терміново оновити версію Git поки немає, то для зниження ризику атаки рекомендується не запускати git clone-recurse-submodules і git submodule update з неперевіреними репозиторіями, не використовувати git fast-import з неперевіреними вхідними потоками і не клонувати репозиторії у розділи з урахуванням NTFS.

Для додаткового захисту у нових випусках також заборонено використання у .gitmodules конструкцій у формі «submodule.{name}.update=!command». Для дистрибутивів простежити за випуском оновлень пакетів можна на сторінках Debian,Ubuntu, RHEL, SUSE/openSUSE, Fedora, арка, ALT, FreeBSD.

Джерело: opennet.ru

Додати коментар або відгук