Безопасность

Инженер по безопасности обнаружил многочисленные уязвимости в Git

Инженер по безопасности обнаружил многочисленные уязвимости в Git

Инженер по безопасности обнаружил ряд критических уязвимостей в инструментах Git, которые подвергли миллионы разработчиков опасности кражи учетных данных.

RyotaK, инженер по безопасности из GMO Flatt Security Inc., занимался поиском ошибок в рамках программы GitHub Bug Bounty в октябре 2024 года, когда обнаружил слабые места в GitHub Desktop, Git Credential Manager, Git LFS, GitHub CLI и GitHub Codespaces - все они были связаны с неправильной проверкой ввода и обработкой текстовых протоколов.

Протокол Git Credential Protocol и его уязвимости

Эти уязвимости связаны с протоколом Git Credential Protocol, который обменивается учетными данными пользователей, используя формат ключ-значение с разделителями новой строки ( ).

Хотя в Git обычно запрещены новые строки и NULL-байты, чтобы избежать инъекционных атак, неправильная обработка других символов окончания строки, таких как возврат каретки ( ), создает лазейки в безопасности.

Уязвимости:

  • GitHub Desktop (CVE-2025-23040) Умело созданный URL вредоносного подмодуля, содержащий %0d (шестнадцатеричный возврат каретки), мог обойти логику разбора GitHub Desktop и обманом раскрыть учетные данные пользователя github.com на домены, контролируемые злоумышленниками.
  • Git Credential Manager (CVE-2024-50338) Аналогичные недостатки разбора в .NET StreamReader позволяли символам возврата каретки проносить данные через строки, подвергая пользователей потенциальной краже учетных данных.
  • Git LFS (CVE-2024-53263) Уязвимости введения новой строки позволяли вредоносным репозиториям изменять конфигурационные файлы и обходить средства защиты Git, передавая конфиденциальные данные злоумышленникам.
  • GitHub CLI (CVE-2024-53858) Недостатки логики приводили к утечке токенов доступа к контролируемым злоумышленниками доменам при использовании определенных переменных окружения, таких как CODESPACES=true или GITHUB_ENTERPRISE_TOKEN.
  • GitHub Codespaces: Вспомогательный скрипт Codespaces (gitcredential_github.sh) без разбора возвращал конфиденциальные токены для всех операций Git, независимо от запрашиваемого хоста.

В ответ на это Git реализовал комплексный механизм защиты (CVE-2024-52006), введя конфигурацию credential.protectProtocol для блокировки URL, содержащих символы возврата каретки ( ).

Эта опция, включенная по умолчанию, закрывает уязвимости во всех Git и Git LFS. GitHub также обновил Codespaces для проверки запросов к хостам и ограничения обмена учетными данными на github.com.

Выводы RyotaK подчеркивают постоянную опасность текстовых протоколов и недостаточной проверки. Как отметил инженер, «небольшой недостаток архитектуры может привести к большой проблеме безопасности».

Разработчикам и разработчикам платформ рекомендуется применять стратегии «защита во всей глубине» и тщательно тестировать уязвимости анализа ввода.

Читайте также

Дефект Subaru Starlink позволял хакерам взламывать автомобили в США и Канаде

Исследователи безопасности обнаружили недостаток произвольного захвата учетной записи в сервисе Starlink компании Subaru, который может позволить злоумышленникам отслеживать, контролировать и захватывать автомобили в США, Канаде и Японии, используя только номерной знак.

TalkTalk расследует утечку информации после того, как данные были выставлены на продажу на хакерском форуме

Британская телекоммуникационная компания TalkTalk проводит расследование по факту утечки данных сторонних поставщиков после того, как некий субъект угроз начал продавать предполагаемые данные клиентов на хакерском форуме.