Git — одна из наиболее популярных систем контроля версий в мире разработки программного обеспечения. Ее важность в рабочих процессах, CI/CD и управлении проектами трудно переоценить. Однако недавно была обнаружена серьезная уязвимость с идентификатором CVE-2025-48384, представляющая угрозу безопасности для пользователей Git на Linux и macOS. В рамках данного материала мы подробно рассмотрим суть уязвимости, способы эксплуатации и методы защиты от нее. Эта проблема уже получила широкий резонанс в сообществе безопасности и разработчиков, так как потенциально может привести к удаленному выполнению кода и компрометации систем.
Уязвимость связана с тем, каким образом Git обрабатывает конфигурационные файлы при клонировании репозиториев с использованием флага --recursive, который применяется для последовательного клонирования субмодулей. Уязвимость проявляется из-за неточного парсинга файла .gitmodules, в котором могут присутствовать управляющие символы, такие как символ возврата каретки (carriage return, \r). При чтении файла Git нечаянно игнорирует этот символ, но оставляет его при последующей записи, что приводит к появлению подмодулей с путями, включающими невидимые управляющие символы. Это создает возможность злоумышленнику направлять записи файлов в произвольные места файловой системы вместо стандартных директорий субмодулей.
В сочетании с символьными ссылками или хитроумным расположением каталогов такая подмена путей дает возможность записать вредоносные файлы в важные системные директории или пользовательские рабочие области. Особенно опасно то, что атакующий может внедрить вредоносные Git Hook скрипты, которые потом будут запускаться автоматически при выполнении привычных команд git commit, git merge и других подкоманд. Эта цепочка атак приводит к удаленному выполнению кода на компьютере жертвы, что открывает широкие возможности для контроля над системой и дальнейшего продвижения в инфраструктуре. Помимо этого, есть риск подмены конфигурационных файлов Git, например, записи, содержащей ссылку на удаленный репозиторий злоумышленника. Это позволит тайно отправлять исходный код или другую чувствительную информацию без ведома пользователя, обеспечивая длительный период незаметной компрометации.
По состоянию на июль 2025 года был выпущен комплекс обновлений, устраняющих уязвимость. Уязвимыми оказались все версии Git до и включая версии 2.50.0, 2.49.
0, 2.48.0–2.48.1, 2.
47.0–2.47.2, 2.46.
0–2.46.3, 2.45.0–2.
45.3, 2.44.0–2.44.
3, 2.43.6 и ниже. Для безопасности крайне важно обновить клиента Git до одной из следующих запатченных версий: 2.43.
7, 2.44.4, 2.45.4, 2.
46.4, 2.47.3, 2.48.
2, 2.49.1 или 2.50.1 и выше.
Пользователи GitHub Desktop на macOS также находятся в зоне риска, так как этот клиент автоматически выполняет клонирование с опцией --recursive. На момент публикации обновления для GitHub Desktop отсутствуют. Поэтому рекомендуется использовать классическую Git CLI с последними исправлениями вместо настольного приложения до выхода патча. Проверить, подвержена ли система уязвимости, можно путем простой команды git --version в терминале. Если версия совпадает с перечисленными выше небезопасными, необходимо без промедления выполнить обновление.
Важно понимать, что потенциальная угроза исходит от клонирования непроверенных или подозрительных репозиториев, особенно если в инструкциях к проекту настоятельно рекомендуется использовать --recursive. Мошенники могут специально публиковать вредоносные проекты, которые при клонировании используют уязвимость для заражения рабочих машин разработчиков. В сфере DevOps и CI/CD подобные атаки несут серьезную опасность, так как автоматизированные сборки часто выполняются в изолированных, но доверенных окружениях, где подобное проникновение может привести к масштабным инцидентам безопасности. Помимо обновления самого Git, рекомендуется тщательно проверять содержимое файлов .gitmodules в клонируемых репозиториях, избегать автоматического клонирования субмодулей без проверки и внимательно следить за активностью Git Hook скриптов.
Инструменты мониторинга безопасности, например, Datadog Workload Protection, предоставляют возможность обнаружения подозрительной активности, связанной с запуском git clone --recursive и изменением файлов в каталоге .git. Такие меры способствуют раннему обнаружению попыток эксплуатации уязвимости и снижению риска успешных атак. В целом, CVE-2025-48384 — это важное напоминание о том, что даже проверенные временем инструменты могут содержать сложные ошибки, требующие внимательного отношения к обновлениям и практике безопасности. Разработчикам и администратам необходимо своевременно применять патчи, тщательно выбирать источники репозиториев и использовать дополнительные средства контроля для защиты инфраструктуры.
Информированность и превентивные действия — ключ к поддержанию безопасности современных программных экосистем, где взаимодействие с внешними проектами становится все более интенсивным и открытым. Следите за обновлениями официальных ресурсов и сообществ, чтобы оперативно реагировать на появление новых угроз и сохранять надежность ваших проектов и систем. Только совместными усилиями можно минимизировать последствия подобных уязвимостей и обеспечить безопасность цифровой среды. Git — мощный инструмент, заслуживающий доверия, но его безопасность зависит от ответственности каждого пользователя и своевременного реагирования на обнаруженные риски.