В Git обнаружены серьезные уязвимости

В Git обнаружены серьезные уязвимости

В Git обнаружены серьезные уязвимости

Исследователь Лаел Целлье (Laël Cellier) обнаружил в серверной и клиентской части Git две опасные проблемы, которые затрагивают ветки 2.x, 1.9 и 1.7. В числе прочего, баги представляют потенциальную опасность для таких популярных ресурсов как Github, Bitbucket, Gerrit и Gitlab.

Два найденных в коде бага (CVE-2016-2324 и CVE-2016-2315) могут привести к исполнению произвольного кода и переполнению буфера. Для эксплуатации уязвимостей атакующему нужно создать репозиторий с деревом файлов с чрезвычайно длинными именами, а затем пушнуть его на уязвимый сервер (атака на сервер) или позволить уязвимому клиенту склонировать его из удаленного репозитория (атака на клиента).

Одна из уязвимостей была устранена с выходом версии 2.7.1, релиз которой состоялся в прошлом месяце, вторую проблему исправят в версии 2.8, которая пока только ожидает релиза

Целлье обнаружил два бага, и они оба связаны с функцией path_name(),которая используется для добавления имени файла к концу пути в дереве репозитория. Вот так выглядел код revision.c, то есть Git до версии 2.7.0:

 

Git

 

В коде хорошо просматривается уязвимость CVE-2016-2315. Из приведенного отрывка видно, что если strlen() будет работать с излишне длинным именем файла и получится излишне большое число, это закончится переполнением для nlen, из-за чего значение получится отрицательным, а не положительным. Из-за этого len тоже станет отрицательным, и памяти, запрошенной xmalloc(), может не хватить для итоговой комбинированной строки, пишет xakep.ru.

Функция strcpy() тоже подвержена ошибкам переполнения буфера. Вслепую копируя заданное атакующим длинное имя файла в буфер меньшего размера, она спровоцирует переполнение буфера. Функция повредит другие находящиеся в памяти данные (heap overwrite), таким образом позволяя атакующему управлять работой программы.

Исправление для версии 2.7.0 заменяет strcpy() более безопасной memcpy():

memcpy(m, name, nlen + 1);

Однако остается вторая проблема — CVE-2016-2324. Длинные пути, множество поддиректорий и огромные имена файлов могут вызвать другой вариант повреждения данных (heap overwrite) — уже из-за len. К примеру, для пути A/B/C, где A и B имеют длину 2^31-5, а C имеет длину 20, len будет равняться 10, а этого слишком мало, в буфер не поместится даже C, не говоря обо всем остальном.

В таких путях запросто можно хранить данные, к примеру, вредоносные пейлоады. В данном случае волноваться о том, что строка слишком длинная и «тяжелая» не нужно. При передаче информации от сервера клиенту (и наоборот) Git сжимает данные, используя zlib, что распространяется и на имена файлов. В теории можно создать дерево объемом тысячи килобайт или даже мегабайт, а затем использовать его для выведения из строя ASLR, исполнения кода и других неприятных трюков.

Как избавиться от CVE-2016-2324? Заменить path_name() чем-то более безопасным, что и было проделано в версии 2.8, которая сейчас ожидает релиза. Сам Целлье о данной проблеме высказался так:

«Исправление, которое я придумал: преобразовать все эти int в size_t. Это не исправит проблему окончательно, но на 64-разрядных системах потребуется путь длиной 2^64, чтобы уязвимость сработала, что вряд ли возможно. Правда, это не поможет 32-разрядным системам (хотя, на деле, я не удивлюсь, если все сломается задолго до этого, так как список name_path уже не поместится в памяти)».

Для демонстрации проблемы Целлье создал репозиторий longpath. Его главную страницу открыть невозможно – ошибка HTTP 500, но можно почитать Wiki.

Также исследователь пожаловался, что проблеме не уделяют должного внимания, к примеру, сообщил, что по его данным баги не устранены ни в одном дистрибутиве Linux. По словам Целлье уязвимостям была необходима «реклама».  Он оказался прав – стоило прессе обратить внимание на проблему, как выяснилось, что, например, все версии Debian GNU/Linux уязвимы перед CVE-2016-2324. Похоже, единственные, кто обновился своевременно, это GitHub, а затем один из его главных конкурентов — GitLab. Кстати, за свою находку Целлье получил от GitHub 5000 баллов по программе обнаружения уязвимостей.

