MCP, MCP server
Ida Pro Mcp
AI-powered reverse engineering assistant that bridges IDA Pro with language models through MCP.
Compatibility: Not stated.
Grade C
One Medium finding. Read the findings before installing.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
Rescanned at commit c133c3853faa, unchanged since the check below.
NETWORK_HOST_FROM_INPUT
Why this grade
- NETWORK_HOST_FROM_INPUT Medium
A file takes a URL or endpoint as input and has no fixed host list.
scripts/stress_search_cancellation.py, line 124
with urllib.request.urlopen(req, timeout=5) as resp:
Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.
If you think this grade is wrong, email [email protected] with the entry link and your evidence. We aim to acknowledge within two working days and decide within seven. If we confirm an error, we aim to correct it within 24 hours of confirming it. These are aims, not guarantees.
Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.
What was checked
Plain notes from the hygiene checks.
Permissions
Concern
can delete files.
PERMISSION_DELETE_FILES
scripts/stress_search_cancellation.py, line 68
boot_timeout: float = 600.0) -> tuple[subprocess.Popen, str]:
scripts/stress_search_cancellation.py, line 82
proc = subprocess.Popen(
scripts/stress_search_cancellation.py, line 137
def _kill_proc(proc: subprocess.Popen) -> None:
Show more
scripts/stress_search_cancellation.py, line 483
spawned_proc: subprocess.Popen | None = None
src/ida_pro_mcp/idalib_supervisor.py, line 193
process: subprocess.Popen | None = None
src/ida_pro_mcp/idalib_supervisor.py, line 279
process = subprocess.Popen(
src/ida_pro_mcp/installer.py, line 464
shutil.rmtree(path)
src/ida_pro_mcp/installer.py, line 466
os.remove(path)
src/ida_pro_mcp/ida_mcp/discovery.py, line 252
subprocess.Popen(
Install and update
Pass
No install-time script found, and dependencies are pinned or absent.
Network
Serious
accepts a host from input, with no fixed list in this file.
NETWORK_HOST_FROM_INPUT
scripts/stress_search_cancellation.py, line 124
with urllib.request.urlopen(req, timeout=5) as resp:
scripts/stress_search_cancellation.py, line 162
with urllib.request.urlopen(req, timeout=10) as resp:
scripts/stress_search_cancellation.py, line 189
with urllib.request.urlopen(req, timeout=client_timeout) as resp:
Show more
src/ida_pro_mcp/idalib_supervisor.py, line 653
with socket.create_connection(
src/ida_pro_mcp/ida_mcp/discovery.py, line 124
with socket.create_connection((host, port), timeout=timeout):
src/ida_pro_mcp/ida_mcp/rpc.py, line 123
"download_hint": f"Output truncated. Run: curl -o .ida-mcp/{output_id}.json {download_url}",
Secrets
Pass
No read of a credential file or secret environment variable found.
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Note
a file was over the read cap and was not fully read.
OBFUSCATION_FILE_OVER_READ_CAP
skills/idapython/docs/ida_hexrays.rst, line 1
ida_hexrays
skills/idapython/docs/ida_kernwin.rst, line 1
ida_kernwin
skills/idapython/docs/ida_typeinf.rst, line 1
ida_typeinf
Show more
tests/typed_fixture.elf, line 1
ELF >