URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 109562
[ Назад ]

Исходное сообщение
"Уязвимость в GitLab, позволяющая прочитать содержимое систем..."

Отправлено opennews , 04-Ноя-16 09:57 
В корректирующих обновлениях платформы для организации совместной разработки GitLab 8.13.3, 8.12.8, 8.11.10 и 8.10.13 устранена (https://about.gitlab.com/2016/11/02/cve-2016-9086-patches/) критическая уязвимость (CVE-2016-9086), позволяющая (https://hackerone.com/reports/178152) аутентифицированному в web-интерфейсе GitLab пользователю получить доступ к произвольным файлам на сервере.

Проблема вызвана ошибкой (https://gitlab.com/gitlab-org/gitlab-ce/issues/23822) в реализации функции импорта и экспорта проектов, впервые появившейся в  GitLab 8.9 и позволяющей пользователю загрузить файлы своих проектов в форме tar-архива. До версии 8.13 функция была разрешена только администраторам, но после 8.13 стала доступна всем пользователям. Суть уязвимости в некорректной проверке символических ссылок в передаваемом архиве, что позволяет заменить типовые файлы проекта на ссылку на внешний файл и получить доступ к этому файлу.

Например, в архив можно добавить ссылку project.json, указывающую на /etc/passwd и после импорта проекта будет выведена ошибка о некорректности данных JSON, включающая содержимое всего файла. Таким способом можно прочитать файлы с ключами аутентификации и получить доступ к серверу. Всем пользователям рекомендуется срочно обновить GitLab или применить патч (https://gitlab.com/ClemMakesApps/gitlab-ce/commit/dc9b3db8b0...). В качестве обходного пути защиты можно отключить в настройках поддержку импорта/экспорта проектов ("Admin Area/Settings/Import Sources/GitLab export").

URL: https://about.gitlab.com/2016/11/02/cve-2016-9086-patches/
Новость: http://www.opennet.me/opennews/art.shtml?num=45427


Содержание

Сообщения в этом обсуждении
"Уязвимость в GitLab, позволяющая прочитать содержимое систем..."
Отправлено Какаянахренразница , 04-Ноя-16 09:57 
Да что же это такое-то?! Как жить дальше!?

"Уязвимость в GitLab, позволяющая прочитать содержимое систем..."
Отправлено Аноним , 04-Ноя-16 21:48 
> Да что же это такое-то?! Как жить дальше!?

Наверное, как обычно - менять язык программирования.


"Уязвимость в GitLab, позволяющая прочитать содержимое систем..."
Отправлено Led , 04-Ноя-16 21:51 
> менять пхп/жскрипт/гвидобейсик на язык программирования.

//fixed


"Уязвимость в GitLab, позволяющая прочитать содержимое систем..."
Отправлено Аноним , 05-Ноя-16 05:49 
>> менять вебмакак на программистов

//вот теперь fixed



"Уязвимость в GitLab, позволяющая прочитать содержимое систем..."
Отправлено klalafuda , 04-Ноя-16 09:58 
> Таким способом можно прочитать файлы с ключами аутентификации и получить доступ к серверу.

Я наверное что-то не понимаю, но, пардон - каким именно образом? Если тотже апач под которым по всей видимости крутится гитлаб живет из-под www-data. Кто его пустит в /etc/shadow?

PS: Да, читать произвольные файлы на сервере - это не есть хорошо. Но вот чтобы так сразу "получить доступ к серверу" - это видимо перебор.


"Уязвимость в GitLab, позволяющая прочитать содержимое систем..."
Отправлено Аноним , 04-Ноя-16 10:08 
Имеются в виду SSH-ключи пользователя.

"Уязвимость в GitLab, позволяющая прочитать содержимое систем..."
Отправлено Аноним , 04-Ноя-16 11:06 
SSH-ключи пользователя www-data? у которого вообще /bin/false должен быть указан как shell.

У каким боком SSH ключи к /etc/passwd в новости лично мне непонятно. Мне вообще непонятно, что можно такого принципиально важного найти в этом файле. Понятно, что показывать его напоказ плохо, и понятно, что уязвимость неприятная. Но ничего критического я не вижу


"Уязвимость в GitLab, позволяющая прочитать содержимое систем..."
Отправлено angra , 04-Ноя-16 12:01 
/etc/passwd был использован для примера/доказательства. Это обычная практика при демонстрации уязвимости. Есть много других интересных файликов для атакующего.

"Уязвимость в GitLab, позволяющая прочитать содержимое систем..."
Отправлено angra , 04-Ноя-16 12:00 
А зачем тебе публичная часть ssh ключа? Что ты с ней делать то будешь?

"Уязвимость в GitLab, позволяющая прочитать содержимое систем..."
Отправлено Аноним , 04-Ноя-16 23:59 
GitLab по умолчанию устанавливается в /home/git, работает и управляется под пользователем git. Соответственно можно вытянуть и приватные ключи из /home/git/.ssh

"Уязвимость в GitLab, позволяющая прочитать содержимое систем..."
Отправлено angra , 05-Ноя-16 03:45 
Если они вообще есть. А для чего их используют? Пользователь git ходит по ssh на другие сервера?

"Уязвимость в GitLab, позволяющая прочитать содержимое систем..."
Отправлено Michael Shigorin , 05-Ноя-16 16:25 
> Имеются в виду SSH-ключи пользователя.

А чем грозит доступ к публичному ключу?


"Уязвимость в GitLab, позволяющая прочитать содержимое систем..."
Отправлено Andrew , 04-Ноя-16 11:17 
> Я наверное что-то не понимаю, но, пардон - каким именно образом? Если тотже апач под которым по всей видимости крутится гитлаб живет из-под www-data. Кто его пустит в /etc/shadow?

Инструкция по установке GitLab по-умолчанию предлагает использовать nginx. В любом случае, какой бы веб-сервер не использовался, сам GitLab- это отдельный FastCGI процесс, выполняющийся, как правило, с правами пользователя git. Ничего сверъестественного/чувствительного ему в любом случае доступно быть не должно. Ошибка, конечно, неприятная, но на уязвимость не тянет, как мне кажется.


"Уязвимость в GitLab, позволяющая прочитать содержимое систем..."
Отправлено angra , 04-Ноя-16 11:58 
Если репозиторий публичный с полным доступом для всех, то конечно никаких проблем. В противном случае у атакующего может появится возможность выдать себя за другого пользователя, например через private token для API.

Хотя если еще подумать, то даже в случае полной открытости есть вкусные вещи. Например сохраненный в конфиге dn и пароль к LDAP.


"Уязвимость в GitLab, позволяющая прочитать содержимое систем..."
Отправлено ПавелС , 05-Ноя-16 08:23 
>> Я наверное что-то не понимаю, но, пардон - каким именно образом? Если тотже апач под которым по всей видимости крутится гитлаб живет из-под www-data. Кто его пустит в /etc/shadow?
> Инструкция по установке GitLab по-умолчанию предлагает использовать nginx. В любом случае,
> какой бы веб-сервер не использовался, сам GitLab- это отдельный FastCGI процесс,
> выполняющийся, как правило, с правами пользователя git. Ничего сверъестественного/чувствительного
> ему в любом случае доступно быть не должно. Ошибка, конечно, неприятная,
> но на уязвимость не тянет, как мне кажется.

В apache DocumentRoot и все Directory описаны. Разве можно выйти за них? Как это в nginx?


"Уязвимость в GitLab, позволяющая прочитать содержимое систем..."
Отправлено ПавелС , 05-Ноя-16 08:27 
>>> Я наверное что-то не понимаю, но, пардон - каким именно образом? Если тотже апач под которым по всей видимости крутится гитлаб живет из-под www-data. Кто его пустит в /etc/shadow?
>> Инструкция по установке GitLab по-умолчанию предлагает использовать nginx. В любом случае,
>> какой бы веб-сервер не использовался, сам GitLab- это отдельный FastCGI процесс,
>> выполняющийся, как правило, с правами пользователя git. Ничего сверъестественного/чувствительного
>> ему в любом случае доступно быть не должно. Ошибка, конечно, неприятная,
>> но на уязвимость не тянет, как мне кажется.
> В apache DocumentRoot и все Directory описаны. Разве можно выйти за них?
> Как это в nginx?

А, извиняюсь, понял, символьная ссылка может указывать вне DocumentRoot.


"Уязвимость в GitLab, позволяющая прочитать содержимое систем..."
Отправлено ALex_hha , 04-Ноя-16 12:22 
> Кто его пустит в /etc/shadow?

где вы вообще прочитали про shadow? Доступ можно будет получить к файлам, на которые есть права чтение у пользователя git и/или nginx/www-data, имхо

> SSH-ключи пользователя www-data? у которого вообще /bin/false должен быть указан как shell.

раскажите это Canonical

# docker run ea3214941be1 sh -c 'grep www-data /etc/passwd'
www-data:x:33:33:www-data:/var/www:/bin/sh

ea3214941be1 образ на базе ubuntu 12.04


"Уязвимость в GitLab, позволяющая прочитать содержимое систем..."
Отправлено angra , 04-Ноя-16 13:24 
grep www /etc/passwd
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin

cat /etc/issue
Ubuntu 14.04.5 LTS \n \l

Образ для openvz. Может дело не в Canonical, а в том, кто образ для docker делал?


"Уязвимость в GitLab, позволяющая прочитать содержимое систем..."
Отправлено продавец_кирпичиков , 04-Ноя-16 16:07 
> grep www /etc/passwd
> www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
> cat /etc/issue
> Ubuntu 14.04.5 LTS \n \l
> Образ для openvz. Может дело не в Canonical, а в том, кто
> образ для docker делал?

A че,есть кто то,кто за эти имиджи отвечает и не выбрасывает на докеровскую помойку без гранатий?


"Уязвимость в GitLab, позволяющая прочитать содержимое систем..."
Отправлено АнонимХ , 04-Ноя-16 16:21 
А разьве не понятно, что НЕТ ?

"Уязвимость в GitLab, позволяющая прочитать содержимое систем..."
Отправлено ALex_hha , 04-Ноя-16 17:21 
> Может дело не в Canonical, а в том, кто образ для docker делал?

дело в canonical, образ с их офф репы. И зачем вы приводите выводи с 14.04, когда я писал для 12.04? :)


"Уязвимость в GitLab, позволяющая прочитать содержимое систем..."
Отправлено angra , 05-Ноя-16 03:56 
Какой образ был в наличии, в таком и посмотрел. Сейчас загрузил 12.04. Таки да:
grep www /etc/passwd
www-data:x:33:33:www-data:/var/www:/bin/sh

Ну значит четыре года назад было /bin/sh, а два года назад стало /usr/sbin/nologin. Заодно и в debian глянул, там аналогично: debian 7 /bin/sh, debian 8 /usr/sbin/nologin.


"Уязвимость в GitLab, позволяющая прочитать содержимое систем..."
Отправлено ALex_hha , 04-Ноя-16 19:51 
> A че,есть кто то,кто за эти имиджи отвечает и не выбрасывает на докеровскую помойку без гранатий?

в случае с Ubuntu сам Canonical и отвечает. При условии, что вы используете FROM ubuntu:code-name, а не сборку Васи Пупкина


"Уязвимость в GitLab, позволяющая прочитать содержимое систем..."
Отправлено Michael Shigorin , 05-Ноя-16 16:28 
>> A че,есть кто то,кто за эти имиджи отвечает и не выбрасывает
>> на докеровскую помойку без гранатий?
> в случае с Ubuntu сам Canonical и отвечает. При условии, что вы
> используете FROM ubuntu:code-name, а не сборку Васи Пупкина

А в чём, извините, разница-то применительно к рассмотренному случаю?