RCE в Thymeleaf. Уязвимость позволяет захватить тысячи серверов на Spring
NewsMakerРазработчики Thymeleaf устранили брешь, позволявшую тайно записывать файлы в систему.
Согласно отчету Endor Labs, один незаметный символ табуляции оказался достаточным, чтобы обойти защиту популярного шаблонизатора Thymeleaf и запустить произвольный код на сервере. Уязвимость получила идентификатор CVE-2026-40478 и оценку 9.1 балла по шкале CVSS.
Проблема затрагивает версии Thymeleaf 3.1.3 и ниже, которые широко используют вместе с фреймворком Spring . В таком сочетании движок по умолчанию отвечает за обработку шаблонов во множестве корпоративных приложений. При удачной атаке злоумышленник может записывать файлы на сервер и в ряде случаев добиться удалённого выполнения кода.
Суть ошибки сводится к тому, что встроенные механизмы защиты проверяли выражения недостаточно строго. Разработчики пытались отсеивать опасные конструкции, в частности те, что создают объекты через ключевое слово new, но ориентировались только на обычный пробел. Парсер же спокойно воспринимает и другие пробельные символы, включая табуляцию. Вставив такой символ, атакующий мог обойти проверку и выполнить выражение, что относится к классам уязвимостей вроде CWE-917 и CWE-1336 .
Вторая проблема связана со списком запрещённых классов. Thymeleaf блокировал в основном стандартные пакеты Java, но не ограничивал классы из Spring и других библиотек. В результате злоумышленник мог создать объект, который работает с файловой системой, и использовать его для записи файлов на диск.
Согласно отчету Endor Labs, один незаметный символ табуляции оказался достаточным, чтобы обойти защиту популярного шаблонизатора Thymeleaf и запустить произвольный код на сервере. Уязвимость получила идентификатор CVE-2026-40478 и оценку 9.1 балла по шкале CVSS.
Проблема затрагивает версии Thymeleaf 3.1.3 и ниже, которые широко используют вместе с фреймворком Spring . В таком сочетании движок по умолчанию отвечает за обработку шаблонов во множестве корпоративных приложений. При удачной атаке злоумышленник может записывать файлы на сервер и в ряде случаев добиться удалённого выполнения кода.
Суть ошибки сводится к тому, что встроенные механизмы защиты проверяли выражения недостаточно строго. Разработчики пытались отсеивать опасные конструкции, в частности те, что создают объекты через ключевое слово new, но ориентировались только на обычный пробел. Парсер же спокойно воспринимает и другие пробельные символы, включая табуляцию. Вставив такой символ, атакующий мог обойти проверку и выполнить выражение, что относится к классам уязвимостей вроде CWE-917 и CWE-1336 .
Вторая проблема связана со списком запрещённых классов. Thymeleaf блокировал в основном стандартные пакеты Java, но не ограничивал классы из Spring и других библиотек. В результате злоумышленник мог создать объект, который работает с файловой системой, и использовать его для записи файлов на диск.