支持本站 — 捐款将帮助我们持续运营

目标:1000 元,已筹:595

59.5%
一、 漏洞 CVE-2025-59340 基础信息
漏洞信息
                                        # JinJava JavaType反序列化沙盒绕过漏洞

## 概述

jinjava 是一个基于 Django 模板语法、用于渲染 Jinja 模板的 Java 模板引擎。在版本 2.8.1 之前,存在一个反序列化漏洞。

## 影响版本

受影响版本:所有低于 2.8.1 的版本。

## 漏洞细节

漏洞核心在于 `mapper.getTypeFactory().constructFromCanonical()` 方法的使用,使得底层 `ObjectMapper` 可被诱导反序列化攻击者控制的数据为任意类的实例。攻击者借此可在不直接调用被限制方法或类字面量的情况下,创建特定类的实例,例如 `java.net.URL`。

这使攻击者能够突破模板沙箱,访问本地文件系统或外部 URL(如 `file:///etc/passwd`)。

## 漏洞影响

- 实现沙箱逃逸
- 读取任意文件或访问外部资源
- 潜在可通过链式利用实现远程代码执行(RCE)

## 修复

该漏洞已在 **jinjava 2.8.1** 及以后版本中修复。
                                        
神龙判断

是否为 Web 类漏洞:

判断理由:

