Skip to main content

Detectors & Rules

The Igris Scanner ships with 20 detectors covering 91 rules. Each detector focuses on a specific attack surface. All detectors run in parallel during a scan.

Credential Scanner

Detects secrets, tokens, and credentials hardcoded in MCP server configurations.
RuleSeverityWhat it detects
AG-CRD-001CriticalHardcoded API keys (AWS, GitHub, OpenAI, Stripe, etc.)
AG-CRD-002HighHigh-entropy strings (Shannon entropy > 4.5)
AG-CRD-003CriticalJWT tokens in config values
AG-CRD-004CriticalDatabase connection strings with embedded passwords
AG-CRD-005CriticalPrivate key material (RSA, EC, OpenSSH, DSA)
Scans: args, env values, and connection strings. Remediation: Use environment variable references ($SECRET_NAME) instead of hardcoded values.

Command Injection

Detects shell injection vectors in MCP server command configurations.
RuleSeverityWhat it detects
AG-CMD-001CriticalShell metacharacters (;, &&, ||, backticks, $())
AG-CMD-002HighUnvalidated args with interpolation (${...}, $VAR, %VAR%)
AG-CMD-003CriticalShell wrapper commands (sh -c, bash -c, cmd /c)
AG-CMD-004HighEnvironment variable injection via shell metacharacters
Scans: command field and args array.

CVE Scanner

Scans MCP server packages against online CVE databases to detect known vulnerabilities in real time. The scanner extracts package names and versions from your config, queries vulnerability databases, and reports any matches with severity, CVE IDs, and remediation guidance.
RuleSeverityWhat it detects
AG-CVE-001VariesKnown vulnerable package version (matched against online CVE databases)
AG-CVE-002MediumUnpinned version for package with known vulnerabilities
AG-CVE-003LowDeprecated package

Path Traversal

Detects directory traversal and sensitive path access in MCP server arguments.
RuleSeverityWhat it detects
AG-PTH-001HighPath traversal sequences (../)
AG-PTH-002MediumAbsolute paths to sensitive directories (/etc, /root, /proc)
AG-PTH-003MediumSymlink-susceptible patterns (./)
AG-PTH-004LowHome directory access (~, $HOME, %USERPROFILE%)

OAuth Config Checker

Validates OAuth configuration in MCP servers for common misconfigurations.
RuleSeverityWhat it detects
AG-AUTH-001CriticalHardcoded client secret (should be env reference)
AG-AUTH-002HighOverly broad OAuth scopes (*, admin, >5 scopes)
AG-AUTH-003MediumMissing PKCE configuration
AG-AUTH-004HighHTTP redirect URI (non-HTTPS, excluding localhost)
AG-AUTH-005MediumWildcard redirect URI (open redirect risk)

Tool Poisoning

Detects attempts to manipulate AI agents through malicious tool definitions.
RuleSeverityWhat it detects
AG-POISON-001CriticalHidden instructions in tool descriptions (“ignore”, “override”, “system prompt”)
AG-POISON-002HighTool name mimicking system tools (bash, exec, eval, sudo, admin)
AG-POISON-003MediumSuspiciously long tool description (>500 chars)
AG-POISON-004HighUnicode homoglyph attack in tool name (e.g., Cyrillic ‘a’ vs ASCII ‘a’)
AG-POISON-005CriticalInjection patterns in inputSchema string values

Privilege Escalation

Detects elevated privilege configurations that expand the attack surface.
RuleSeverityWhat it detects
AG-PRIV-001CriticalRunning as root or with --privileged flag
AG-PRIV-002HighExcessive filesystem permissions (Docker volumes mounting /etc, /root)
AG-PRIV-003MediumOverly broad network access (Docker host networking)
AG-PRIV-004HighDangerous Linux capabilities (SYS_ADMIN, NET_ADMIN, ALL)
AG-PRIV-005Criticalsudo or doas in command/args

Rate Limit Checker

Validates rate limiting configuration for network-exposed MCP servers.
RuleSeverityWhat it detects
AG-RATE-001MediumNo rate limiting on network-exposed server (SSE/HTTP transport)
AG-RATE-002MediumUnreasonably high rate limit (>1000 req/min)
AG-RATE-003HighMissing rate limit on mutation tools (write, create, delete, execute)

Audit Logging Checker

Validates logging configuration for compliance and forensics readiness.
RuleSeverityWhat it detects
AG-AUDIT-001MediumNo logging configuration
AG-AUDIT-002LowLogging to stdout only (non-persistent)
AG-AUDIT-003HighMissing logging on sensitive tools (write/delete/execute)
AG-AUDIT-004LowNo log rotation configured

Version Pinning Checker

Ensures MCP server dependencies are pinned to specific versions to prevent supply chain attacks.
RuleSeverityWhat it detects
AG-VER-001HighUnpinned Docker image (:latest or no tag)
AG-VER-002MediumUnpinned npx/bunx package reference
AG-VER-003MediumGit reference without commit SHA (branches/tags mutable)
AG-VER-004LowSemver range instead of exact version (^, ~, >=)

SSRF Scanner

