CVE-2026-37006: gpt-researcher accepted MCP server configs over an unauthenticated WebSocket, spawning attacker-named commands
A CVE record published 2026-08-27 describes unauthenticated remote code execution in gpt-researcher, the 29,000-star research agent: its /ws WebSocket endpoint accepted mcp_configs whose command and args fields reached a subprocess spawn unvalidated. The researcher's disclosure names v0.14.8 as the fixed version, adding authentication, strict schema validation and an executable allowlist. The fixed version could not be reconciled against the project's artifacts: the PyPI 0.14.8 upload predates the reported discovery, and the repository tags use a different numbering.
A CVE record published on 2026-08-27 describes unauthenticated remote code execution in gpt-researcher, the open-source research agent with roughly 29,000 GitHub stars. Per the record, versions 0.14.7 and before accepted "malicious Model Context Protocol configurations" over the backend's WebSocket endpoint. CVE-2026-37006 was assigned by MITRE and had been reserved since 2026-04-06.
Researcher Yeran Gamage's disclosure supplies the mechanism. The /ws
endpoint had no authentication gate, and the mcp_configs array in its
JSON payload was extracted with plain dictionary lookups rather than
schema validation, so the command and args fields of a stdio server
entry travelled unchecked into the process spawn that launches MCP
servers. One WebSocket message declaring a server whose command was
bash executed arbitrary code as the server's user. The researcher
rated it CVSS 9.8.
The fix, as the disclosure describes it, shipped in v0.14.8: mandatory
authentication on /ws before any payload is processed, a strict
Pydantic schema that rejects unexpected fields, and a hardcoded
allowlist of permitted executables that rejects shell interpreters. One
caution on that version number: it could not be reconciled against the
project's own artifacts. The PyPI package's 0.14.8 was uploaded on
2026-03-13, before the disclosure's reported May dates, the GitHub
repository carries no v0.14.x tags at all (its releases run v3.5.x and
v3.6.x), and no repository security advisory exists. The vulnerability
class and the hardening described are well documented in the
disclosure; which artifact line carries the fix is not. The check that
does not depend on version numbering is behavioral: a patched backend
rejects unauthenticated /ws connections before processing any
payload.
The pattern is the one this feed keeps recording: an agent backend accepts MCP server configuration over a network interface, and whatever trust that configuration carries flows straight to a subprocess. The MCPHub batch published four days later includes the same shape behind an authenticated endpoint.
How was this verified, and what are the sources?
Published · last verified · confidence 0.90.
- CVE-2026-37006 CNA record (MITRE) - "A vulnerability in the WebSocket endpoint of gpt-researcher v0.14.7 and before allows an unauthenticated remote attacker to achieve code execution via malicious Model Context Protocol configurations"; published 2026-08-27, reserved 2026-04-06 - accessed
- Yeran Gamage's disclosure - taint path from the unauthenticated /ws endpoint through mcp_configs command/args to anyio.open_process(), rated CVSS 9.8 by the researcher; fix described as v0.14.8 (mandatory /ws authentication, strict Pydantic schema, executable allowlist), timeline given as reported May 3, fixed May 9, disclosed May 20 - accessed
- gpt-researcher releases - no v0.14.x tags exist (recent releases are v3.5.x/v3.6.x, latest v3.6.1 on 2026-08-24) and the repository has published no security advisory for this issue - accessed
- PyPI gpt-researcher release history - 0.14.7 uploaded 2026-03-01, 0.14.8 uploaded 2026-03-13, both before the disclosure's reported dates; latest package version 0.16.0 - accessed