Security Vulnerability Report
中文
CVE-2025-61939 CVSS 8.8 HIGH

CVE-2025-61939

Published: 2026-01-07 21:15:59
Last Modified: 2026-01-22 17:39:19

Description

An unused function in MicroServer can start a reverse SSH connection to a vendor registered domain, without mutual authentication. An attacker on the local network with admin access to the web server, and the ability to manipulate DNS responses, can redirect the SSH connection to an attacker controlled device.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:o:columbiaweather:weather_microserver_firmware:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:h:columbiaweather:weather_microserver:-:*:*:*:*:*:*:* - NOT VULNERABLE
MicroServer 所有受影响的版本(具体版本信息需参考供应商官方公告)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 """ CVE-2025-61939 PoC - MicroServer Reverse SSH Connection DNS Redirection Note: This PoC is for educational and authorized testing purposes only. """ import socket import struct import dns.resolver from datetime import datetime def create_fake_dns_response(): """ Simulate DNS response manipulation for redirecting MicroServer SSH connection """ print("[*] CVE-2025-61939 - DNS Response Manipulation PoC") print(f"[*] Timestamp: {datetime.now()}") print("[*] Target: MicroServer device with vulnerable unused function") print("\n[+] Simulating DNS cache poisoning attack...") # Attacker-controlled SSH server IP attacker_ip = "<ATTACKER_IP>" vendor_domain = "vendor-legitimate-domain.com" print(f"[+] Original vendor domain: {vendor_domain}") print(f"[+] Redirecting to attacker server: {attacker_ip}") print("[+] DNS response spoofed successfully") print("\n[*] Next steps for attacker:") print(" 1. Set up malicious SSH server listening on port 22") print(" 2. Wait for MicroServer to initiate reverse SSH connection") print(" 3. Establish shell access via the tunnel") print(" 4. Perform lateral movement within the network") return True def check_prerequisites(): """ Check if attacker has required access level """ print("\n[*] Verifying prerequisites for CVE-2025-61939 exploitation:") prerequisites = { "Local Network Access": True, "Admin Access to Web Server": False, "DNS Manipulation Capability": False, } for prereq, status in prerequisites.items(): status_str = "✓ Met" if status else "✗ Not Met" print(f" [{status_str}] {prereq}") return all(prerequisites.values()) if __name__ == "__main__": print("="*60) print("CVE-2025-61939 Proof of Concept") print("MicroServer Unused Function Reverse SSH Connection") print("="*60) if check_prerequisites(): create_fake_dns_response() else: print("\n[-] Prerequisites not met. Exploitation not possible.")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-61939", "sourceIdentifier": "[email protected]", "published": "2026-01-07T21:15:58.753", "lastModified": "2026-01-22T17:39:18.590", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "An unused function in MicroServer can start a reverse SSH connection to a vendor registered domain, without mutual authentication. An attacker on the local network with admin access to the web server, and the ability to manipulate DNS responses, can redirect the SSH connection to an attacker controlled device."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/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": 8.7, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "LOW", "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": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 8.8, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.8, "impactScore": 5.9}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:N", "baseScore": 4.4, "baseSeverity": "MEDIUM", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 0.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-923"}]}], "configurations": [{"operator": "AND", "nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:columbiaweather:weather_microserver_firmware:*:*:*:*:*:*:*:*", "versionEndExcluding": "MS_4.1_14142", "matchCriteriaId": "85279FFA-8834-4778-8AD8-DB750EA8BBC6"}]}, {"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": false, "criteria": "cpe:2.3:h:columbiaweather:weather_microserver:-:*:*:*:*:*:*:*", "matchCriteriaId": "10FA303F-A9BC-43A0-9C9A-2362210FA0A0"}]}]}], "references": [{"url": "https://github.com/cisagov/CSAF/blob/develop/csaf_files/OT/white/2026/icsa-26-006-01.json", "source": "[email protected]", "tags": ["Third Party Advisory"]}, {"url": "https://www.cisa.gov/news-events/ics-advisories/icsa-26-006-01", "source": "[email protected]", "tags": ["Third Party Advisory", "US Government Resource"]}]}}