Злоключения, которые Java пришлось пережить в 2013 году, еще раз напомнили о себе. Один из опасных багов, кои в те времена лились бесконечным потоком, Oracle, по всей видимости, устранила не полностью.

Как обнаружили в польской ИБ-компании Security Explorations, уязвимость CVE-2013-5838, приватно раскрытую ими в июле 2013 года и пропатченную спустя три месяца, все еще можно использовать для выхода за рамки песочницы Java. Журналисты Threatpost запросили подтверждение в Oracle, поинтересовавшись также дальнейшими планами компании в связи с этой проблемой, однако ответ пока не получили.

Основатель и исполнительный директор Security Explorations Адам Говдяк (Adam Gowdiak) со своей стороны заявил, что Oracle пока никак не отреагировала на их новую публикацию. На прошлой неделе исследователь раскрыл свою находку через email-рассылку Full Disclosure, а также на конференции JavaLand, в списке участников которой числилась и Oracle. «Они должны [исправить положение], но остается только гадать, будет ли это сделано и в какие сроки», — сетует Говдяк.

По словам главы Security Explorations, их новая публикация является следствием смены политики компании в отношении недоработанных патчей. «Как результат, мы стали непримиримо относиться к неисправным патчам, — пишет Говдяк в своем сообщении, разосланном в рамках Full Disclosure. — Если фикс для уязвимости, поставленной на вид вендору, оказывается битым, мы оглашаем этот факт без предварительного уведомления».

В своем комментарии Threatpost эксперт пояснил, что CVE-2013-5838 в сочетании с ненадежной реализацией Reflection API позволяет провести атаку подменой класса на виртуальную машину Java. Чтобы избавиться от этой уязвимости, Oracle бэкпортировала с Java Development Kit 8 пропатченную реализацию метода обработки в API.

Тем не менее польские исследователи утверждают, что, изменив лишь четыре символа в PoC-коде, отосланном Oracle в 2013 году вместе с отчетом о бреши, можно вновь спровоцировать побег из песочницы Java. «Эксплойт довольно прост, — комментирует Говдяк. — Нужно запросить вредоносный Java-апплет с кастомного сервера HTTP (WWW). Дело в том, что сервер должен вернуть ошибку «Не найдено» при первичном обращении к конкретному class-файлу Java».

Новый PoC-эксплойт, по словам эксперта, успешно отработал на Java SE 7 Update 97, Java SE 8 Update 74 и Java SE 9 Early Access Build 108. При этом данная атака не предполагает обхода других, позднее добавленных уровней защиты Java или системы Click2Play, предотвращающей автоматический запуск неподписанных Java-апплетов.

Со слов Говдяка, Oracle склонна преуменьшать степень опасности CVE-2013-5838 и считает, что эту брешь можно эксплуатировать лишь с помощью помещенного в песочницу приложения Java Web Start или Java-апплета. «Это не так, — заявил исследователь. — Мы удостоверились, что ее можно также с успехом использовать в серверной среде исполнения, такой как Google App Engine для Java».

Категории: Главное, Уязвимости