Команди перегляду і порівняння коммитів у Git виявилися “сліпими” до escape-послідовностей


Дізнайтесь більше про нові кар'єрні можливості в EchoUA. Цікаві проекти, ринкова оплата, гарний колектив. Надсилайте резюме та приєднуйтеся до нас.

Нове дослідження, проведене TwistlockLabs, дозволило знайти декілька серйозних вразливостей у популярній системі контролю версій. Вони стосуються деяких часто використовуваних команд, які не вміють виявляти escape-послідовності. Це створює сприятливі умови для непомітного введення шкідливого коду.

Проблемні місця

До числа “небезпечних” команд входить git – diff, призначена для порівняння двох коммитів. Знайдена вразливість дозволяє вводити будь-який код усередині послідовності “[8m” (режим невидимого тексту). При порівнянні файлів внесені в такий спосіб зміни відображатися не будуть.

Від подібної проблеми потерпає і git – log, що оглядає історію коммитів без відображення коду, поміщеного в деякі escape-послідовності.

Уразливою також виявилася команда git – rm. При створенні файла

touch 'echo - e "e[45mteste[0m"'

і додаванні його в репозиторій команда git rm * після проведення операції видалення виведе його повну назву.

Аналогічно escape-послідовності обробляються і git – branch при їх підстановці в імена файлів у каталозі. Наприклад:

touch 'echo - e ".git/refs/heads/e[45mTwistlocke[0m"'

Після запуску git branch у консолі виводиться наступне повідомлення:

warning: ignoring ref with broken name refs/heads/Twistlock

У цей же момент термінал обробляє escape-послідовність.

“Справа не в git”

За словами експерта, який проводив дослідження, лист із задокументованими проблемами був відразу ж відправлений до служби підтримки Git. Надані відповіді скептичні: в них наголошується, що ці вразливості не торкаються функціональності системи контролю версій, оскільки зустрічаються і в інших консольних командах, наприклад, cat. Проте TwistlockLabs упевнені в можливості виправлення виявлених прогалин у безпеці й заявляють, що мають намір довести цю справу до кінця.

Джерело: TwistlockLabs

Київ, Харків, Одеса, Дніпро, Запоріжжя, Кривий Ріг, Вінниця, Херсон, Черкаси, Житомир, Хмельницький, Чернівці, Рівне, Івано-Франківськ, Кременчук, Тернопіль, Луцьк, Ужгород, Кам'янець-Подільський, Стрий - за статистикою саме з цих міст програмісти найбільше переїжджають працювати до Львова. А Ви розглядаєте relocate?


Коментарі 1

  • Дослідження, проведені TwistlockLabs знайшли серйозні вразливі місця у системі контролю версій. До їх числа входить команда git – diff, яка порівнює два коммити. Внесені у такий спосіб зміни, при порівнянні файлів, відображені не будуть. TwistlockLabs впевнені у можливості подолання прогалин, виявлених у безпеці, та налаштовані довершити справу.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *