CVE-2026-41901Thymeleaf是一个用于Web和独立环境的服务器端Java模板引擎。在3.1.5.RELEASE版本之前,其表达式执行机制中存在安全绕过漏洞。尽管该库提供了机制以避免在特定沙箱(受限)上下文中执行潜在危险的表达式,但它未能正确中和允许执行此类表达式的特定构造。如果应用程序开发者将包含此类表达式的未经清理的变量传递给模板引擎,并且这些值在模板内的沙箱上下文中使用,则可以执行这些表达式,从而实现服务端模板注入(SSTI)。该漏洞已在3.1.5.RELEASE版本中修复。
该漏洞的核心在于Thymeleaf的沙箱防御机制存在缺陷,无法完全识别并拦截所有可能导致远程代码执行的恶意表达式构造。Thymeleaf在处理模板时,会解析其中的变量表达式(如${...})。在受限模式下,虽然理论上禁止调用Java运行时环境中的危险类(如Runtime或ProcessBuilder),但攻击者可以通过精心构造的Payload绕过这些限制。利用方式通常涉及反射机制或特定的表达式语法变体,使得沙箱认为该表达式是安全的。当应用将用户输入直接拼接到模板上下文中且未经过滤时,攻击者注入的恶意代码(例如执行系统命令的Payload)会被服务器解析并执行。由于无需用户交互且通过网络即可触发,此漏洞极易被利用,导致服务器完全被控。