The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск Git 2.4.11, 2.5.5 и 2.6.6 и 2.7.4 с устранением критических уязвимостей

18.03.2016 10:40

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

Информация об уязвимостях была раскрыта несколько дней назад, при этом выявивший уязвимость разработчик был уверен, что уязвимости были устранены в начале февраля в выпуске 2.7.1. На деле, оказалось, что патчи (1, 2) были приняты только в ветку master, на основе которой формируется выпуск 2.8, но исправления забыли включить в релиз 2.7.1 и проблема осталась не исправленной, что поставило под угрозу Git-хостинги, такие как Github и Bitbucket, а также публичные Git-репозитории на базе Gerrit и Gitlab. Около месяца исправления оставались на виду, что давало возможность злоумышленникам оценить связанную с ними угрозу безопасности и разработать рабочий эксплоит.

Сервер может быть атакован в случае доступа злоумышленников к выполнению команды push (например, публичные git-хостинги). Атака также может быть совершена на клиента, выполняющего операцию "clone" при обращении к ранее атакованному или подконтрольному злоумышленникам серверу. В GitHub проблема была устранена ещё в феврале. В GitLab для блокирования возможных атак был нацелен выпуск 8.5.7, но он не устранил проблему, так как защита заключалась в запрещении использования версий Git младше 2.7.3 (на деле уязвимость оказалась исправлена только в Git 2.7.4).

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


char *path_name(const struct name_path *path, const char *name)
{
        const struct name_path *p;
        char *n, *m;
        int nlen = strlen(name);
        int len = nlen + 1;

        for (p = path; p; p = p->up) {
                if (p->elem_len)
                        len += p->elem_len + 1;
        }
        n = xmalloc(len);
        m = n + len - (nlen + 1);
        strcpy(m, name);
        for (p = path; p; p = p->up) {
                if (p->elem_len) {
                        m -= p->elem_len + 1;
                        memcpy(m, p->elem, p->elem_len);
                        m[p->elem_len] = '/';
                }
        }
        return n;
}


  1. Главная ссылка к новости (https://lkml.org/lkml/2016/3/1...)
  2. OpenNews: Опасная уязвимость во всех версиях Git
  3. OpenNews: Выпуск распределенной системы управления исходными текстами Git 2.7.0
  4. OpenNews: Через уязвимость в GitHub от имени Линуса Торвальдса создан фиктивный репозиторий linux-ng
  5. OpenNews: Выявлена порция уязвимых SSH-ключей доступа к GitHub
  6. OpenNews: В Git устранено несколько уязвимостей
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/44068-git
Ключевые слова: git
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (14) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 12:24, 18/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    В SourceForge Git ещё не пофиксили.
     
     
  • 2.2, Аноним (-), 12:26, 18/03/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Есть мнение, что в SF надо фиксить не расположение кроватей.
     
     
  • 3.14, Анончег (?), 01:05, 19/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тысячи глаз...

    "Спи, глазок, спи, другой! А о третьем глазке и забыла"(С)

    Вот третий глазок и высмотрел дырочку, такую, размерчиком с амбарные воротца. И пофиксил он её, дырочку эту. Тут и сказке конец, а кто слушал молодец!

     
  • 2.6, Аноним (-), 17:21, 18/03/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Сорсфорж и так в блеклистах проходит как malware domain, за добавление троянов в инсталлеры. Им терять уже нечего.
     
     
  • 3.15, Анончег (?), 01:07, 19/03/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Сорсфорж и так в блеклистах проходит как malware domain, за добавление троянов
    > в инсталлеры. Им терять уже нечего.

    Ты не понял, это не трояны, а помощники. Всё делается только для удобства пользователей.

     

  • 1.3, Аноним (-), 12:28, 18/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Использование в Git strcpy и попытка исправления заменой на memcpy (https://github.com/git/git/commit/34fa79a6cde56d6d428ab0d3160cb094ebad3305) навивает на грустные мысли, что это только начало.
     
     
  • 2.4, Аноним (-), 13:28, 18/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это не попытка исправления, а в полне разумная оптимизация.
     
  • 2.13, Led (ok), 23:29, 18/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Использование в Git strcpy и попытка исправления заменой на memcpy ...  навивает на грустные мысли

    Нет. Старшеклассники над тобой подшутили.

     

  • 1.10, Michael Shigorin (ok), 20:36, 18/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    В сизифе собранный вчера 2.6.6.
     
     
  • 2.16, Анончег (?), 01:09, 19/03/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > В сизифе собранный вчера 2.6.6.

    Мишаня, это здорово, что уже вчера собрали! А дырочка-то с какого времени существует?

     

  • 1.11, Аноним (-), 20:59, 18/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А на хабре есть мнение что слухи о критичности несколько преувеличены. Чтобы это проэксплуатировать, надо клиенту путь более 2 гигабайтов в размере влить. Удачи в эксплойтировании.
     
     
  • 2.12, Аноним (-), 22:27, 18/03/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Вполне себе обычный размер для одностраничного жс ангулар веб приложения - сайта визитки.
     
     
  • 3.19, anonymous (??), 02:26, 26/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    2 миллиарда символов в полном имени файла это обычно для "одностраничного жс ангулар веб приложения" приложения?
     
  • 2.17, Анончег (?), 01:14, 19/03/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > А на хабре есть мнение что слухи о критичности несколько преувеличены. Чтобы
    > это проэксплуатировать, надо клиенту путь более 2 гигабайтов в размере влить.
    > Удачи в эксплойтировании.

    На Хабре зря не скажут, да.

    Там понимаешь эксперты, вот примерный кусок разговора с Хабра:

    "... два ... мужика, стоявшие у дверей кабака против гостиницы, сделали кое-какие замечания, относившиеся, впрочем, более к экипажу, чем к сидевшему в нем.

    "Вишь ты, - сказал один другому, - вон какое колесо! Что ты думаешь, доедет то колесо, если б случилось, в Москву или не доедет?" - "Доедет", - отвечал другой.

    "А в Казань-то, я думаю, не доедет?" - "В Казань не доедет", - отвечал другой."(С)

    Николай Васильевич Гоголь, "Мертвые души"

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру