LINUX.ORG.RU

Опасная уязвимость OpenSSH в RHEL и Fedora

 , , , ,


0

0

В пакете openssh-server, входящем в состав Red Hat Enteprise Linux 5.4 и Fedora 11, обнаружена опасная уязвимость, потенциально позволяющая удаленному пользователю выполнить произвольный код с правами root.

Уязвимость вызвана некорректным бэкпортированием поддержки ChrootDirectory в используемую в RHEL версию openssh 4.3. В бэкпорте, сделанном Red Hat, допускается, что ChrootDirectory может быть доступен для записи обычным пользователям системы. В результате, злоумышленник может поместить в chroot жесткие ссылки на setuid-программы из основной системы. При запуске эти программы будут использовать библиотеки и файлы конфигурации, размещенные в ChrootDirectory, что позволяет злоумышленнику выполнить произвольный код с привилегиями root, но без возможности выйти за пределы chroot-окружения.

Для успешной эксплуатации этой уязвимости необходимо:

  • Наличие доступа к консоли без chroot, для того, чтобы сделать hardlink на suid-файл внутри chroot-окружения.
  • Нахождение требуемой setuid-программы в одной файловой системе с chroot-окружением (иначе не удастся сделать жесткую ссылку).

Обновления доступны уже две недели. Не забываем обновляться каждое утро!

>>> Описание проблемы на багзилле RH

★★★★

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

>Наличие доступа к консоли без chroot, для того, чтобы сделать hardlink на suid-файл внутри chroot-окружения.

Возможно я идиот, но до меня не доходит, зачем имея доступ к консоли без чрут, делать этот хардлинк на чрутовое окружение, а не запустить сразу suid бинарник, обьясните кто-нидь.

anonizmus
()

Ентерпрайз!

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

>Возможно я идиот, но до меня не доходит, зачем имея доступ к консоли без чрут, делать этот хардлинк на чрутовое окружение, а не запустить сразу suid бинарник, обьясните кто-нидь.

Патамушта этот suid бинарник будет юзать конфиги и либы, принадлежащие руту, в которые ты закладок напихать не можешь.

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

> а не запустить сразу suid бинарник, обьясните кто-нидь

сразу бинарник - дёрнет свои либы. как я понял из описания, нужно запустить хард-линк бинарник из чрута, в котором есть "скомпрометированные" библиотеки. входим в функцию и вуаля - наша функция с правами того рута :-)

gunja
()

> Наличие доступа к консоли без chroot, для того, чтобы сделать hardlink на suid-файл внутри chroot-окружения.

Немного не так, это искажает смысл.

Правильнее было бы: пользователь должен иметь доступ к окружению за пределами chroot (например, с консоли, либо уже иметь шелл-доступ в систему и к chroot-директории до того, как он был перемещен в chroot)

cascade
()

РЕЩЕТО!! Как ЭТО могло попасть в RHEL-не понятно.

cetjs
()

Ничего не решето. Произвольный код можно выполнить только внутри чрута, то есть секонд чрут - единственное, что представляет угрозу безопаности - невозможен. Или я не прав?

annulen ★★★★★
()

