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

Исходное сообщение
"В Java проявилась уязвимость при обработке чисел с плавающей..."

Отправлено opennews , 13-Фев-11 22:26 
Несколько недель назад в интерпретаторе PHP была исправлена (http://www.opennet.me/opennews/art.shtml?num=29215) уязвимость, позволяющая (http://www.opennet.me/opennews/art.shtml?num=29203) вызвать зависание процесса при выполнении операций c некоторыми  числами с плавающей запятой (например, 2.2250738585072011e-308). Уязвимость проявлялась только при использовании в процессе преобразования чисел x87 FPU-регистров. Как оказалось (http://www.exploringbinary.com/java-hangs-when-converting-2-.../), данной проблеме подвержен не только интерпретатор PHP, но и виртуальная машина Java.


Например, чтобы вызвать бесконечное зацикливание достаточно обеспечить выполнение примерно такого кода "double d = 2.2250738585072012e-308; System.out.println("Value: " + d);". В реальных условиях, эксплуатировать данную уязвимость можно без привлечения определенных Java-аплетов: достаточно отправить на большинство серверов приложений специальный HTTP-запрос, указав проблемное число в заго...

URL: http://www.exploringbinary.com/java-hangs-when-converting-2-.../
Новость: http://www.opennet.me/opennews/art.shtml?num=29586


Содержание

Сообщения в этом обсуждении
"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено Заоза , 13-Фев-11 22:26 
Разве Oracle не схавала Sun.

"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено Аноним , 13-Фев-11 22:31 
В то время о котором ведется речь, еще был Sun, это его зона ответственности, а не Oracle.

"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено Zenitur , 13-Фев-11 22:36 
Случай интересный. Но в Java с каждым корректирующим релизом исправляют от полусотни до нескольких сотен ошибок, так что не для главной.

"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено User294 , 13-Фев-11 22:52 
В яве с каждым релизом чинят кучу критичных ошибок, вплоть до выхода из песочницы. Так было и видимо так и дальше будет. Особенно доставил комент изена на хабре про то что задачу, дескать, можно снять и курсор, дескать двигается :))).

"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено Аноним , 27-Фев-11 16:51 
Ты сам то понял, что написал?

"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено gegMOPO4 , 13-Фев-11 22:59 
Плохо то, что это сверхкритическая ошибка, легко можно завесить любое приложение, принимающее нецелые числа от пользователя. В том числе даже сам сервер приложений.

"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено Zenitur , 13-Фев-11 22:53 
Это действительно работает! Только что проверил. Еле отключил сервер.

"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено gegMOPO4 , 13-Фев-11 23:01 
А если бы эксплойт приводил не к зависанию, а к взрыву процессора?

"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено klalafuda , 13-Фев-11 23:35 
> А если бы эксплойт приводил не к зависанию, а к взрыву процессора?

Искусство - оно сцуко такое. Требует жертв. И они всегда находятся..

PS: Самым эффективным способом распространения малваря на линуксе будет пост на исходники в соотв. ньюсах включая опеннет. Сработает на 100%. И, уверен, по нескольку раз.


"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено gegMOPO4 , 13-Фев-11 23:40 
Было уже. И не раз.

"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено User294 , 14-Фев-11 21:50 
> А если бы эксплойт приводил не к зависанию, а к взрыву процессора?

А это вам уже к господам из фирмы Интел. Они работают над этой возможностью (ака удаленная блокировка процессора). Вы ведь этого хотели, правда? :)


"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено gegMOPO4 , 13-Фев-11 22:56 
Долго же эта новость ползла до опеннета.

Для Томката уже вышла версия, прикрывающая дыру с уязвимостью в заголовках запроса.

Прямо сейчас обезопасить приложения можно, воспользоваться костылём, -- подсунуть через -Xbootclasspath/p: архив jar cо скомпилированным исправленным sun.misc.FloatingDecimal.

Вот то, что в Оракле так долго возятся с элементарным патчем, -- очень печально.


"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено iZEN , 14-Фев-11 00:50 
>Вот то, что в Оракле так долго возятся с элементарным патчем, -- очень печально.

