Уразливості у Git, що дозволяють перезаписати файли або виконати свій код

Опубліковано коригувальні випуски розподіленої системи управління вихідними текстами Git 2.40.1, 2.39.3, 2.38.5, 2.37.7, 2.36.6, 2.35.8, 2.34.8, 2.33.8, 2.32.7. .2.31.8, у яких усунено п'ять уразливостей. Простежити за випуском оновлень пакетів у дистрибутивах можна на сторінках Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD. В якості обхідних шляхів для захисту від уразливостей рекомендується уникати виконання команди «git apply —reject» під час роботи з неперевіреними зовнішніми патчами та перевіряти вміст $GIT_DIR/config перед запуском команд «git submodule deinit», «git config —rename-section» та « git config —remove-section» при роботі з репозиторіями, що не заслуговують на довіру.

Вразливість CVE-2023-29007 дозволяє досягти підстановки налаштувань у файл конфігурації $GIT_DIR/config, які можуть використовуватися для виконання коду в системі через вказівку шляхів до виконуваних файлів у директивах core.pager, core.editor та core.sshCommand. Вразливість викликана логічною помилкою, через яку дуже довгі значення конфігурації можуть бути оброблені як початок нової секції під час операцій перейменування або видалення секції з конфігураційного файлу. На практиці підстановки значень, що експлуатують вразливість, можна досягти через вказівку дуже довгих URL субмодулів, які зберігаються у файл $GIT_DIR/config під час ініціалізації. Дані URL можуть бути інтерпретовані як нові налаштування при спробі видалити їх через «git submodule deinit».

Вразливість CVE-2023-25652 дозволяє перезаписати вміст файлів поза робочим деревом під час обробки командою «git apply —reject» спеціально оформлених патчів. При спробі виконання командою "git apply" шкідливого патча, який намагається зробити запис у файл через символічне посилання, операцію буде відхилено. У Git 2.39.1 захист від маніпуляцій через символічні посилання було доповнено блокуванням патчів, що створюють символічні посилання та намагаються виконати запис через них. Суть уразливості, що розглядається в тому, що Git не враховував, що користувач може виконати команду «git apply —reject» для запису відхилених частин патчу у вигляді файлів з розширенням «.rej» і атакуючий може використовувати дану можливість для запису вмісту в довільний каталог, наскільки це дозволяє поточні права доступу.

Крім того, усунуто три вразливості, що виявляються тільки на платформі Windows: CVE-2023-29012 (пошук виконуваного doskey.exe у робочому каталозі репозиторію при виконанні команди «Git CMD», що дозволяє організувати виконання свого коду в системі користувача), CVE-2023 -25815 (переповнення буфера при обробці спеціально оформлених файлів локалізації в gettext) та CVE-2023-29011 (можливість заміни файлу connect.exe під час роботи через SOCKS5).

Джерело: opennet.ru

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