CVE-2025-8729

6.3 MEDIUM

📋 TL;DR

This is a critical path traversal vulnerability in MigoXLab LMeterX 1.2.0 that allows attackers to access arbitrary files on the server by manipulating the task_id parameter in the upload service. The vulnerability affects all systems running the vulnerable version and can be exploited remotely without authentication.

💻 Affected Systems

Products:
  • MigoXLab LMeterX
Versions: 1.2.0
Operating Systems: Any OS running LMeterX
Default Config Vulnerable: ⚠️ Yes
Notes: All installations of version 1.2.0 are vulnerable by default. The vulnerability is in the upload service component.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system compromise through reading sensitive files like configuration files, SSH keys, or database credentials, potentially leading to data exfiltration or further system exploitation.

🟠

Likely Case

Unauthorized access to sensitive files containing application configuration, user data, or system information that could be used for further attacks.

🟢

If Mitigated

Limited impact with proper file system permissions and network segmentation restricting access to critical system files.

🌐 Internet-Facing: HIGH - The vulnerability can be exploited remotely without authentication, making internet-facing instances particularly vulnerable.
🏢 Internal Only: MEDIUM - Internal systems are still vulnerable but may have additional network controls reducing exposure.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

The exploit has been publicly disclosed and appears to be straightforward to execute based on the vulnerability description.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Patched in commit f1b00597e293d09452aabd4fa57f3185207350e8

Vendor Advisory: https://github.com/MigoXLab/LMeterX/commit/f1b00597e293d09452aabd4fa57f3185207350e8

Restart Required: No

Instructions:

1. Pull the latest code from the repository. 2. Apply commit f1b00597e293d09452aabd4fa57f3185207350e8. 3. Verify the fix by checking that the process_cert_files function properly validates task_id input.

🔧 Temporary Workarounds

Disable upload service

all

Temporarily disable the vulnerable upload service component to prevent exploitation

systemctl stop lmeterx-upload
Disable the upload endpoint in configuration

Input validation at proxy level

all

Implement WAF rules or reverse proxy filtering to block path traversal patterns in task_id parameter

Add WAF rule: deny requests with '../' in task_id parameter

🧯 If You Can't Patch

  • Implement strict file system permissions to limit what files the application can access
  • Deploy network segmentation to isolate vulnerable systems from sensitive data

🔍 How to Verify

Check if Vulnerable:

Check if running LMeterX version 1.2.0 and examine if the process_cert_files function in backend/service/upload_service.py lacks proper input validation for task_id parameter.

Check Version:

Check application version in configuration or run: python -c "import lmeterx; print(lmeterx.__version__)"

Verify Fix Applied:

Verify that commit f1b00597e293d09452aabd4fa57f3185207350e8 is applied and test that path traversal attempts via task_id parameter are properly rejected.

📡 Detection & Monitoring

Log Indicators:

  • Multiple failed file access attempts with unusual task_id values
  • Requests containing '../' patterns in task_id parameter
  • Access to files outside expected upload directories

Network Indicators:

  • Unusual file paths in HTTP requests to upload endpoints
  • Requests attempting to access known sensitive file paths

SIEM Query:

source="lmeterx.logs" AND (task_id="*../*" OR uri="*/upload*" AND response_code=500)

🔗 References

📤 Share & Export