
HubSpot的开源Jinjava模板引擎中一个新披露的漏洞可能允许攻击者绕过沙箱限制,并在数千个依赖2.8.1之前版本的网站上实现远程代码执行(RCE)。
该问题被标记为CVE-2025-59340,评级为严重,CVSS v3.1得分为10.0,其根源在于基于JavaType的反序列化,使得威胁者能够绕过现有保护机制实例化任意类。
Jinjava沙箱逃逸
Jinjava的沙箱旨在阻止诸如getClass()之类的危险调用,并禁止直接实例化Class对象。
然而,安全研究人员发现,通过访问内置的____int3rpr3t3r____变量(该变量会暴露活动的JinjavaInterpreter实例),攻击者可以定位到内部的ObjectMapper并调用其不受限制的readValue方法。
攻击者可以将其控制的输入反序列化为java.net.URL等实例,并读取本地文件。
由于JavaType构造未被列入黑名单,沙箱逃逸使得半任意类的实例化成为可能。这一原语为完整的服务器端请求伪造(SSRF)、任意文件读取开辟了途径,并且在与其他利用工具链结合时,还能实现远程代码执行(RCE)。
通过Maven坐标com.hubspot.jinjava:jinjava集成了Jinjava且版本低于2.8.1的生产应用程序存在漏洞。
数千个采用动态模板渲染的内容管理系统、电子邮件模板渲染器和自定义Web应用程序可能面临风险。
这种利用无需用户交互,其网络攻击向量的复杂度较低,且不需要任何权限。
| 风险因素 | 详情 |
| 受影响产品 | jinjava(<2.8.1) |
| 影响 | 沙箱逃逸、任意文件读取、服务器端请求伪造、潜在远程代码执行 |
| 漏洞利用前提条件 | 网络访问;无权限;无用户交互 |
| CVSS 3.1评分 | 9.8(严重) |
缓解措施
为解决此问题,HubSpot发布了jinjava 2.8.1版本,该版本增加了对JavaType使用的明确限制,阻止了不可信输入的constructFromCanonical方法,并强化了JinjavaBeanELResolver中的黑名单。
管理员应立即升级并审核模板代码,检查是否存在对____int3rpr3t3r____的直接或间接使用。
安全团队还应检查其依赖关系图,查看是否有其他库在没有适当类型限制的情况下暴露了Jackson的ObjectMapper。
实施严格的输入验证、在可行的情况下禁用默认类型,并应用运行时工具来检测可疑的反序列化调用,这些措施可以进一步加强针对类似模板引擎绕过的防御。
通过主动修补和加强沙箱控制,组织可以防止未授权的文件访问、服务器端请求伪造以及由Jinjava中的反序列化链引发的潜在远程代码执行。
1. 本版块文章内容及资料部分来源于网络,不代表本站观点,不对其真实性负责,也不构成任何建议。
2. 部分内容由网友自主投稿、编辑整理上传,本站仅提供交流平台,不为该类内容的版权负责。
3. 本版块提供的信息仅作参考,不保证信息的准确性、有效性、及时性和完整性。
4. 若您发现本版块有侵犯您知识产权的内容,请及时与我们联系,我们会尽快修改或删除。
5. 使用者违规、不可抗力(如黑客攻击)或第三方擅自转载引发的争议,联盟不承担责任。
6. 联盟可修订本声明,官网发布即生效,继续使用视为接受新条款。
