В 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 баллов по программе обнаружения уязвимостей.

AM LiveПодписывайтесь на канал "AM Live" в Telegram, чтобы первыми узнавать о главных событиях и предстоящих мероприятиях по информационной безопасности.

Банки Беларуси предотвратили 31 тыс. мошенничеств благодаря AntiFraud Club

Российский разработчик F6 сообщил о масштабном расширении AntiFraud Club — профессионального сообщества, которое объединяет банки Беларуси для совместной борьбы с финансовыми мошенниками. В основе работы клуба лежит технология F6 Fraud Protection, позволяющая организациям обмениваться данными об инцидентах и координировать действия в реальном времени.

AntiFraud Club стартовал в Минске в марте 2024 года с участием шести банков. Спустя полтора года сообщество выросло в несколько раз.

На ноябрьской встрече среди участников были: «Альфа-Банк» (ЗАО), «Белагропромбанк», «Банк БелВЭБ», «Белгазпромбанк», «МТБанк», «Нео Банк Азия», «Приорбанк», «СтатусБанк», «Технобанк» и партнёр F6 — «Позитив Вью».

Главная задача клуба — совместно выявлять новые мошеннические схемы, обмениваться инцидентами и внедрять защитные решения.

По оценкам F6, только в 2025 году участники AntiFraud Club предотвратили свыше 31 200 мошеннических попыток, связанных с дистанционным банковским обслуживанием. Чаще всего пользователей атакуют через:

  • распространение зловредов (включая CraxsRAT и NFCGate);
  • инвестскам;
  • фальшивые розыгрыши от имени банков;
  • взлом аккаунтов в мессенджерах;
  • фейковые компенсации и мошеннические опросы.

Отдельно эксперты отмечают рост атак с использованием таких зловредов, как CraxsRAT и NFCGate. Аналогичная тенденция наблюдалась и в России: только в феврале 2025 года число заражений CraxsRAT выросло в 2,5 раза и превысило 22 тысячи скомпрометированных Android-устройств.

Главный канал распространения зловредов остаётся прежним — социальная инженерия. Поддельные приложения маскируются под сервисы мобильных операторов, платёжные платформы, VPN, приложения для знакомств или коммунальных услуг. Жертвы устанавливают их по ссылкам из мессенджеров или из неофициальных источников.

Директор департамента розничных рисков «Альфа-Банка» Владимир Короб отмечает, что масштабы и скорость эволюции мошенничества требуют объединения усилий:

«Современные мошенники действуют глобально. ИИ, большие данные, поддельные сервисы — всё это уже реальность. Поэтому важны не только технологии, но и партнёрство. Мы работаем с разработчиками, регулятором, правоохранителями и AntiFraud Club, чтобы сделать платежи максимально надёжными».

Руководитель направления F6 Fraud Protection Дмитрий Ермаков подчёркивает, что эффект от объединения уже заметен:

«Благодаря координации и обмену инцидентами банки Беларуси значительно усилили защиту клиентов. Решения F6 и совместный анализ схем позволяют быстрее реагировать на атаки и снижать риски».

AntiFraud Club продолжает расширяться, а участники готовят новые форматы сотрудничества в борьбе с мошенничеством.

AM LiveПодписывайтесь на канал "AM Live" в Telegram, чтобы первыми узнавать о главных событиях и предстоящих мероприятиях по информационной безопасности.

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