Уязвимость затрагивает все Java-приложения на Fastjson 1.2.80 и более ранних версиях.
Уязвимость отслеживается как CVE-2022-25845 (имеет оценку 8.1 по шкале CVSS) и связана с деселеризацией недоверенных данных в функции AutoType. Сопровождающие проекта исправили уязвимость в версии 1.2.83, выпущенной 23 мая 2022 года.
"Эта уязвимость затрагивает все Java-приложения, которые передают данные, контролируемые пользователем, API JSON.parse или JSON.parseObject без указания конкретного класса для десериализации и используют Fastjson 1.2.80 и более ранних версий библиотеки", – сказал Урия Явниели из JFrog в своем письме.
Fastjson – Java-библиотека, которая используется для преобразования Java-объектов в их JSON и наоборот. Уязвимая функция AutoType включена по умолчанию и предназначена для указания пользовательского типа при разборе входных данных JSON, которые затем могут быть десериализованы в объект соответствующего класса.
"Однако, если десериализованный JSON контролируется пользователем, его парсинг с включенным AutoType может привести к небезопасной десериализации, поскольку злоумышленник может создать любой класс, доступный в Classpath, и передать его конструктору произвольные аргументы", – пояснил Явниели.
Хотя сопровождающие проекта ранее ввели режим safeMode, отключающий AutoType, и начали вести блок-лист классов для защиты от уязвимостей десериализации, CVE-2022-25845 обходит ограничения и позволяет злоумышленникам удаленно выполнять код.
Специалисты рекомендуют пользователям Fastjson обновить версию библиотеки до 1.2.83 или включить safeMode, который отключает функцию независимо от используемых allowlist и blocklist.