Вышло обновление Java SE 7 Update 21 с устранением 45 уязвимостей и поддержкой ARM
🕛 18.04.2013, 08:34
Компания Oracle представила плановый корректирующий выпуск Java SE 7 Update 21, в котором устранены 42 проблемы с безопасностью, а также внесена порция улучшений, направленных на увеличение безопасности. Кроме того, несмотря на решение по прекращению выпуска публичных обновлений для Java SE 6, так как данная ветка всё ещё активно используется, опубликован выпуск Java SE 6 Update 45 c устранением 25 уязвимостей. 19 уязвимостям присвоен максимальный уровень опасности (CVSS Score 10.0), подразумевающий возможность выхода за пределы изолированного окружения виртуальной машины и инициирования выполнения кода в системе при обработке специально оформленного контента. Все уязвимости присутствуют в JRE. 39 проблем подвержены удалённой эксплуатации без проведения аутентификации.
Кроме устранения уязвимостей, Java SE 7 Update 21 внесена серия изменений и улучшений: Подготовлен новый пакет Server JRE (Server Java Runtime Environment), предназначенный для развёртывания серверных Java-приложений. В состав пакета входит набор инструментов для мониторинга работы JVM и выполнения типичных задач по обслуживанию серверных Java-приложений, но не входят компоненты, связанные с функционированием браузерного плагина, инсталлятором и системой автоматической установки обновлений. Пакет подготовлен для Solaris, Windows и Linux; Сформирован JDK для Linux-систем, работающих на платформах ARM. Поддерживаются системы на базе архитектуры ARMv6 и ARMv7. В версии для ARM пока не поддерживаются технологии Java WebStart, Java Plug-In, Garbage First (G1) Collector, JavaFX SDK и JavaFX Runtime; Из блока настроек безопасности в панели управления (Java Control Panel) удалена возможность выбора низкоуровневых и ручных настроек. Связанные с безопасностью параметры теперь выбираются только на основании выбранного уровня безопасности. По умолчанию установлен высокий уровень безопасности, допускающий выполнение только апплетов с верифицированной цифровой подписью; Изменены связанные с безопасностью диалоги, любой выполняемый в браузере Java-код теперь приводит к выводу предупреждения и требует явного подтверждения от пользователя. Форма диалога зависит от уровня риска: для неопасных событий выводятся минималистичные диалоги с предложением кликнуть для согласия, а для потенциально опасных сценариев, таких как запуск неподписанных JAR-файлов, выводятся комплексные формы, требующие от пользователя выполнения серии шагов; Изменения в RMI (Remote Method Invocation API): по умолчанию активировано свойство java.rmi.server.useCodebaseOnly, что запрещает загрузку внешних Java-классов по URL, если адрес жестко не прописан в настройках. Подобное изменение может привести к нарушению работы некоторых RMI-приложений; Изменения в Runtime.exec: ужесточены правила декодирования управляющих строк в методах Runtime.exec(String), Runtime.exec(String,String[]) и Runtime.exec(String,String[],File). Могут наблюдаться проблемы при выполнении команд, использующих некорректный квотинг. Например, Runtime.getRuntime().exec("C:\\My Programs\\foo.exe bar") из-за отсутствия экранирования пробела будет воспринято как попытка выполнить команду "C:\\My" с аргументами "Programs\\foo.exe" и "bar", а Runtime.getRuntime().exec("\"C:\\My Programs\\foo.exe\" bar") как попытка выполнить "\"C:\\My"; Введён в строй репозиторий с чёрным списком сертификатов и проблемных JAR-файлов. Синхронизация клиентских систем с данными из репозитория осуществляется ежедневно.