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. Пользователям рекомендуется незамедлительно обновиться до последней версии.

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

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

Deleted

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

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

А зачем? Есть разработчики, которые не осилили консоль?

DELIRIUM ☆☆☆☆☆ ()

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

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

anonymous ()

веб-интерфейс не нужен, консоль наше все!

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

Там дело не в этом. Там просто путь не санитируют. Типа какой дали, такой и пихаю в sendfile().

kirk_johnson ★☆ ()

Поэтому всё, доступное снаружи, должно запускаться с минимальными правами в изолированном бдсм-окружении.

ugoday ★★★★★ ()
Ответ на: комментарий от 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 ★★★★★ ()
Ответ на: комментарий от SergikXP

Во всю goto используют...

А в чем проблема? Goto — это нормально.

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

А причём тут управление памятью? Это логическая уязвимость, от неё не спастись даже в том случае, если ты на Haskell напишешь, и coq'ом верифицируешь.

Deleted ()
    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. Это норма?

Deleted ()

В арчик уже завезли, вау.

А, это просто слоуновость.

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 1)

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

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

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

приложения надо запускать в изолированном окружении

Изолированное окружение может оказаться не таким уж изолированным;)

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

Что удивительно, там не buffer overflow.

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

anonymous ()

вроде как /etc/passwd не приватный файл и показывать его всему миру не должно быть стыдно

Harald ★★★★★ ()

И эти люди делают next-generation secure VPN.

intelfx ★★★★★ ()

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

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

а он в норме не читаемый для всех, а cgit от рута ССЗБ разве что запустит

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

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

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

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

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

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

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

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

anonymous ()

Анонимус неодобряет

Зэндбоксить надо. Хотя бы чрутом.

anonymous ()

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

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

Alve ★★★★★ ()

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

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

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

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

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

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

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

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

Xintrea ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.