Новости /proc/self/fd вместо эксплойта. Хакер обманул Java через файловые дескрипторы

NewsMaker

I'm just a script
Премиум
28,639
46
8 Ноя 2022
Alibaba поставила 9 из 10 и развела руками без фикса.

<div class="articl-text-cover" style="position:relative;width:100%;max-width:800px;margin-left:auto;margin-right:auto;aspect-ratio:1200/676;margin-bottom:2rem;overflow:hidden">
9g3chfkkflbaxi7q873deqx68iayasjv.jpg

<div itemprop="articleBody">Версия Fastjson 1.2.83 годами считалась последней безопасной точкой для старой ветки библиотеки, но новая уязвимость показала обратное. Ошибка CVE-2026-16723 (9.0 Critical) позволяет удалённо выполнить код в уязвимых приложениях Spring Boot даже при отключённой функции AutoType и без заранее установленного в системе опасного класса.

Проблема затрагивает Fastjson версий от 1.2.68 до 1.2.83. Alibaba присвоила уязвимости оценку 9,0 балла из 10. Чтобы атаковать, злоумышленнику нужен сетевой доступ к функции, которая передаёт подконтрольный JSON библиотеке Fastjson. Приложение также должно работать как исполняемый архив Spring Boot со встроенными зависимостями, а безопасный режим библиотеки должен оставаться выключенным.

Уязвимость обнаружил Кирилл Фирсов из FearsOff Cybersecurity. Специалист выяснил , что Fastjson обрабатывает служебное поле @type даже при отключённой функции AutoType. Во время проверки имени класса библиотека пытается найти соответствующий ресурс через загрузчик классов. Если вместо имени класса подставить специально подготовленный адрес, приложение может обратиться к внешнему серверу.

Сначала такая техника позволяет вызвать скрытый запрос от имени сервера. Затем атакующий может заставить приложение загрузить удалённый архив Java с вредоносным классом. Аннотация @JSONType внутри такого класса воспринимается как признак доверия, после чего Fastjson обходит часть проверок и пытается загрузить класс.

На Java 8 вредоносный код в некоторых конфигурациях запускается сразу после загрузки удалённого архива. Начиная с Java 9 среда выполнения блокирует имена классов с некоторыми символами, поэтому прямой вариант атаки перестаёт работать. Фирсов нашёл обход для современных версий Java через каталог /proc/self/fd в Linux.

При загрузке удалённого архива среда Java временно сохраняет файл, открывает его, а затем удаляет имя файла с диска. Содержимое при этом остаётся доступным через открытый файловый дескриптор. Атакующий перебирает номера таких дескрипторов и повторно указывает Fastjson путь к уже загруженному архиву. После успешного совпадения библиотека читает вредоносный класс и запускает его код.

Alibaba проверила атаку на Spring Boot 2, 3 и 4 с Java 8, 11, 17 и 21. Уязвимость зависит от специального загрузчика исполняемых архивов Spring Boot . Обычные архивы Java, универсальные сборки и приложения в формате WAR для Tomcat или Jetty, согласно уведомлению Alibaba, не затронуты.

Опасный запрос может попасть в функции JSON.parse, JSON.parseObject(String) и JSON.parseObject(String, Class). Привязка входных данных к конкретному классу не всегда защищает приложение. Вредоносное поле можно вложить в объект, содержащий универсальный тип Object или структуру Map.

ThreatBook сообщила , что зафиксировала попытки эксплуатации после того, как добавила правила обнаружения. Компания смогла воспроизвести выполнение кода в приложении Spring Boot на Java 8, однако тест со встроенным Tomcat привёл только к загрузке удалённого архива или запросу от имени сервера.

Imperva также обнаружила подозрительную активность против организаций из финансовой сферы, здравоохранения, розничной торговли и технологического сектора. Большинство запросов поступало из США, меньшая часть – из Сингапура и Канады. При этом ни ThreatBook, ни Imperva не раскрыли число атак, содержимое запросов, названия пострадавших компаний или подтверждение успешного взлома.

На 25 июля Alibaba не выпустила исправленную версию Fastjson 1.x . Разработчики рекомендуют перейти на Fastjson2, где уязвимый механизм отсутствует. В качестве временной меры можно включить безопасный режим параметром -Dfastjson.parser.safeMode=true или установить ограниченную сборку com.alibaba:fastjson:1.2.83_noneautotype.

Компаниям советуют проверить прямые и косвенные зависимости от Fastjson, а также поискать в журналах необычные значения @type, ссылки на вложенные архивы Java, неожиданные исходящие соединения, запуск дочерних процессов, появление новых файлов и командных оболочек на веб-серверах.

Fastjson 1.2.83 ранее рекомендовали как безопасное обновление после того, как в 2022 году раскрыли обход AutoType. Теперь последняя версия ветки 1.x сама входит в диапазон, уязвимый для CVE-2026-16723.
 
Источник новости
www.securitylab.ru

Похожие темы