CVE-2025-29085

9.8 CRITICAL

📋 TL;DR

This CVE describes a critical SQL injection vulnerability in vipshop Saturn's console dashboard component. Remote attackers can execute arbitrary SQL commands via the /console/dashboard/executorCount endpoint, potentially leading to complete system compromise. All users running Saturn v3.5.1 or earlier are affected.

💻 Affected Systems

Products:
  • vipshop Saturn
Versions: v3.5.1 and earlier
Operating Systems: All platforms running Saturn
Default Config Vulnerable: ⚠️ Yes
Notes: The vulnerable endpoint is part of the console dashboard component which is typically exposed in default configurations.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full system compromise with remote code execution, data exfiltration, and complete control over the database and potentially the underlying server.

🟠

Likely Case

Database compromise leading to data theft, data manipulation, privilege escalation, and potential lateral movement within the network.

🟢

If Mitigated

Limited impact with proper input validation, parameterized queries, and network segmentation preventing successful exploitation.

🌐 Internet-Facing: HIGH
🏢 Internal Only: HIGH

🎯 Exploit Status

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

The vulnerability is in a web endpoint with publicly available proof-of-concept code, making exploitation straightforward for attackers.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: v3.5.2 or later

Vendor Advisory: https://github.com/vipshop/Saturn/releases

Restart Required: Yes

Instructions:

1. Backup your current configuration and data. 2. Download Saturn v3.5.2 or later from the official GitHub repository. 3. Stop the Saturn service. 4. Replace the vulnerable version with the patched version. 5. Restart the Saturn service. 6. Verify the fix is applied.

🔧 Temporary Workarounds

Web Application Firewall (WAF) Rules

all

Implement WAF rules to block SQL injection attempts targeting the vulnerable endpoint

Add rule: Block requests containing SQL keywords in /console/dashboard/executorCount?zkClusterKey parameter

Network Access Control

linux

Restrict access to the Saturn console dashboard to trusted IP addresses only

iptables -A INPUT -p tcp --dport [SATURN_PORT] -s [TRUSTED_IP] -j ACCEPT
iptables -A INPUT -p tcp --dport [SATURN_PORT] -j DROP

🧯 If You Can't Patch

  • Implement strict input validation and parameterized queries for all database interactions
  • Deploy network segmentation to isolate Saturn instances from critical systems

🔍 How to Verify

Check if Vulnerable:

Check if your Saturn version is 3.5.1 or earlier and if the /console/dashboard/executorCount endpoint is accessible

Check Version:

Check Saturn configuration files or run: java -jar saturn-console-executor.jar --version

Verify Fix Applied:

After patching, verify the version is 3.5.2 or later and test the vulnerable endpoint with SQL injection payloads to confirm they are blocked

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL queries in database logs
  • Multiple failed login attempts or SQL errors in application logs
  • Requests to /console/dashboard/executorCount with SQL keywords in parameters

Network Indicators:

  • Unusual outbound database connections from Saturn instances
  • Traffic patterns indicating data exfiltration

SIEM Query:

source="saturn_logs" AND (url="/console/dashboard/executorCount" AND (param="zkClusterKey" AND value CONTAINS "UNION" OR "SELECT" OR "INSERT" OR "DELETE"))

🔗 References

📤 Share & Export