CVE-2023-44794

9.8 CRITICAL

📋 TL;DR

CVE-2023-44794 is a critical privilege escalation vulnerability in Dromara SaToken authentication framework. Remote attackers can send crafted payloads to URLs to gain elevated privileges. All systems running vulnerable SaToken versions are affected.

💻 Affected Systems

Products:
  • Dromara SaToken
Versions: 1.36.0 and earlier
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Any application using SaToken for authentication with default configurations is vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system compromise with administrative access, data theft, and lateral movement across the network.

🟠

Likely Case

Unauthorized access to sensitive data, privilege escalation to administrative functions, and potential data manipulation.

🟢

If Mitigated

Limited impact with proper input validation, network segmentation, and least privilege principles in place.

🌐 Internet-Facing: HIGH
🏢 Internal Only: HIGH

🎯 Exploit Status

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

Exploitation requires sending crafted payloads to vulnerable endpoints, which is straightforward given the public PoC.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.37.0 or later

Vendor Advisory: https://github.com/dromara/Sa-Token/issues/515

Restart Required: Yes

Instructions:

1. Update SaToken dependency to version 1.37.0 or later. 2. Rebuild and redeploy the application. 3. Restart the application server.

🔧 Temporary Workarounds

Input Validation Filter

all

Implement strict input validation for URL parameters to block malicious payloads.

Web Application Firewall (WAF)

all

Deploy WAF rules to detect and block crafted payloads targeting SaToken endpoints.

🧯 If You Can't Patch

  • Isolate affected systems from internet and restrict internal network access.
  • Implement strict network segmentation and monitor for unusual authentication attempts.

🔍 How to Verify

Check if Vulnerable:

Check the SaToken version in your project's dependency file (e.g., pom.xml for Maven, build.gradle for Gradle).

Check Version:

grep -i 'sa-token' pom.xml || grep -i 'sa-token' build.gradle

Verify Fix Applied:

Verify the updated SaToken version is 1.37.0 or later and test authentication flows.

📡 Detection & Monitoring

Log Indicators:

  • Unusual authentication success logs from unexpected IPs
  • Multiple failed login attempts followed by successful privileged access

Network Indicators:

  • HTTP requests with crafted payloads to authentication endpoints
  • Unusual traffic patterns to SaToken-related URLs

SIEM Query:

source="application.logs" AND ("SaToken" OR "authentication") AND ("privilege" OR "escalation")

🔗 References

📤 Share & Export