CVE-2025-4893

6.3 MEDIUM

📋 TL;DR

This critical path traversal vulnerability in jammy928 CoinExchange_CryptoExchange_Java allows attackers to write arbitrary files to server directories by manipulating filename parameters in the uploadLocalImage function. Remote attackers can potentially overwrite critical system files or deploy malicious payloads. All deployments using this cryptocurrency exchange software up to commit 8adf508b996020d3efbeeb2473d7235bd01436fa are affected.

💻 Affected Systems

Products:
  • jammy928 CoinExchange_CryptoExchange_Java
Versions: All versions up to commit 8adf508b996020d3efbeeb2473d7235bd01436fa
Operating Systems: Any OS running Java applications
Default Config Vulnerable: ⚠️ Yes
Notes: Affects the file upload endpoint component; product does not use versioning so specific release numbers unavailable.

⚠️ 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

Complete server compromise through arbitrary file write leading to remote code execution, data theft, or system destruction.

🟠

Likely Case

Unauthorized file upload to sensitive directories, potentially enabling web shell deployment or configuration file modification.

🟢

If Mitigated

Limited impact with proper file permission restrictions and input validation preventing directory traversal.

🌐 Internet-Facing: HIGH - Remote exploitation possible without authentication, making internet-facing instances extremely vulnerable.
🏢 Internal Only: MEDIUM - Internal attackers could still exploit, but requires network access to the application.

🎯 Exploit Status

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

Proof of concept publicly available on GitHub; simple path traversal attack requiring minimal technical skill.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Unknown - product doesn't use versioning

Vendor Advisory: None available

Restart Required: No

Instructions:

No official patch available. Manually fix the uploadLocalImage function in UploadFileUtil.java to validate and sanitize filename inputs before processing.

🔧 Temporary Workarounds

Input Validation Filter

all

Implement server-side validation to reject filename parameters containing path traversal sequences

Implement Java filter to check for '../', '..\\', and other traversal patterns in filename parameter

Web Application Firewall Rule

all

Block requests containing path traversal patterns in filename parameters

WAF rule: deny requests where filename parameter contains '../', '..\\', or absolute paths

🧯 If You Can't Patch

  • Disable the file upload endpoint completely if not required
  • Implement strict file permission restrictions on server directories

🔍 How to Verify

Check if Vulnerable:

Test by attempting to upload a file with filename parameter containing '../' sequences to the upload endpoint

Check Version:

Check git commit hash: git log --oneline -1

Verify Fix Applied:

Verify that path traversal attempts are rejected and files cannot be written outside intended directories

📡 Detection & Monitoring

Log Indicators:

  • HTTP requests with filename parameters containing '../' or '..\\'
  • File write operations outside expected upload directories
  • Unusual file creation in system directories

Network Indicators:

  • POST requests to upload endpoints with suspicious filename parameters
  • Multiple failed upload attempts with traversal patterns

SIEM Query:

source="web_logs" AND (filename="*../*" OR filename="*..\\*") AND uri="*/upload*"

🔗 References

📤 Share & Export