CVE-2025-56815

7.1 HIGH

📋 TL;DR

CVE-2025-56815 is a directory traversal vulnerability in Datart 1.0.0-rc.3 that allows attackers to write arbitrary files to any location on the server via the POST /viz/image interface. This occurs because the server uses MultipartFile.transferTo() without properly validating user-controlled file paths. Organizations running vulnerable Datart instances are affected.

💻 Affected Systems

Products:
  • Datart
Versions: 1.0.0-rc.3
Operating Systems: All operating systems running Datart
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects Datart 1.0.0-rc.3 version. Other versions may be vulnerable if similar code patterns exist.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote code execution by overwriting critical system files or web application files, potentially leading to complete server compromise.

🟠

Likely Case

Arbitrary file write allowing attackers to deface websites, upload malicious scripts, or disrupt application functionality.

🟢

If Mitigated

Limited impact if file system permissions restrict write access to non-critical directories.

🌐 Internet-Facing: HIGH - The vulnerable endpoint is accessible via HTTP POST requests without authentication.
🏢 Internal Only: MEDIUM - Internal attackers could still exploit this to compromise the server from within the network.

🎯 Exploit Status

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

Public proof-of-concept code exists on GitHub. Exploitation requires only HTTP POST requests with crafted file paths.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Not available

Vendor Advisory: Not available

Restart Required: No

Instructions:

No official patch available. Consider upgrading to a newer version if available or implementing workarounds.

🔧 Temporary Workarounds

Input Validation Filter

all

Implement server-side validation to reject file paths containing directory traversal sequences (../, ..\)

# Add validation in the file upload handler to sanitize file names
# Example Java: if (fileName.contains("..") || fileName.contains("/") || fileName.contains("\\")) { reject upload; }

Web Application Firewall Rule

all

Block requests to /viz/image containing directory traversal patterns

# WAF rule to block ../ patterns in POST body
# Example ModSecurity: SecRule REQUEST_BODY "\.\./" "id:1001,phase:2,deny"

🧯 If You Can't Patch

  • Disable the /viz/image endpoint if not required for business functionality
  • Implement strict file system permissions to limit write access to specific directories only

🔍 How to Verify

Check if Vulnerable:

Test by sending a POST request to /viz/image with a file containing directory traversal in the filename parameter

Check Version:

Check Datart version in application configuration or via web interface

Verify Fix Applied:

Attempt the same exploit after implementing fixes; successful requests should be rejected

📡 Detection & Monitoring

Log Indicators:

  • Multiple failed POST requests to /viz/image
  • File write errors showing path traversal attempts
  • Unusual file creation in system directories

Network Indicators:

  • HTTP POST requests to /viz/image with ../ patterns in payload
  • Unusual file upload traffic to the application

SIEM Query:

source="web_server" AND uri_path="/viz/image" AND (http_method="POST" AND request_body MATCHES "\.\./")

🔗 References

📤 Share & Export