← Home
RULES

Detection rules

Every Lucin detection rule: what it catches in an AI agent, why it matters, and how to fix it. 41 documented rules with severity and OWASP Agentic mapping.

docsbenchmarkslimitsruleschangelog

Each rule below has a stable ID that appears in every output format, so a finding in CI is the same object as a finding in your terminal. Severity is bounded by evidence: a finding with no witness and no source line is capped below HIGH, because a reader cannot verify it.

AG-001Unrestricted Shell/Code ExecutionCRITICALAG-002Data Exfiltration PathHIGHAG-003Unauthenticated MCP ServerHIGHAG-005aDatabase Access + Code ExecutionHIGHAG-005bCode Execution + Network AccessHIGHAG-006No Human Approval for Destructive ActionsHIGHAG-007Hardcoded Secret / CredentialHIGHAG-009Unlimited Sub-Agent SpawningHIGHAG-010No Rate Limiting on High-Risk ToolsMEDIUMAG-011Tool Description Injection / PoisoningHIGHAG-012Unencrypted MCP TransportMEDIUMAG-013Memory/RAG Poisoning RiskHIGHAG-013-T3Cryptographic Chain Compromise (T3)CRITICALAG-014Delegation Without OversightHIGHAG-015Supply Chain RiskHIGHAG-016Coding Agent: Unrestricted File System ScopeHIGHAG-017Browser Agent: Credential Store AccessHIGHAG-019Context Overflow: Multiple Unbounded Data ToolsMEDIUMAG-021Zero-Width Characters Detected (Invisible Content)HIGHAG-023Self-Modification: File Write Access to Own SourceHIGHAG-024High Cross-Origin Risk: Many MCP Servers ConnectedMEDIUMAG-025Tool ShadowingMEDIUMAG-026Ambient AuthorityCRITICALAG-027Prompt Leakage RiskHIGHAG-028Execution Without Telemetry/MonitoringHIGHAG-COMPCompositional RiskHIGHAG-CORSAgent HTTP Server: Wildcard CORS OriginHIGHAG-DESERIALIZEInsecure DeserializationCRITICALAG-DOCKER-EXECContainer Escape Vector: docker runCRITICALAG-ENV-FALLBACKHardcoded Secret as os.getenv() FallbackMEDIUMAG-FRAMEWORK-PINUnpinned Agent Framework DependencyMEDIUMAG-MCP-TOKENLEAKLLM API Key Passed to MCP ServerHIGHAG-NOAUTHAgent HTTP Server: No Authentication ConfiguredHIGHAG-PATH-TRAVERSALPath TraversalHIGHAG-RAG-NO-SANITIZERAG Injection: Unsanitized Vector Store ContentHIGHAG-SKILL-CHAINUndeclared High-Risk Capability ChainCRITICALAG-SKILL-EXTERNAL-INSTRUCTIONSUntrusted External Instructions FetchHIGHAG-SKILL-MANIFEST-GAPUndeclared Capabilities (Capability Disclosure Report)INFOAG-SQLSQL Injection via Tool ParameterCRITICALAG-SSRFServer-Side Request ForgeryHIGHAG-TRIFECTAInformation-Flow Exfiltration Path (Lethal Trifecta)CRITICAL

Coverage, honestly

41 rules are documented here. That is not the same as 41 rules running — lucin scan --list-rules prints the set that actually fires, and this page is generated from that same registry, so the two cannot drift. Documented but deliberately not registered: AG-013, AG-013-T3, AG-PATH-TRAVERSAL. A detector is registered only once its false-positive behaviour against the benign corpus is understood. Precision is chosen over recall, and what that costs is published on limits rather than hidden. What the rule set as a whole does and does not catch is measured on benchmarks and limits.

pip install lucin
lucin scan .