Неправда.

Порты JDK в коллекции портов FreeBSD были обновлены 9 февраля. Мне пришлось ждать перекомпиляции установленного OpenJDK6.


"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено pavlinux , 13-Фев-11 23:05 
> Выход официального обновления Java SE запланирован на 15 февраля, до этого момента можно использовать.

Спасибо. :)


"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено User294 , 14-Фев-11 21:57 
>до этого момента можно использовать.

...дыры на серверах :)))  //ваш Кэп :)


"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено iZEN , 14-Фев-11 00:46 
L.O.R. сегодня падал несколько раз. Подозреваю, что проблема в непропатченной Java и устаревшем Tomcat, который они любят использовать, вместо того, чтобы перейти на Jetty7.

"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено ананим , 14-Фев-11 01:17 
или на пыхпых

"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено User249 , 14-Фев-11 01:25 
Jetty7 тока вылупился - пусть усы отрастит как у кота сначало :)

"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено iZEN , 14-Фев-11 01:37 
http://opennet.ru/opennews/art.shtml?num=23778

"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено User294 , 14-Фев-11 22:05 
> Jetty7 тока вылупился - пусть усы отрастит как у кота сначало :)

А у вас вообще ус отклеился с таким то ником :)


"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено Tav , 14-Фев-11 02:09 
Я так понимаю, причины ошибки в PHP были несколько иными.

Для Fedora уже доступно обновление OpenJDK с исправлением уязвимости.


"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено ram_scan , 14-Фев-11 09:48 
Причины ошибки - бага в сопроцессоре.

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


"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено Андрей , 14-Фев-11 11:19 
Если это "бага в сопроцессоре" - то в чьей реализации? Intel? AMD? (не считаем остальных пока :) ) У обоих?
В пыхпых лечилось пересборкой с CFLAGS="... -mfpmath=sse ...". Тут бинарники распространяются...

"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено безимени , 14-Фев-11 13:35 
Как мне кажется (после беглого взгляда на патч), проблема в программистах, которые не учли что по стандарту IEEE 754 существуют денормализованные числа с плавающей точкой (80 битные). При записи в память или при использовании SSE такие числа обнуляются...

"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено ram_scan , 14-Фев-11 14:14 
Там есть неоднозначность представления чисел -0, 0 и +0. И грабли такие вылезают только при работе с x87. MMX-SSE - нормально.

Теоретически грабли только в интелях на x86 архитектуре.


"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено анон , 14-Фев-11 06:40 
Случаем не этой уязвимостью недавно лор роняли?

"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено безимени , 14-Фев-11 08:46 

> такого кода "double d = 2.2250738585072012e-308; System.out.println("Value: " + d);".

Хороший код... У меня старый NetBeans просто виснет если его вставить в текст программы.
Даже компилировать и запускать не надо - парсер тоже на непатченной яве работает.


"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено bvf , 14-Фев-11 12:53 
А в новости нет ошибки? Действительно об ошибка знали с 2000-го года? Это же (матерные выражения)! Хотя ошибка не так критична если о ней знать, в коде можно легко обезопасить себя от намеренных взломов. Но блин зачем же и так усложнять жизнь. Я люблю сложные квесты, но не настолько :)

"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено dd , 14-Фев-11 14:36 
>Хотя ошибка не так критична если о ней знать,
>в коде можно легко обезопасить себя от намеренных взломов.

Каким образом? Если в программе предусмотрен ввод чисел (будь то GUI или HTTP request - не важно), то прежде чем начнет выполнятся Ваш безопасный код, "неправильное" число будет обработано небезопасным кодом (из стандартных бибилиотек или Tomcat'а).


"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено z , 14-Фев-11 13:39 
>Это же

энтерпрайз!


"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено Аноним , 14-Фев-11 13:55 
Можно подумать, это единственная ошибка такого возраста. У одной ошибки возраст в аккурат с 95го года... ;)

"В Java проявилась уязвимость при обработке чисел с плавающей..."
Отправлено Babusha , 06-Мрт-11 18:22 
("Value: " + d);".

WTF? Исправьте.