T09 · Insecure Skill Coding Practices
- Location
scripts/ida_mcp_client.py:31- Finding
Unrestricted plaintext MCP endpoint permits analysis-data disclosure and response spoofing
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly coherent for IDA reverse engineering, but it deserves Review because its helper can invoke arbitrary IDA MCP tools and can send analysis data to any configured HTTP MCP endpoint.
Install only if you expect the agent to actively control an IDA Pro MCP session. Keep IDA_MCP_URL unset or restricted to trusted loopback unless you have authenticated HTTPS transport, and review batch rename/comment/type operations before use because they persist in the IDA database and project notes.
scripts/ida_mcp_client.py:31Unrestricted plaintext MCP endpoint permits analysis-data disclosure and response spoofing
Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.
req = urllib.request.Request(
URL, data=json.dumps(payload).encode(), headers=headers, method="POST"
)
with urllib.request.urlopen(req, timeout=120) as resp:
sid = resp.headers.get("Mcp-Session-Id")
if sid:
_session_id = sid
Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.
headers["Mcp-Session-Id"] = _session_id
req = urllib.request.Request(URL, data=json.dumps(payload).encode(),
headers=headers, method="POST")
urllib.request.urlopen(req, timeout=30)
except Exception:
pass
The declared purpose says this is a reverse-engineering workflow/norms skill, but the content instructs use of a generic client that can call arbitrary ida-pro-mcp tools, batch requests, and maintain a session over HTTP/JSON-RPC. That mismatch is dangerous because reviewers or orchestration policy may treat it as passive guidance while it actually enables broad operational control over a local analysis service.
The entire skill description is written only in Chinese, and there is no indication that users may choose another language or that the skill is intentionally limited to a Chinese-speaking context. This creates a language/locale policy concern because the skill effectively forces a specific language without opt-in.
The skill references network access to a local unauthenticated MCP endpoint and environment-dependent local scripts, but it does not declare any explicit tool scope or allowed-tools boundary. That makes the effective capability broader than the metadata suggests and increases the chance an agent can invoke unintended tooling or access local resources without clear policy constraints.
The trigger condition is extremely broad: essentially any task involving IDA MCP, decompilation, crash analysis, malware analysis, protocol reversing, CTF, or internal audit causes the skill to load. Overbroad activation increases the chance the skill influences unrelated tasks, expands access to local MCP/networked capabilities by default, and makes accidental misuse more likely.
No suspicious patterns detected.