{"id":"CVE-2026-54689","summary":"mcp-searxng hardened-mode SSRF bypasses permit internal URL access","details":"mcp-searxng is a Model Context Protocol server that gives AI assistants web search and URL-reading capabilities through SearXNG. Prior to 1.2.0, the web_url_read URL policy in src/url-reader.ts can be bypassed while MCP_HTTP_HARDEN is enabled and MCP_HTTP_ALLOW_PRIVATE_URLS is not enabled because redirect targets are not revalidated, 0.0.0.0 is not classified as an internal address, and IPv4-mapped IPv6 literals canonicalized to hexadecimal form are not recognized. These inputs allow an attacker-influenced tool call to make the MCP server fetch loopback or internal HTTP resources and return content from local services, private APIs, service-mesh endpoints, or cloud metadata endpoints. The separate hostname-to-private-address case addressed by the earlier partial fix is not part of these residual bypasses. This issue is fixed in version 1.2.0.","aliases":["GHSA-wppf-h75h-6pm6"],"modified":"2026-09-17T03:47:13.866633861Z","published":"2026-09-15T17:45:19.132Z","database_specific":{"cna_assigner":"GitHub_M","cwe_ids":["CWE-200","CWE-918"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54689.json"},"references":[{"type":"WEB","url":"https://github.com/ihor-sokoliuk/mcp-searxng/releases/tag/v1.2.0"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54689.json"},{"type":"ADVISORY","url":"https://github.com/ihor-sokoliuk/mcp-searxng/security/advisories/GHSA-wppf-h75h-6pm6"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-54689"},{"type":"FIX","url":"https://github.com/ihor-sokoliuk/mcp-searxng/commit/48e5ecdcb4166a60b94c252dbe74b0a318110ac4"},{"type":"FIX","url":"https://github.com/ihor-sokoliuk/mcp-searxng/pull/79"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/ihor-sokoliuk/mcp-searxng","events":[{"introduced":"0"},{"fixed":"48e5ecdcb4166a60b94c252dbe74b0a318110ac4"},{"fixed":"da4d43b5123dae694d6bd9c67b8ab2f19ff23cd1"}],"database_specific":{"extracted_events":[{"introduced":"0"},{"fixed":"1.2.0"}],"source":["AFFECTED_FIELD","REFERENCES"]}}],"versions":["v1.1.1","v1.1.0","v1.0.5","v1.0.4","v1.0.3","v1.0.2","v1.0.1","v1.0.0","v0.10.5","v0.10.4","v0.10.3","v0.10.1","v0.10.0","v0.9.2","v0.9.1","v0.9.0","v0.8.0","v0.7.12","v0.7.11","v0.7.10","v0.7.9","v0.7.8","v0.7.7","v0.7.6","v0.7.5","v0.7.4","v0.7.3","v0.6.0","v0.5.0","v0.4.4","v0.4.3","v0.4.2","v0.4.1","v0.4.0","v0.3.7","v0.3.6","v0.3.5","v0.3.4","v0.3.1"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-54689.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:N/A:N"}]}