Белые хакеры нашли почти 14 тысяч уязвимостей в российских компаниях

В 2025 году белые хакеры, или баг-хантеры, нашли 13 690 уязвимостей в системах российских компаний и госучреждений. Такие данные следуют из совокупной статистики двух крупнейших отечественных платформ — Standoff Bug Bounty (Positive Technologies) и BI.ZONE Bug Bounty.

Отчёты обеих площадок оказались в распоряжении «Ведомостей».

Рынок баг-баунти за год заметно подрос. На платформе Positive Technologies количество полученных отчётов увеличилось на 34% — до 7 870, у BI.ZONE рост составил 20,1% — до 5 800. При этом далеко не все найденные проблемы были оперативно закрыты: у Standoff Bug Bounty за год закрыли 2 909 уязвимостей, у BI.ZONE — около 2 500.

По отраслям картина тоже показательная. На Standoff Bug Bounty больше всего отчётов пришлось на финансовый сектор, а на BI.ZONE лидировали онлайн-сервисы и ИТ-компании. Это неудивительно: именно у таких организаций много публичных веб-сервисов и сложная инфраструктура, за которой нужно следить постоянно.

 

Параллельно росло и число самих программ баг-баунти. К концу 2025 года на платформе Positive Technologies действовало 233 программы — в 2,2 раза больше, чем годом ранее. У BI.ZONE их стало 150, что в полтора раза больше, чем в 2024 году.

Компании всё чаще запускают не одну программу, а сразу несколько, постепенно расширяя скоуп — сначала ключевые сервисы, затем дочерние продукты. По такому пути, например, шли «Сбер», Альфа-банк и ГК «Астра». К этой практике начинает подключаться и госсектор — в частности, Минцифры.

А вот с выплатами ситуация отличается от площадки к площадке. У Positive Technologies среднее вознаграждение в 2025 году составило 65 416 рублей — на 12% больше, чем годом ранее, а максимальная выплата достигла 4,97 млн рублей.

Общая сумма выплат баг-хантерам за год выросла в два раза и составила 161 млн рублей. У BI.ZONE средняя выплата осталась на уровне 40 000 рублей, максимальная — 1,8 млн рублей, а общий объём выплат вырос на 35% — до 100 млн рублей.

Разница в цифрах объясняется спецификой программ, отмечают эксперты. На BI.ZONE много программ от ФГУПов и региональных структур с небольшими максимальными выплатами. Кроме того, сами баг-хантеры обычно работают сразу на нескольких платформах и выбирают либо самые «дорогие» программы, либо те, где уязвимости проще найти, пусть и за меньшие деньги. В итоге размер вознаграждения почти всегда зависит от критичности проблемы, её влияния на бизнес и возможных последствий эксплуатации.

По оценкам самих исследователей, значительная часть находок действительно серьёзная. На BI.ZONE 35% принятых уязвимостей имели высокий уровень критичности и выше. На Standoff Bug Bounty 14% отчётов были признаны критическими, ещё 18% — высокими. Чаще всего баг-хантеры сталкивались с проблемами контроля доступа — уязвимостями класса IDOR, которые по-прежнему остаются одной из самых распространённых болей.

В BI.ZONE отмечают, что в 2025 году баг-баунти окончательно перестал быть экспериментом. Компании всё чаще воспринимают его как полноценный элемент управления киберрисками, а не разовую активность «для галочки». Классические практики безопасной разработки не дают стопроцентной гарантии, и взгляд внешних исследователей, мыслящих как злоумышленники, помогает увидеть реальные слабые места.

Рост вовлечённости заметен и со стороны государства. По данным Минцифры, с момента выхода министерства на площадки баг-баунти исследователи отправили более 700 отчётов, из которых 271 был принят. С 2023 года ведомство выплатило за найденные уязвимости свыше 13 млн рублей.

В итоге 2025 год стал переломным для рынка: баг-баунти в России всё чаще используется не реактивно, а превентивно — как часть регулярной модели защиты. И судя по темпам роста программ, отчётов и выплат, эта практика уже прочно закрепилась и в бизнесе, и в госсекторе.

RSS: Новости на портале Anti-Malware.ru