CVE-2025-7787

6.3 MEDIUM

📋 TL;DR

This critical Server-Side Request Forgery (SSRF) vulnerability in Xuxueli xxl-job allows attackers to make unauthorized requests from the vulnerable server to internal or external systems. Attackers can exploit this remotely to potentially access internal services, exfiltrate data, or conduct further attacks. All deployments of xxl-job up to version 3.1.1 are affected.

💻 Affected Systems

Products:
  • Xuxueli xxl-job
Versions: up to 3.1.1
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: All deployments using the vulnerable httpJobHandler function are affected regardless of configuration.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could pivot to internal networks, access cloud metadata services, steal credentials, or use the vulnerable server as a proxy for attacks against other systems.

🟠

Likely Case

Unauthorized access to internal HTTP services, data exfiltration, or scanning of internal network resources from the compromised server.

🟢

If Mitigated

Limited impact if network segmentation restricts outbound connections and internal services require authentication.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Public exploit available in GitHub issues, making this easily exploitable by attackers.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.1.2 or later

Vendor Advisory: https://github.com/xuxueli/xxl-job/issues/3749

Restart Required: Yes

Instructions:

1. Upgrade xxl-job to version 3.1.2 or later. 2. Replace the vulnerable SampleXxlJob.java file. 3. Restart the xxl-job service.

🔧 Temporary Workarounds

Disable HTTP job handler

all

Remove or disable the vulnerable httpJobHandler function if not required

# Remove or comment out httpJobHandler in SampleXxlJob.java
# Restart xxl-job service

Network restrictions

linux

Implement egress filtering to restrict outbound HTTP requests from xxl-job servers

# Configure firewall rules to limit outbound HTTP/HTTPS
# Example: iptables -A OUTPUT -p tcp --dport 80 -j DROP
# Example: iptables -A OUTPUT -p tcp --dport 443 -j DROP

🧯 If You Can't Patch

  • Implement strict network segmentation to isolate xxl-job servers from sensitive internal systems
  • Deploy web application firewall (WAF) rules to detect and block SSRF patterns in requests

🔍 How to Verify

Check if Vulnerable:

Check if running xxl-job version 3.1.1 or earlier and if httpJobHandler is enabled in SampleXxlJob.java

Check Version:

Check pom.xml for version or examine application startup logs

Verify Fix Applied:

Verify xxl-job version is 3.1.2 or later and test that httpJobHandler no longer accepts arbitrary URLs

📡 Detection & Monitoring

Log Indicators:

  • Unusual outbound HTTP requests from xxl-job server
  • Requests to internal IP ranges or cloud metadata endpoints

Network Indicators:

  • HTTP traffic from xxl-job servers to unexpected destinations
  • Multiple rapid HTTP requests to different internal endpoints

SIEM Query:

source="xxl-job" AND (url CONTAINS "169.254.169.254" OR url CONTAINS "metadata.google.internal" OR url CONTAINS "10." OR url CONTAINS "192.168.")

🔗 References

📤 Share & Export