-
Notifications
You must be signed in to change notification settings - Fork 2
security: QUARANTINE_DENIED does not cover MCP tool namespace #1876
Copy link
Copy link
Closed
Labels
bugSomething isn't workingSomething isn't workingsecuritySecurity-related issueSecurity-related issue
Description
Summary
QUARANTINE_DENIED in TrustGateExecutor only lists native tool IDs (e.g. bash, write, fetch). MCP tools are registered with a server-prefixed ID such as mcp_filesystem__write_file and are never matched by the deny list.
A quarantined skill can instruct the LLM to use an MCP filesystem or shell tool, bypassing all QUARANTINE_DENIED restrictions entirely.
Reproduction
- Configure an MCP server with a file-write tool (e.g.
mcp_filesystem__write_file) - Set a skill's trust level to
Quarantined - Activate the skill and observe that the LLM can call
mcp_filesystem__write_filewithout aToolError::Blocked
Impact
Quarantined skills can perform file writes, shell execution, or network access through MCP tools, defeating the purpose of the quarantine tier.
Proposed Fix
Check MCP tool capabilities at registration time in McpManager and either:
- Reject dangerous MCP tools when
effective_trust = Quarantinedat dispatch time inTrustGateExecutorusing a prefix/capability check, or - Add a per-server capability classification (safe / dangerous) to
McpTooland gate on it incheck_trust()
Related
- PR implementing QUARANTINE_DENIED fix: issue security: malicious skill trust tier enforcement (community skill security empirical study) #1853
crates/zeph-tools/src/trust_gate.rs—QUARANTINE_DENIEDlistcrates/zeph-mcp/src/manager.rs— MCP tool registration
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingsecuritySecurity-related issueSecurity-related issue