是。这个漏洞允许攻击者通过控制输入来反序列化任意类,从而逃逸沙箱并实例化如`java.net.URL`等类,导致访问本地文件和URL的能力(例如`file:///etc/passwd`)。进一步的攻击链可能导致远程代码执行(RCE)。这是服务端的一个严重漏洞,因为攻击者可以利用它执行未经授权的操作。此漏洞已在2.8.1版本中修复。
提示
尽管我们采用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。
神龙会尽力确保数据准确,但也请结合实际情况进行甄别与判断。
神龙祝您一切顺利!
漏洞标题
jinjava Sandbox Bypass via JavaType-Based Deserialization
来源:美国国家漏洞数据库 NVD
漏洞描述信息
jinjava is a Java-based template engine based on django template syntax, adapted to render jinja templates. Priori to 2.8.1, by using mapper.getTypeFactory().constructFromCanonical(), it is possible to instruct the underlying ObjectMapper to deserialize attacker-controlled input into arbitrary classes. This enables the creation of semi-arbitrary class instances without directly invoking restricted methods or class literals. As a result, an attacker can escape the sandbox and instantiate classes such as java.net.URL, opening up the ability to access local files and URLs(e.g., file:///etc/passwd). With further chaining, this primitive can potentially lead to remote code execution (RCE). This vulnerability is fixed in 2.8.1.
来源:美国国家漏洞数据库 NVD
CVSS信息
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
来源:美国国家漏洞数据库 NVD
漏洞类别
N/A
来源:美国国家漏洞数据库 NVD
漏洞标题
HubSpot Jinjava 安全漏洞
来源:中国国家信息安全漏洞库 CNNVD
漏洞描述信息
HubSpot Jinjava是美国HubSpotn个人开发者的一个应用软件。提供基于Java的模板模板引擎,基于Django模板语法,适用于呈现jinja模板。 HubSpot Jinjava 2.8.1之前版本存在安全漏洞,该漏洞源于允许反序列化攻击者控制的输入,可能导致沙箱逃逸和远程代码执行。
来源:中国国家信息安全漏洞库 CNNVD
CVSS信息
N/A
来源:中国国家信息安全漏洞库 CNNVD
漏洞类别
其他
来源:中国国家信息安全漏洞库 CNNVD
二、漏洞 CVE-2025-59340 的公开POC
#POC 描述源链接神龙链接
三、漏洞 CVE-2025-59340 的情报信息
  • 标题: Release jinjava-2.8.1 · HubSpot/jinjava · GitHub -- 🔗来源链接

    标签:x_refsource_MISC

    神龙速读:
                                            从这个网页截图中可以获取到以下关于漏洞的关键信息:
    
    - **版本信息**:当前显示的是 `jinja2-2.8.1` 版本,发布于 2025 年 9 月 16 日。
    - **安全更新**:
      - 禁止在渲染时访问受限类的属性,这可能是为了防止潜在的安全漏洞,如代码注入或权限提升。
      - 使用 `AutoCloseable` 进行堆栈操作,以更安全地使用 `try-with-resources`,这有助于避免资源泄漏和相关的安全问题。
    
    这些更新表明该版本可能修复了与访问受限类属性和资源管理相关的安全漏洞。
                                            
    Release jinjava-2.8.1 · HubSpot/jinjava · GitHub
  • 标题: Sandbox Bypass via JavaType-Based Deserialization · Advisory · HubSpot/jinjava · GitHub -- 🔗来源链接

    标签:x_refsource_CONFIRM

    神龙速读:
                                            ### 关键信息
    
    #### 漏洞概述
    - **漏洞名称**: Sandbox Bypass via JavaType-Based Deserialization
    - **严重性**: Critical (CVSS v3.1: 9.8/10)
    - **CVE ID**: CVE-2025-59340
    - **CWE**: CWE-1336
    
    #### 影响范围
    - **受影响版本**: < 2.8.1
    - **修复版本**: 2.8.1
    - **包**: com.hubspot.jinjava:jinjava (Maven)
    
    #### 漏洞描述
    - **摘要**: Jinjava 当前的沙箱限制阻止了对危险方法(如 getClass())的直接访问,并阻止了 Class 对象的实例化。然而,这些保护可以被绕过。
    - **细节**: 
      - Jinjava 模板暴露了一个内置变量 `__int3pr3t3r__`,提供了对 JinjavaInterpreter 实例的直接访问。
      - 通过与 JinjavaInterpreter 实例的属性交互,可以遍历到 `config` 字段,该字段暴露了一个 ObjectMapper。
      - 利用 `readValue(String content, JavaType valueType)` 方法,攻击者可以实例化任意类,包括通过 JavaType 指定的类。
      - 尽管 Jinjava 明确限制了危险类(如 Class、ClassLoader 等),但在 JinjavaBeanELResolver 中,JavaType 类本身不受限制。
    
    #### 影响
    - **后果**: 攻击者可以绕过沙箱并实例化广泛的类,使用 JavaType。这可能导致读取任意文件和执行 SSRF。在某些环境中,这甚至可能导致远程代码执行(RCE)。
                                            
    Sandbox Bypass via JavaType-Based Deserialization · Advisory · HubSpot/jinjava · GitHub
  • 标题: Merge commit from fork · HubSpot/jinjava@66df351 · GitHub -- 🔗来源链接

    标签:x_refsource_MISC

    神龙速读:
                                            ### 关键信息
    
    - **漏洞类型**: 限制属性访问以防止从受限制的基础中获取属性。
    - **修复措施**: 
      - 在 `JinjaJavaBeanELResolver` 类中添加了对 `isRestrictedClass` 的检查,如果基础对象是受限制的类,则返回 `null`。
      - 更新了 `getValue` 方法,确保不会从受限制的类中获取属性值。
    - **测试用例**:
      - 添加了 `itThrowsExceptionWhenPropertyIsRestrictedFromConfig` 测试方法,验证当尝试访问受限制的属性时会抛出异常。
      - 添加了 `itDoesNotAllowAccessingPropertiesOfInterpreter` 测试方法,确保无法通过解释器访问受限制的属性。
    
    这些更改和测试确保了系统在处理受限制的类和属性时的安全性,防止潜在的漏洞被利用。
                                            
    Merge commit from fork · HubSpot/jinjava@66df351 · GitHub
  • https://nvd.nist.gov/vuln/detail/CVE-2025-59340
四、漏洞 CVE-2025-59340 的评论

暂无评论


发表评论