Detects Server-Side Request Forgery vectors in MCP server URLs and configurations.
RuleSeverityWhat it detects
AG-SSRF-001CriticalInternal network URL or cloud metadata endpoint (169.254.169.254, private IPs)
AG-SSRF-002HighLocalhost URL on network transport (proxy misconfiguration risk)
AG-SSRF-003HighURL targeting known service ports (Redis 6379, PostgreSQL 5432, etc.)
AG-SSRF-004MediumDangerous URL schemes (file://, gopher://, dict://, ftp://)
AG-SSRF-005HighCloud metadata endpoint referenced in env vars or args

Network Exposure

Detects insecure network bindings, missing TLS, disabled certificate validation, and broad CORS.
RuleSeverityWhat it detects
AG-NET-001CriticalServer listening on 0.0.0.0 (all interfaces exposed)
AG-NET-002HighHTTP or WebSocket URL without TLS for non-localhost addresses
AG-NET-003HighTLS certificate validation disabled (--insecure, NODE_TLS_REJECT_UNAUTHORIZED=0)
AG-NET-004MediumDNS rebinding vulnerability (hostname on network transport)
AG-NET-005MediumWildcard CORS configuration (Access-Control-Allow-Origin: *)

Shadowing & Confusion

Detects configurations where servers or tools can shadow, override, or confuse each other. This detector cross-references all servers in the config.
RuleSeverityWhat it detects
AG-SHADOW-001CriticalDuplicate tool names across different servers (interception risk)
AG-SHADOW-002HighTool names with high similarity across servers (typosquatting)
AG-SHADOW-003MediumServer name resembling a well-known MCP service (impersonation)
AG-SHADOW-004HighTool name overriding built-in AI capabilities (search, code, memory)

Data Exfiltration

Detects tool configurations that could enable unauthorized data exfiltration to external endpoints.
RuleSeverityWhat it detects
AG-EXFIL-001CriticalTool with unconstrained URL/endpoint parameter (no domain allowlist)
AG-EXFIL-002HighHTTP client tool with unconstrained URL input
AG-EXFIL-003HighServer with both read and send capabilities (read-then-exfiltrate chain)
AG-EXFIL-004CriticalDNS exfiltration vector (unconstrained hostname/domain parameter)

Rug Pull

Detects MCP server configurations vulnerable to rug pull attacks — where a server changes behavior after gaining initial trust.
RuleSeverityWhat it detects
AG-RUG-001HighRemote server with no integrity verification (no content hash or cert pinning)
AG-RUG-002Highnpx/bunx pulls latest version on every run (no pinned version)
AG-RUG-003MediumDynamic tool schemas on remote transport (schemas can change between sessions)
AG-RUG-004CriticalServer URL on free/ephemeral hosting (ngrok, replit, glitch, dynamic DNS)
AG-RUG-005MediumGit-based server without commit SHA pinning

Resource Exhaustion

Detects missing resource limits that could lead to denial of service.
RuleSeverityWhat it detects
AG-RSRC-001MediumNo timeout configured for network server
AG-RSRC-002MediumNo memory limit on Docker container
AG-RSRC-003LowNo CPU limit on Docker container
AG-RSRC-004HighTool with unbounded input size (no maxLength/maxItems)
AG-RSRC-005MediumNo process limit (—pids-limit) on Docker container

Excessive Permissions

Detects tools and servers requesting more access than their described functionality requires.
RuleSeverityWhat it detects
AG-PERM-001HighRead-only tools running with root/sudo permissions
AG-PERM-002MediumServer exposes more than 20 tools (overly broad scope)
AG-PERM-003HighWildcard or root path in allowedPaths
AG-PERM-004MediumServer has both network access and filesystem access
AG-PERM-005HighTool accepts arbitrary command/code input without constraints

Response Injection

Detects tool configurations vulnerable to prompt injection through tool responses — where external content returned by a tool manipulates the AI agent.
RuleSeverityWhat it detects
AG-INJECT-001HighTool fetches external web content (fetch, scrape, browse)
AG-INJECT-002HighTool reads user-controlled file content
AG-INJECT-003MediumTool queries database and returns raw results
AG-INJECT-004CriticalTool executes code and returns output (eval, exec, repl)
AG-INJECT-005MediumNo output sanitization indicated for external-facing tools

Cross-Server Leakage

Detects configurations where one MCP server can access another server’s data, credentials, or network. This detector cross-references all servers in the config.
RuleSeverityWhat it detects
AG-XSRV-001HighShared credential environment variables across servers
AG-XSRV-002HighOverlapping Docker volumes or filesystem paths
AG-XSRV-003MediumMultiple servers sharing the same Docker network
AG-XSRV-004CriticalServer with network access can reach another server’s localhost endpoint
AG-XSRV-005MediumShared working directory or temp path between servers

Transport Security

Detects insecure transport configurations including missing TLS, certificate issues, and network tunneling that bypasses encryption.
RuleSeverityWhat it detects
AG-TLS-001CriticalSSE/HTTP transport without TLS (plaintext MCP traffic)
AG-TLS-002HighCustom CA certificate combined with TLS verification bypass
AG-TLS-003MediumStdio transport with SSH/socat/netcat tunneling (bypasses TLS)
AG-TLS-004HighUnencrypted WebSocket (ws:// instead of wss://)
AG-TLS-005MediumNo certificate pinning for remote HTTPS server

Severity Levels

LevelColorMeaning
CriticalRedImmediate exploitation risk — fix before deploying
HighMagentaSerious vulnerability — fix before production use
MediumYellowNotable weakness — should be addressed
LowCyanMinor concern — fix when convenient
InfoGrayInformational — no security impact