IPBUF安全漏洞报告
English
CVE-2026-41901 CVSS 9.0 严重

CVE-2026-41901 Thymeleaf沙箱绕过致SSTI漏洞

披露日期: 2026-05-12

漏洞信息

漏洞编号
CVE-2026-41901
漏洞类型
服务端模板注入 (SSTI)
CVSS评分
9.0 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Thymeleaf

相关标签

SSTI沙箱绕过RCEThymeleafJava高危漏洞

漏洞概述

Thymeleaf是一个用于Web和独立环境的服务器端Java模板引擎。在3.1.5.RELEASE版本之前,其表达式执行机制中存在安全绕过漏洞。尽管该库提供了机制以避免在特定沙箱(受限)上下文中执行潜在危险的表达式,但它未能正确中和允许执行此类表达式的特定构造。如果应用程序开发者将包含此类表达式的未经清理的变量传递给模板引擎,并且这些值在模板内的沙箱上下文中使用,则可以执行这些表达式,从而实现服务端模板注入(SSTI)。该漏洞已在3.1.5.RELEASE版本中修复。

技术细节

该漏洞的核心在于Thymeleaf的沙箱防御机制存在缺陷,无法完全识别并拦截所有可能导致远程代码执行的恶意表达式构造。Thymeleaf在处理模板时,会解析其中的变量表达式(如${...})。在受限模式下,虽然理论上禁止调用Java运行时环境中的危险类(如Runtime或ProcessBuilder),但攻击者可以通过精心构造的Payload绕过这些限制。利用方式通常涉及反射机制或特定的表达式语法变体,使得沙箱认为该表达式是安全的。当应用将用户输入直接拼接到模板上下文中且未经过滤时,攻击者注入的恶意代码(例如执行系统命令的Payload)会被服务器解析并执行。由于无需用户交互且通过网络即可触发,此漏洞极易被利用,导致服务器完全被控。

攻击链分析

STEP 1
侦察
攻击者识别目标网站使用Thymeleaf模板引擎,并寻找可能将用户输入反射到模板中的参数(如URL参数、表单输入)。
STEP 2
武器化
攻击者构造恶意的Thymeleaf表达式Payload,旨在绕过沙箱限制并执行系统命令(如反弹Shell或写入Webshell)。
STEP 3
交付
攻击者通过HTTP请求将包含恶意Payload的数据发送给服务器。
STEP 4
利用
服务器端Thymeleaf引擎解析模板,由于沙箱绕过漏洞,恶意表达式被执行,从而在服务器上运行任意代码。
STEP 5
影响
攻击者获得服务器权限,可能导致数据泄露、篡改或勒索软件安装。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- PoC Concept for Thymeleaf SSTI Sandbox Bypass Target: Thymeleaf < 3.1.5.RELEASE Context: User controlled input reflected in a sandboxed template expression. --> // Payload 1: Direct execution attempt (Depending on sandbox strictness) ${T(java.lang.Runtime).getRuntime().exec('calc.exe')} // Payload 2: Using preprocessing/bypass techniques often found in template engines // This attempts to obfuscate the execution flow to bypass basic filters. __${T(java.lang.Runtime).getRuntime().exec('touch /tmp/pwned')}__::.x

影响范围

Thymeleaf < 3.1.5.RELEASE

防御指南

临时缓解措施
如果无法立即升级,应严格限制传递给模板引擎的数据来源,确保仅允许预定义的安全变量进入模板上下文。同时,检查并移除模板中不必要的动态表达式解析逻辑。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表