Вот те раз :(((

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

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

Не прав. Будучи рутом, можно вылезти из чрута. Что-то типа

mknod c /dev/sda 8 0
mount /dev/sda /mnt
chroot /mnt
anonymous
()
Ответ на: комментарий от anonizmus

Классический вариант атаки на чрут выглядит так:

mkdir ~/etc/
mkdir ~/bin/
vi ~/etc/passwd
ln /bin/su ~/bin/su
chroot ~
su -
???
profit

Поэтому, собственно, обычному юзеру запрещена операция chroot(2).

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

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

>Произвольный код можно выполнить только внутри чрута...

Угу, копируем в чрут /bin/sh из хост-системы и chmod +s его. После чего бежим к локальной консоли вне чрута (которая по условию есть) и запускаем.

lodin ★★★★
()

>...потенциально позволяющая удаленному пользователю...

Согласно условиям задачи у злоумышленника должна быть консоль хоть из-под кого-то. Каким образом это тогда remote exploit? Тут повышение привелегий через жопу. Или я что-то не допонял?

Tramper
()

а вы всё Дебиан Дебиан...

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

>Согласно условиям задачи у злоумышленника должна быть консоль хоть из-под кого-то.

Достаточно ssh с chroot + ssh без chroot. И все будет работать удаленно!

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

> Угу, копируем в чрут /bin/sh из хост-системы и chmod +s его.

это не поможет
юзер сменится при копировании и вы получите suid на самого себя
нужен именно линк
а это на серванте крайне маловероятно (хомяк и корень редко в одном раздела)

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

> Согласно условиям задачи у злоумышленника должна быть консоль хоть из-под кого-то.

и права на запись в будущий чрут. так что не "из-под кого-то"

> Каким образом это тогда remote exploit? Тут повышение привелегий через жопу. Или я что-то не допонял?


никакой это не remote exploit

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

>это не поможет
>юзер сменится при копировании и вы получите suid на самого себя


Конечно, спасибо за уточнение. Получается на одну команду внутри чрута больше:
chown root /my/sh
chmod +s /my/sh

>хомяк и корень редко в одном разделе


Согласен. В общем-то уязвимость для успешного использования требует от админа феерического долбоклюйства.

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

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

> chown root /my/sh

это тоже не сработает. по определению ;)
только ln на нечто, что в /sbin и /usr/sbin
и готовить свою либу для помещения в чрут

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

Мне кажется, мы с Вами друг друга несколько не поняли.

Я отвечал своим "chmod +s" на коммент, где говорилось про невозможность/сложность выхода из чрута. А при данных начальных условиях (уже есть локальный доступ) в этом просто нет необходимости.

Собственно _использование_ уязвимости (т.е. эксплойт) таким способом, разумеется, невозможно.

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

> Мне кажется, мы с Вами друг друга несколько не поняли.

точно. прошу прощения

r0mik
()

>выполнить произвольный код с привилегиями root, но без возможности выйти за пределы chroot-окружения.

рут из чрута выходит в два чиха

rsync ★★
()

ммм... итого нужно чтобы был включен ChrootDirectory (по дефолту выключен) и туда куда он смотрит юзер должен иметь права на запись (притом на запись в те места из которых этот суидный бинарь прочитает конфиги). покажите где такое может быть.

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

>и кто-то ещё издевался над Debian?

Угумс. Издевались, издеваемся, и будем издеваться :)

Чтобы заюзать эту дыру, нужен как минимум о-о-очень тупой админ и редкое стечени обстоятельств.
В отличие от «случайных» SSH-ключей демьяна http://xkcd.com/221/ :)

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

сомневаюсь что можно 2 раза монтировать блочный девайс.

Cosmicman ★★
()

в списке уязвимых указаны только фёдора и ред хат. а центос не подверен этой уязвимости?

ArtemZ
()

OpenSSH в RHEL

Когда-то эта связка мне в $500 влетела... Когда за квартиру в Москве по $200 платили. Вызывающее с тех пор душевный трепет слово Slapper :)

KRoN73 ★★★★★
()

по традиции: кхм-кхм! РЕШЕТО!!!

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

>в списке уязвимых указаны только фёдора и ред хат. а центос не подверен этой уязвимости?

Ну что за народ...
Написано же: дыра появилась в RHEL 5.4. Центос этой версии кто-нибудь видел?

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

> Центос этой версии кто-нибудь видел?

Естественно. В обновлениях лежит уже месяц, если не больше. Или ты считаешь, что если iso'шек нет, значит и дистрибутива нет?

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

Естественно. В обновлениях лежит уже месяц, если не больше. Или ты считаешь, что если iso'шек нет, значит и дистрибутива нет?

Иногда лучше жевать, чем говорить :)

Свежеобновленный центос:

[root@xenix ~]# lsb_release -ir
Distributor ID: CentOS
Release:        5.3

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

Специально для латентных вендузоидов рекомендую сравнить версии ключевых пакетов (glibc, kernel, gcc).

Таки да, специально для домохозяек они не меняют циферку, пока не выложат iso'шки. И таки да, домохозяйки ведутся, судя по всему.

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

