Уязвисость в Java Deployment Toolkit | ||
Безопасность | ||
В Java Deployment Toolkit была найдена серьёзная уязвимость! ... |
Начиная с Java 6 Update 10 пользовательская версия JRE включает в себя Java Deployment Toolkit, устанавливаемый в виде NPAPI плагина и ActiveX контрола. Среди методов Java Deployment Toolkit, доступных из JavaScript, есть метод launch(). Всё что он делает - передаёт URL зарегистрированному обработчику JNLP файлов. В Windows этот обработчик прописывается примерно так:
"C:\Program Files\Java\jre6\bin\javaws.exe" "%1"
Поскольку проверка передаваемого URL минимальна, javaws.exe можно запустить непредусмотренным способом. Например можно воспользовавшись параметром -J и запустить произвольный, в том числе и удалённый, JAR файл.
Данная уязвимость была обнаружена Тевисом Орманди (Tavis Ormandy). Дальнейшее изучение этой уязвимости выявило её потенциальное наличие и в Linux: http://www.reversemode.com/index.php?option=com_content&task=view&id=67&Itemid=1
Более того, в java/java.exe был обнаружен недокументированный параметр -XXaltjvm, позволяющий указать альтернатиную библиотеку, вместо стандартных jvm.dll/libjvm.so. Этот параметр доступен через вышеупомянутый -J в javaws/javaws.exe
PS: http://seclists.org/fulldisclosure/2010/Apr/119 - Подробнее (EN)