LINUX.ORG.RU

Уязвимость j2re1.4.1_02 on Linux


0

0

Уязвимость обнаружена в Sun Java Virtual Machine. Локальный пользователь может получить поднятые привилегии на системе.

Sun Java Virtual Machine (JVM) на Linux системах небезопасно сохраняет временные лог файлы в '/tmp' каталоге. Согласно сообщению, JVM создает '/tmp/jpsock.**_*' файл при загрузке, без предварительной проверки существования файла, и если файл существует, не проверяет кто его владелец.

Локальный пользователь может сконструировать символьную ссылку из произвольного файла к временному имени файла. Затем, когда целевой пользователь запускает JVM, ссылающийся файл будет перезаписан с привилегиями целевого пользователя.

Уязвимость обнаружена в j2re1.4.1_02 on Linux

Способов устранения обнаруженной уязвимости не существует в настоящее время.

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

anonymous

Проверено: green

Проблема на самом деле иммет место при использовании libjavaplugin_jni.so, что по видимому ограничивает опасность всего-нишь случаями запуска java апплетов из браузеров.

green ★★★★★
()

Объясните, мне непонятливому, каким образом эта "уяэвимость" приводит к повышению привилегий пользователя. Ну создам я - не root - эту ссылку, а, допустим, root пользователь запустит JVM, которая не проверит, что файл принадлежит мне, и т.д. (см. subj) и что дальше?

Спасибо.

anonymous
()

А ты сам попробуй, вот и прочувствуешь ;)

anonymous
()

to anonymous (*) (2003-06-12 21:35:42.913975) Не умничай! Не знаешь - молчи, знаешь - скажи. Неча тут туману напускать! Типа "я-то знаю, но вам не скажу!"

anonymous
()

Это что, специальная уязвимость для настоящих кульхацкеров? Все же знают, что настоящий кульхацкер первым делом на свежеустановленной системе делает find / -type d -exec chmod 777 \{\}\;

А вменяемые люди это глюкало от рута не запускают.

anonymous
()

To anonymous (2003-06-12 21:31:27.57749) > каким образом эта "уяэвимость" приводит к повышению привилегий пользователя

Ну, например, так:

Пользователь user в каталоге /tmp создаёт ссылку на /etc/master.passwd (или /etc/shadow, как Вам угодно) с тем самым именем jpsock.**_*. Затем пишет програмку на яве, которая записывает в /tmp/jpsock.**_* строку типа

root::0:0: .... :/bin/csh

То бишь из всех пользователей оставляет в системе только одного беспарольного рута. И ждёт, пока JVM запустит сию прогу от root'а.

Собственно, всё. Грубо всё это, конечно; по-пионерски как-то. Но можно придумать и более изощрённые схемы.

Если кого обидел столь детальным объяснением -- извините. Квалификация у всех нас ой какая разная...

phicus
()

To anonymous (*) (2003-06-12 22:55:09.154085)

> find / -type d -exec chmod 777 \{\}\;

А зачем экранировать фикурные скобки в -exec'е у find'a ???

phicus
()

спасибо за объяснения.

anonymous
()

Ах, забыл:
Ирис - долбоЁб!

еще раз спасибо.

anonymous
()

Какая пошлость(это про топик)...

anonymous
()

>То бишь из всех пользователей оставляет в системе только одного беспарольного рута. И ждёт, пока JVM запустит сию прогу от root'а.

может я чего не догнал: а какого лешего JVM эту программу запускать будет?

ZM
()

ну например в ядре стоит misc binaries и в PATH стоит '.' и эта програмка лежит ... Есть вероятность, что запустит кто-нибудь.

anonymous
()

Вышла новая версия - j2re1.4.1_03

Хотя я не знаю исправлен ли этот баг (если имеет место быть этому багу вообще), но новая версия от Сан уже есть - j2re1.4.1_03

http://java.sun.com/j2se/1.4.1/ReleaseNotes.html

anonymous
()

Izvinite, menia interesuet a ne prosshe li prosto napisat programmu kotoraia napriamuiu zapishet dannie v /etc/shadow??? ved vse ravno JVM doljna ot roota rabotat? ili ia oshibaius?

anonymous
()

java & java_vm выполняется от пользователя конечно а не от рута.

anonymous
()

2phicus
А ты знаешь, как в этот файл что-нибудь осмысленное записать? Я так понял, jre сама что-то туда пишет. У меня он вообще пустой.
И вообще, как сделать так, что jvm будет сама запускать мои проги от рута? Я тогда и без этой "уязвимости" /etc/shadow перепишу.

anonymous
()

