Добавить в корзинуПозвонить
Найти в Дзене
DigiNews

Устранена критическая уязвимость обхода «песочницы» в популярном Java-шаблонизаторе Thymeleaf

Разработчики Thymeleaf, популярного движка шаблонов для Java, устранили критическую уязвимость SSTI (CVE-2026-40478, оценка 9.1), позволяющую неаутентифицированным атакам выполнять код на серверах, обходя защиту «песочницы». — csoonline.com Разработчики Thymeleaf, широко используемого движка шаблонов для веб-приложений на Java, устранили редкую критическую уязвимость, позволяющую неаутентифицированным злоумышленникам выполнять вредоносный код на серверах. Уязвимость, отслеживаемая как CVE-2026-40478, оценена в 9.1 по шкале серьезности CVSS и классифицируется как проблема внедрения серверных шаблонов (Server-Side Template Injection, SSTI). Thymeleaf имеет защиту, подобную «песочнице», которая не позволяет пользовательскому вводу выполнять опасные выражения, однако эта ошибка дает возможность злоумышленникам обойти эти механизмы защиты. «Хотя библиотека предоставляет механизмы для предотвращения внедрения выражений, она не в состоянии должным образом нейтрализовать определенные синтаксич

Разработчики Thymeleaf, популярного движка шаблонов для Java, устранили критическую уязвимость SSTI (CVE-2026-40478, оценка 9.1), позволяющую неаутентифицированным атакам выполнять код на серверах, обходя защиту «песочницы». — csoonline.com

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

Уязвимость, отслеживаемая как CVE-2026-40478, оценена в 9.1 по шкале серьезности CVSS и классифицируется как проблема внедрения серверных шаблонов (Server-Side Template Injection, SSTI). Thymeleaf имеет защиту, подобную «песочнице», которая не позволяет пользовательскому вводу выполнять опасные выражения, однако эта ошибка дает возможность злоумышленникам обойти эти механизмы защиты.

«Хотя библиотека предоставляет механизмы для предотвращения внедрения выражений, она не в состоянии должным образом нейтрализовать определенные синтаксические шаблоны, которые позволяют выполнять неавторизованные выражения», — заявили разработчики в своем уведомлении. «Если разработчик приложения передает невалидированный пользовательский ввод непосредственно в движок шаблонов, неаутентифицированный удаленный злоумышленник может обойти защиту библиотеки и добиться внедрения серверных шаблонов (SSTI)».

Thymeleaf является де-факто стандартом среди движков шаблонов в экосистеме Java Spring, а Spring — это самый популярный фреймворк для разработки веб-приложений на Java. Поскольку Java по-прежнему широко используется для разработки в корпоративных средах, эта уязвимость потенциально может затронуть многочисленные бизнес-приложения.

Уязвимы все версии Thymeleaf до 3.1.4.RELEASE, и обходного пути для устранения проблемы не существует. Компаниям рекомендуется определить, какие из их приложений используют Thymeleaf, и как можно скорее обновиться до версии 3.1.4.RELEASE.

Простая эксплуатация

По данным исследователей из компании по тестированию безопасности приложений Endor Labs, эксплуатация уязвимости проста и не требует специальных привилегий или условий. Злоумышленникам достаточно контролировать ввод, который поступает в движок выражений Thymeleaf, что является распространенным шаблоном в веб-приложениях.

Endor Labs отмечает в своем отчете, что Thymeleaf имеет многоуровневую защиту для блокировки опасных выражений, и в данном случае два уровня не сработали. Например, проверка строк сканировала текст выражения на наличие опасных шаблонов, таких как ключевое слово new, за которым следовал ASCII-пробел, T (ссылки на типы Spring Expression Language) и @ (ссылки на бины SpEL в некоторых путях кода). Однако проверка искала только символы ASCII-пробела 0x20, в то время как парсер SpEL также принимает табуляцию (0x09), перевод строки (0x0A) и другие управляющие символы между new и именем класса.

Другая политика блокировала использование классов, начинающихся с java.*, внутри ссылок на типы T(), но не блокировала типы из org.springframework.*, ognl.* или javax.*.

«Поскольку типичные приложения Spring имеют spring-core в classpath, такие классы, как org.springframework.core.io.FileSystemResource, могли свободно конструироваться, а этот класс может создавать произвольные файлы на диске», — сообщили исследователи.

Таким образом, Endor Labs смогла легко создать эксплойт Proof-of-Concept, объединив оба недостатка: использование символа табуляции после new и вызов класса org.springframework.core.io.FileSystemResource для создания файла на диске.

«Используя подходящий класс, злоумышленник может перейти от создания файла к полному удаленному выполнению кода, например, путем инстанцирования обертки ProcessBuilder из сторонней библиотеки или использования собственного GenericApplicationContext Spring для регистрации и вызова произвольных бинов», — пояснили исследователи.

Уязвимости в самом фреймворке Java Spring в прошлом использовались для компрометации веб-серверов, поэтому весьма вероятно, что легко эксплуатируемый недостаток, подобный этому, будет быстро взят на вооружение злоумышленниками.

Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.

Автор – Lucian Constantin

Оригинал статьи