>Таки да, специально для домохозяек они не меняют циферку, пока не выложат iso'шки. И таки да, домохозяйки ведутся, судя по всему.

У-тю-тю!
Ты с размаху пернул в лужу, а теперь еще и неуклюже пытаешься отмазаться, называя собеседника латентным вендузоидом и домохозяйкой.
Что ж, твои способности швыряться какашками прекрасны, но вовсе не компенсируют незнания тобой центоса :D

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

> в списке уязвимых указаны только фёдора и ред хат. а центос не

> подверен этой уязвимости?

Центос конечно же подвержен. Там та же самая уязвимая версия openssh-4.3p2-36.el5. Ждите обновления, вот вот должны выложить.

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

> А мне всегда казалось, что такие новости в разделе о BSD

OpenSSH разрабатывается командой OpenBSD. Вот как опасно портировать в Linux BSD'шные программы. ;-)

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

>Вот как опасно портировать в Linux BSD'шные программы. ;-)

Если руки кривые, опасно портировать вообще все отовсюду куда угодно :)

nnz ★★★★
() автор топика

>Обновления доступны уже две недели. Не забываем обновляться каждое утро!

Только что обновился, но по прежнему openssh-server-5.2p1-2.fc11.x86_64, в чейнджлоге ни слова о фиксе. У меня неправильное зеркало обновлений или что?

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

>>покажите где такое может быть.

>написано же в новости: RHEL и Fedora

а теперь перечитай мой пост еще раз, особенно то что написано в скобках и пойми что тут всего лишь недобекпортили ``защиту от дурака''

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

>Только что обновился, но по прежнему openssh-server-5.2p1-2.fc11.x86_64, в чейнджлоге ни слова о фиксе. У меня неправильное зеркало обновлений или что?

На самом деле подвержены вовсе не все версии Федоры. На момент открытия уязвимости дыра была только в тестовой версии. Просто я не стал это уточнять, чтобы получить более зрелищную панику :)
Так что тссс!

P.S. Если серьезно, лучше перебдеть, чем недобдеть.

nnz ★★★★
() автор топика

В отличии от Дебиана, тут подразумеваются платные услуги вендора, и отношение к их качеству будет построже. На мой взгляд это достаточно серьёзно, на уровне типичных уязвимостей от M$. Т.е. боевой сервер надо по-прежнему делать с умом и перестраховываться, поддержка поддержкой, но вс же сисадмин должен быть очень и очень хардкорный.

Hokum ☆☆☆☆
()
Ответ на: комментарий от Sun-ch

>рут через ssh? это уже не решето, это уже через рот асфальт видно.

4.2

"Рут через ссш при наличии локального доступа и кривой конфигурации" и "рут через ссш" это две большие разницы.

lodin ★★★★
()

Все это типичное велосипедостроение и затыкание дырок.

Ах в ядре нет чрута от не-рута? Ну так сделаем свой велосипед!!!!11111

Тогда как правильно было бы:

А. Расширить сис.вызвов чрут на не-рута, при этом, для защиты, запретить каждому не-рут-чрутнотому процессу (и его потомкам) исполнять суидные бинарники и делать повторный чрут (тема обсуждалась в development)

Б. ССШ делает уже не-рутовый чрут

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

>> chown root /my/sh

> это тоже не сработает. по определению ;)


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

val-amart ★★★★★
()
Ответ на: комментарий от lodin

> Конечно, спасибо за уточнение. Получается на одну команду внутри чрута больше:
> chown root /my/sh

> chmod +s /my/sh


установка флага суид автоматом превращает тебя в владельца. иначе это работало бы и для обычного пользователя.

> Но, чтобы chroot был полезен, там должен быть минимальный набор команд, в том числе наверняка какой-нибудь шелл и даже, возможно, суидные программы.

нет. есть ведь еще scp. и еще, какие-такие суидные программы могут потребоваться пользователю, которого ты сознательно ограничиваешь и сажаешь в чрут? ты что, самоубийца? если там _уже_ есть суид-программы, тебе даже не надо ничего линковать => не нужен доступ без чрута. просто библиотечку дописываешь, и готов

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