To ZM

> может я чего не догнал: а какого лешего JVM эту программу запускать будет?

Есть такая вестчь: Java hosting. Как ясно из названия -- это размещение чужих java-программок на своей платформе. И их запуск по-требованию клиента. А вот почему некоторые системные администраторы запускают их именно от рута -- я не знаю. То есть для меня это загадка.

To anonymous (2003-06-13 09:43:38.651569)

Тут green постил, что уязвимость касается только java-апплетов. Вроде-бы из них никаким образом нельзя получить доступ к файловой системе напрямую. А к /tmp, видимо, можно через какие-нибудь хитрые классы записи временной информации. Конкретно сказать не могу, т.к в этом самом месте мои знания Java API заканчиваются :)

phicus
()

Cделать патчик запрещающий на tmpfs создание симлинков и подобные уязвимости будут не страшны! :)

anonymous
()

To anonymous (2003-06-13 12:01:21.06171)

> И вообще, как сделать так, что jvm будет сама запускать мои проги от рута?

Ну, например, поставить Tomcat и зарускать его от рута. Тогда и сервлеты будут пускаться именно от него. Попробуй, тебе понравится. Правда, опять же, я не уверен, что из сервлета ты можешь обращаться к файловой системе напрямую.

phicus
()

> ну например в ядре стоит misc binaries и в PATH стоит '.' и эта програмка лежит ... Есть вероятность, что запустит кто-нибудь.

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

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


>Пользователь user в каталоге /tmp создаёт ссылку на /etc/master.passwd (или /etc/shadow, как Вам угодно) с тем самым именем jpsock.**_*.
>Затем пишет програмку на яве, которая записывает в /tmp/jpsock.**_* строку типа

>root::0:0: .... :/bin/csh


Ню -ню,
а не проще в таком случае сразу в /etc/passwd писать и не возиться с линками ?
:):):)



anonymous
()

> Правда, опять же, я не уверен, что из сервлета ты можешь обращаться к файловой системе напрямую.

Вообще-то можно. Если политика безопасности не запрещает. Но я думаю, что человек, который tomcat из-под рута запускает и деплоит на него что попало, не знает, что это.

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

Бред это все. Запустил я прогу на Джава. Конкретно, это Еклипсу.
Смотрю далее:
$ watch 'ls -l /tmp/ | grep jp*'
вижу:
Every 2s: ls -l /tmp/ | grep jp* Fri Jun 13 11:43:59 2003srwxr-xr-x 1 uranium uranium 0 10 17:14 jpsock.142.15023

создается всего лишь один файл с правами пользователя.
далее
$ cat /tmp/jpsock.142.15023
cat: /tmp/jpsock.142.15023: No such device or address

Хорошо, далее. Выхожу из Еклипсы. Создаю симлинк, к примеру:
ln -nfs /tmp/1 /tmp/jpsock.142.15023

Запускаю еще раз Еклипсу.
$ cat /tmp/1
$
Пусто.

Что далее ??? Где прокол? По моему- бред сивой кобылы. Файл создает JVM, а не программа пользователя.

uranium
()

Кароче, локальный пользователь может только попортить какой-нибудь файл таким образом, создав фуеву тучу симлинков с именами jpsock.<версия джавы>.xxxxx на файл, который испортить надо.

anonymous
()

ботва всё это. такое было уже с какой-то старой сендмылиной. она тоже писала в общедоступное для записи место текст письма, локального адресата которого не существует. любой ишак мог создать линк на /etc/passwd , послать несуществующему юзеру письмо с очевидным текстом и тащиться. НО: если /tmp и /etc находятся в РАЗНЫХ разделах - все сосут, так как симлинк создать на файло из чужого раздела нельзя. или я неправ? буду признателен за поправку.

Chiko
()

harld link в другие разделы нельзя, а soft link можно. Насколько помню - так.

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

2Chiko (*) (2003-06-16 05:04:00.338981) Понятно не прав. Симлинки можно создавать из любого раздела в любой. Там вообще раздел не фигурирует, там только локальный или глобальный путь.

anonymous
()

>"Уязвимость j2re1.4.1_02 on Linux"

Опять пост про прошлогодний снег. Качните j2sdk1.4.1_03. http://java.sun.com/j2se/1.4.1/download.html

И ваааще Жаба - это рулеZZZ, который нынче поддерживает енумераторы, foreach-циклы, методы с переменным числом параметров и шаблоны.

anonymous
()

2phicus

При компиляции ядра видел какие-то опции, связанные с каталогом /tmp. Если их использовать, опасность не снимется? Просвяти.

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