The OpenNET Project / Index page

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

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

Представлены корректирующие выпуски всех поддерживаемых веток системы управления исходными текстами 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
Тип: Проблемы безопасности
Ключевые слова: git
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | 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 gith... весь текст скрыт [показать]
     
     
  • 2.4, Аноним, 13:28, 18/03/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Это не попытка исправления, а в полне разумная оптимизация.
     
  • 2.13, Led, 23:29, 18/03/2016 [^] [ответить] [смотреть все]  
  • +/
    > Использование в Git strcpy и попытка исправления заменой на memcpy ...  навивает на грустные мысли

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

     
  • 1.10, Michael Shigorin, 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.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:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor TopList