Skip to content

Back to the catalog

Huda (@AlAssaf_H) on X
x.comarticle

Huda (@AlAssaf_H) on X

Source-level review of x64dbg-MCP, GhidraMCP and IDA Pro MCP security, dated October 2026. It covers GHSA-4478-h5jv-647m (missing authentication, 0.0.0.0 bind) and GHSA-jgj3-97w2-9v9r (Content-Length integer overflow before the token check, causing a DoS panic), and compares tags 1.0, v1.1 and v1.2. It separates network reachability, tool authority and semantic influence from hostile binaries. No new exploit is claimed.

TL;DR Compares security of x64dbg, Ghidra and IDA MCP bridges from source, separating network exposure, tool privilege and prompt injection from analyzed binaries.
Document

What it is

A static source review, dated 19 October 2026, of three reverse-engineering MCP bridges: x64dbg-MCP, LaurieWired/GhidraMCP and IDA Pro MCP. The author did no dynamic exploitation or lab reproduction and claims no new CVE. The value is in the per-version and per-mode findings, which show where advisory text and current code disagree.

How it works

x64dbg-MCP. GHSA-4478-h5jv-647m (August 2026) covers missing authentication on the HTTP/SSE interface, which exposed process attachment, x64dbg command execution and memory read/write. The default bind was 0.0.0.0. GHSA-jgj3-97w2-9v9r is separate: the receive path handled Content-Length before the Bearer-token check. An oversized declared length overflowed the arithmetic in safety-checked Zig builds and panicked the process, which killed x64dbg. It is a DoS, not a demonstrated memory-corruption or code-execution primitive. It was reported fixed in v1.2.

Tag comparison for x64dbg-MCP:

TagAuthenticationDefault bind
1.0No Bearer-token enforcement in the inspected source0.0.0.0
v1.1Bearer-token checks0.0.0.0
v1.2Bearer-token checks127.0.0.1

The advisory names 1.0 as the patched version, yet the 1.0 tag source lacks the authentication changes. The author does not claim every published 1.0 binary was vulnerable.

GhidraMCP. The March 2026 audit (issue #141) described a port-only InetSocketAddress that binds the wildcard interface, plus missing authentication and prompt injection via binary content. The current extension/src/main/java/com/lauriewired/ghidramcp/http/BackendHttpServer.java binds with InetAddress.getLoopbackAddress(). It rejects requests carrying an Origin header and checks Host against permitted local names. The Python frontend defaults to loopback. Mutation tools remain: renaming functions, variables and data labels, changing prototypes and local variable types, and writing decompiler and disassembly comments.

IDA Pro MCP. The headless idalib server removes @unsafe tools unless --unsafe is passed, and --profile restricts the tool set. The repository tests show py_eval and py_exec_file in the GUI plugin's default registry. So "unsafe tools off by default" holds only for headless mode. The GUI plugin has configurable enabled tools and a browser-origin policy.

Preconditions / Affected

  • x64dbg-MCP: tag 1.0 and v1.1 default to 0.0.0.0, and 1.0 has no token check. Reachability still depends on network topology and firewall policy. Only v1.2 combines token authentication with a loopback default and the reported Content-Length fix.
  • GhidraMCP: reports based on the March 2026 audit describe superseded code.
  • IDA Pro MCP: exposure depends on GUI versus headless mode and on the active tool restrictions.

What to do

  • Verify the actual tag or binary you run, not the advisory's version label. For x64dbg-MCP, use v1.2 or later.
  • Treat loopback binding and origin filtering as reducing reachability, not as client authorization. Local processes can still reach the service.
  • For IDA Pro MCP, check which tools your mode registers, and restrict the GUI plugin's list or use headless without --unsafe.
  • Treat decompiler and string output from hostile samples as untrusted data. Scope and audit write-capable tools separately from read-only ones.

Caveats

The author states that a string in a binary does not prove successful prompt injection, and the reviewed GhidraMCP issues (#140 and others) show no universal reproducible agent compromise. The 1.0 tag discrepancy is a source-versus-metadata observation, not proof about shipped binaries.

Organisations named here

  • GhidraMCP
  • GHSA-4478-h5jv-647m
  • GHSA-jgj3-97w2-9v9r
  • IDA Pro MCP
  • x64dbg-MCP

Technologies named here

  • x64dbg-MCP Server
  • GhidraMCP
  • IDA Pro MCP
  • Model Context Protocol
  • Ghidra
  • x64dbg
  • IDA Pro
  • Zig
  • Missing Authentication for Critical Functionality

Techniques named here

  • Pre-authentication parsing denial of service
  • Three-boundary model
  • Prompt Injection
  • Integer Overflow