Scan path: C:\Users\gilad\Projects\warden\gallery\repos\langgraph\libs\langgraph
Scanned: 2026-04-10 23:07 UTC
Warden: v1.6.0 · Scoring model v4.3 · 17 dimensions (weighted) · 235 pts
🔒 Privacy guarantee
All data collected locally — nothing left this machine.
API keys: partial hashes only.
Log content: never stored.
📊 Scanned 119 files (119 Python) in langgraph across 5 scan layers
14
/ 100
34 / 235 raw
UNGOVERNED
Core Governance (11 / 100)
D1 Tool Inventory
0 / 25
D2 Risk Detection
0 / 20
CRITICAL Agent loop with LLM call has no exit condition — potential infinite loop
D3 Policy Coverage
6 / 20
D4 Credential Management
3 / 20
D5 Log Hygiene
2 / 10
MEDIUM print() used instead of structured logging
MEDIUM print() used instead of structured logging
MEDIUM print() used instead of structured logging
MEDIUM print() used instead of structured logging
MEDIUM print() used instead of structured logging
+ 3 more findings
D6 Framework Coverage
0 / 5
HIGH LangChain used without CallbackManager — no tool/chain observability
HIGH LangChain used without CallbackManager — no tool/chain observability
HIGH LangChain used without CallbackManager — no tool/chain observability
HIGH LangChain used without CallbackManager — no tool/chain observability
HIGH LangChain used without CallbackManager — no tool/chain observability
+ 40 more findings
Advanced Controls (14 / 50)
D7 Human-in-the-Loop
3 / 15
D8 Agent Identity
11 / 15
D9 Threat Detection
0 / 20
HIGH Empty exception handler — errors silently swallowed
HIGH Empty exception handler — errors silently swallowed
HIGH Empty exception handler — errors silently swallowed
HIGH Empty exception handler — errors silently swallowed
HIGH Empty exception handler — errors silently swallowed
+ 13 more findings
Ecosystem (8 / 55)
D10 Prompt Security
0 / 15
D11 Cloud / Platform
0 / 10
D12 LLM Observability
2 / 10
D13 Data Recovery
2 / 10
D14 Compliance Maturity
4 / 10
MEDIUM Unpinned AI dependency: langchain
MEDIUM Unpinned AI dependency: langchain
MEDIUM Unpinned AI dependency: langchain
MEDIUM Unpinned AI dependency: langchain
MEDIUM Unpinned AI dependency: langchain
+ 4 more findings
Unique Capabilities (1 / 30)
D15 Post-Exec Verification
0 / 10
HIGH Tool result assigned directly without verification
HIGH Tool result assigned directly without verification
D16 Data Flow Governance
0 / 10
D17 Adversarial Resilience
1 / 10
CRITICAL No content injection defense — hidden HTML/CSS/zero-width instructions pass to agents undetected. (86% attack success ra
CRITICAL No RAG poisoning protection — knowledge base documents not scanned for embedded instructions. (<0.1% contamination = >80
HIGH No behavioral trap detection — post-execution behavioral changes not monitored. (10/10 M365 Copilot attacks succeeded)
HIGH No approval integrity verification -- agent summaries for approval not cross-checked against actual actions. (Approval f
MEDIUM No adversarial testing evidence — no red team, no prompt injection tests
+ 2 more findings
Score reflects only what Warden can observe locally. Undetected controls are scored as 0, not assumed good. Dimensions are weighted by governance impact. Methodology: SCORING.md
Total Findings
90
4 CRITICAL · 67 HIGH
Tools Detected
0
None detected
Credentials
0
None detected
Governance Gaps
8
of 17 dimensions
Compliance Refs
9
EU AI Act / OWASP / MITRE
🛡 Governance Layer Detection0 tools detected · 17 dimensions
D1: Tool Inventory — none detected
MCP tool discovery, live catalog, schema completeness, auto-discovery
0 / 25 pts
D2: Risk Detection — none detected
Risk classification, semantic analysis, intent-parameter consistency
0 / 20 pts
D6: Framework Coverage — none detected
LangChain/AutoGen/CrewAI/custom framework detection
0 / 5 pts
D9: Threat Detection — none detected
Behavioral baselines, anomaly detection, cross-session tracking, kill switch
0 / 20 pts
D10: Prompt Security — none detected
Prompt injection detection, jailbreak prevention, content filtering
0 / 15 pts
D11: Cloud / Platform — none detected
Multi-cloud, marketplace, SSO/IdP, SIEM integration
0 / 10 pts
D15: Post-Exec Verification — none detected
Result validation, PASS/FAIL verdicts, failure fingerprinting
0 / 10 pts
D16: Data Flow Governance — none detected
Taint labels, data classification, cross-tool leakage prevention
0 / 10 pts
📊 Solutions Comparison2 rows · 17 dimensions · 235 max pts
Tool D1D2D3D4D5D6D7D8D9D10D11D12D13D14D15D16D17 /235 /100
Max pts252020201051515201510101010101010235
SharkRouter231818189514141814999999921491
Your Scan0063203110002240013414
SharkRouter per-dimension scores are proportional estimates from total score. Detected tool scores are totals only (per-dimension breakdown not available). Methodology: SCORING.md
🔎 Findings90 total
CRITICAL 4
CRITICAL D2
Agent loop with LLM call has no exit condition — potential infinite loop
...os\langgraph\libs\langgraph\langgraph\_internal\_queue.py:23
Add max_iterations, timeout, or explicit break condition
CRITICAL D5
No audit logging for tool calls detected
Add audit logging for all tool/agent executions
EU AI Act Article 12
CRITICAL D17
No content injection defense — hidden HTML/CSS/zero-width instructions pass to agents undetected. (86% attack success rate)
Deploy trap defense layer on tool results
EU AI Act Article 15OWASP LLM01MITRE AML.T0051
Show 1 more CRITICAL findings
CRITICAL D17
No RAG poisoning protection — knowledge base documents not scanned for embedded instructions. (<0.1% contamination = >80% attack success)
Deploy trap defense layer on tool results
EU AI Act Article 15OWASP LLM01MITRE AML.T0049
HIGH 67
HIGH D9
Empty exception handler — errors silently swallowed
...allery\repos\langgraph\libs\langgraph\langgraph\config.py:24
Log the exception or handle it explicitly
HIGH D9
Empty exception handler — errors silently swallowed
...ery\repos\langgraph\libs\langgraph\langgraph\constants.py:61
Log the exception or handle it explicitly
HIGH D9
Empty exception handler — errors silently swallowed
...y\repos\langgraph\libs\langgraph\langgraph\graph\state.py:745
Log the exception or handle it explicitly
Show 64 more HIGH findings
HIGH D9
Empty exception handler — errors silently swallowed
...repos\langgraph\libs\langgraph\langgraph\graph\_branch.py:77
Log the exception or handle it explicitly
HIGH D9
Empty exception handler — errors silently swallowed
...repos\langgraph\libs\langgraph\langgraph\graph\_branch.py:115
Log the exception or handle it explicitly
HIGH D15
Tool result assigned directly without verification
...repos\langgraph\libs\langgraph\langgraph\graph\_branch.py:166
Verify tool result status/validity before using
HIGH D9
Empty exception handler — errors silently swallowed
...\repos\langgraph\libs\langgraph\langgraph\pregel\_call.py:74
Log the exception or handle it explicitly
HIGH D9
Empty exception handler — errors silently swallowed
...os\langgraph\libs\langgraph\langgraph\pregel\_executor.py:85
Log the exception or handle it explicitly
HIGH D9
Empty exception handler — errors silently swallowed
...os\langgraph\libs\langgraph\langgraph\pregel\_executor.py:118
Log the exception or handle it explicitly
HIGH D9
Empty exception handler — errors silently swallowed
...os\langgraph\libs\langgraph\langgraph\pregel\_executor.py:210
Log the exception or handle it explicitly
HIGH D9
Empty exception handler — errors silently swallowed
...ry\repos\langgraph\libs\langgraph\langgraph\pregel\_io.py:51
Log the exception or handle it explicitly
HIGH D9
Empty exception handler — errors silently swallowed
...s\langgraph\libs\langgraph\langgraph\_internal\_fields.py:150
Log the exception or handle it explicitly
HIGH D9
Empty exception handler — errors silently swallowed
...s\langgraph\libs\langgraph\langgraph\_internal\_fields.py:160
Log the exception or handle it explicitly
HIGH D9
Empty exception handler — errors silently swallowed
...s\langgraph\libs\langgraph\langgraph\_internal\_future.py:24
Log the exception or handle it explicitly
HIGH D9
Empty exception handler — errors silently swallowed
...os\langgraph\libs\langgraph\langgraph\_internal\_queue.py:33
Log the exception or handle it explicitly
HIGH D9
Empty exception handler — errors silently swallowed
...langgraph\libs\langgraph\langgraph\_internal\_runnable.py:275
Log the exception or handle it explicitly
HIGH D9
Empty exception handler — errors silently swallowed
...langgraph\libs\langgraph\langgraph\_internal\_runnable.py:280
Log the exception or handle it explicitly
HIGH D9
Empty exception handler — errors silently swallowed
...langgraph\libs\langgraph\langgraph\_internal\_runnable.py:363
Log the exception or handle it explicitly
HIGH D9
Empty exception handler — errors silently swallowed
...langgraph\libs\langgraph\langgraph\_internal\_runnable.py:435
Log the exception or handle it explicitly
HIGH D15
Tool result assigned directly without verification
...langgraph\libs\langgraph\langgraph\_internal\_runnable.py:658
Verify tool result status/validity before using
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...\gallery\repos\langgraph\libs\langgraph\bench\__main__.py:4
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...allery\repos\langgraph\libs\langgraph\langgraph\config.py:5
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...gallery\repos\langgraph\libs\langgraph\langgraph\types.py:19
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...y\repos\langgraph\libs\langgraph\langgraph\graph\state.py:27
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...lery\repos\langgraph\libs\langgraph\langgraph\graph\ui.py:6
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...repos\langgraph\libs\langgraph\langgraph\graph\_branch.py:21
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...y\repos\langgraph\libs\langgraph\langgraph\graph\_node.py:7
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...\repos\langgraph\libs\langgraph\langgraph\pregel\debug.py:8
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...y\repos\langgraph\libs\langgraph\langgraph\pregel\main.py:32
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...pos\langgraph\libs\langgraph\langgraph\pregel\protocol.py:7
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...repos\langgraph\libs\langgraph\langgraph\pregel\remote.py:15
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...\repos\langgraph\libs\langgraph\langgraph\pregel\_algo.py:21
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...\repos\langgraph\libs\langgraph\langgraph\pregel\_call.py:13
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...\repos\langgraph\libs\langgraph\langgraph\pregel\_draw.py:7
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...os\langgraph\libs\langgraph\langgraph\pregel\_executor.py:16
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...\repos\langgraph\libs\langgraph\langgraph\pregel\_loop.py:24
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...\repos\langgraph\libs\langgraph\langgraph\pregel\_read.py:9
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...repos\langgraph\libs\langgraph\langgraph\pregel\_retry.py:12
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...epos\langgraph\libs\langgraph\langgraph\pregel\_runner.py:25
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...repos\langgraph\libs\langgraph\langgraph\pregel\_utils.py:10
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...repos\langgraph\libs\langgraph\langgraph\pregel\_write.py:11
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...s\langgraph\libs\langgraph\langgraph\_internal\_replay.py:10
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...langgraph\libs\langgraph\langgraph\_internal\_runnable.py:28
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...os\langgraph\libs\langgraph\langgraph\_internal\_serde.py:19
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...llery\repos\langgraph\libs\langgraph\tests\fake_tracer.py:4
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...ery\repos\langgraph\libs\langgraph\tests\memory_assert.py:7
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...\gallery\repos\langgraph\libs\langgraph\tests\messages.py:12
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...\repos\langgraph\libs\langgraph\tests\test_deprecation.py:7
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...\langgraph\libs\langgraph\tests\test_large_cases_async.py:12
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...pos\langgraph\libs\langgraph\tests\test_messages_state.py:4
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...nggraph\libs\langgraph\tests\test_parent_command_async.py:4
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...llery\repos\langgraph\libs\langgraph\tests\test_pregel.py:18
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...repos\langgraph\libs\langgraph\tests\test_pregel_async.py:22
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...repos\langgraph\libs\langgraph\tests\test_remote_graph.py:9
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...ery\repos\langgraph\libs\langgraph\tests\test_runnable.py:6
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...os\langgraph\libs\langgraph\tests\test_serde_allowlist.py:82
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...allery\repos\langgraph\libs\langgraph\tests\test_state.py:9
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...ry\repos\langgraph\libs\langgraph\tests\test_stream_v2.py:15
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...nggraph\libs\langgraph\tests\test_subgraph_persistence.py:13
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...h\libs\langgraph\tests\test_subgraph_persistence_async.py:15
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...\repos\langgraph\libs\langgraph\tests\test_time_travel.py:22
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...\langgraph\libs\langgraph\tests\test_time_travel_async.py:24
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...s\langgraph\libs\langgraph\tests\test_tracing_interops.py:10
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...epos\langgraph\libs\langgraph\tests\test_type_checking.py:6
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D6
LangChain used without CallbackManager — no tool/chain observability
...nggraph\libs\langgraph\tests\example_app\example_graph.py:3
Add CallbackManager with on_tool_start/on_chain_start handlers
EU AI Act Article 13
HIGH D17
No behavioral trap detection — post-execution behavioral changes not monitored. (10/10 M365 Copilot attacks succeeded)
Deploy trap defense layer on tool results
EU AI Act Article 14OWASP LLM07MITRE AML.T0051
HIGH D17
No approval integrity verification -- agent summaries for approval not cross-checked against actual actions. (Approval fatigue exploitation)
Deploy trap defense layer on tool results
EU AI Act Article 14OWASP LLM07MITRE AML.T0048
MEDIUM 19
MEDIUM D5
print() used instead of structured logging
...epos\langgraph\libs\langgraph\bench\fanout_to_subgraph.py:134
Use logging.* or structlog.* for structured, searchable logs
MEDIUM D5
print() used instead of structured logging
...ry\repos\langgraph\libs\langgraph\bench\pydantic_state.py:324
Use logging.* or structlog.* for structured, searchable logs
MEDIUM D5
print() used instead of structured logging
...allery\repos\langgraph\libs\langgraph\bench\sequential.py:48
Use logging.* or structlog.* for structured, searchable logs
Show 16 more MEDIUM findings
MEDIUM D5
print() used instead of structured logging
...gallery\repos\langgraph\libs\langgraph\bench\wide_dict.py:148
Use logging.* or structlog.* for structured, searchable logs
MEDIUM D5
print() used instead of structured logging
...allery\repos\langgraph\libs\langgraph\bench\wide_state.py:160
Use logging.* or structlog.* for structured, searchable logs
MEDIUM D5
print() used instead of structured logging
...y\repos\langgraph\libs\langgraph\langgraph\pregel\main.py:3645
Use logging.* or structlog.* for structured, searchable logs
MEDIUM D5
print() used instead of structured logging
...y\repos\langgraph\libs\langgraph\langgraph\pregel\main.py:3655
Use logging.* or structlog.* for structured, searchable logs
MEDIUM D14
Unpinned AI dependency: langchain
...den\gallery\repos\langgraph\libs\langgraph\pyproject.toml:37
Pin version: langchain==<specific_version>
MEDIUM D14
Unpinned AI dependency: langchain
...den\gallery\repos\langgraph\libs\langgraph\pyproject.toml:38
Pin version: langchain==<specific_version>
MEDIUM D14
Unpinned AI dependency: langchain
...den\gallery\repos\langgraph\libs\langgraph\pyproject.toml:39
Pin version: langchain==<specific_version>
MEDIUM D14
Unpinned AI dependency: langchain
...den\gallery\repos\langgraph\libs\langgraph\pyproject.toml:40
Pin version: langchain==<specific_version>
MEDIUM D14
Unpinned AI dependency: langchain
...den\gallery\repos\langgraph\libs\langgraph\pyproject.toml:41
Pin version: langchain==<specific_version>
MEDIUM D14
Unpinned AI dependency: langchain
...den\gallery\repos\langgraph\libs\langgraph\pyproject.toml:42
Pin version: langchain==<specific_version>
MEDIUM D14
Unpinned AI dependency: langchain
...den\gallery\repos\langgraph\libs\langgraph\pyproject.toml:43
Pin version: langchain==<specific_version>
MEDIUM D14
Unpinned AI dependency: langchain
...den\gallery\repos\langgraph\libs\langgraph\pyproject.toml:128
Pin version: langchain==<specific_version>
MEDIUM D14
Unpinned AI dependency: langchain
...nggraph\libs\langgraph\tests\example_app\requirements.txt:1
Pin version: langchain==<specific_version>
MEDIUM D17
No adversarial testing evidence — no red team, no prompt injection tests
Implement adversarial testing for agent systems
MEDIUM D17
No tool-call attack simulation — agent tool calls not tested against adversarial inputs
Implement adversarial testing for agent systems
MEDIUM D17
No multi-agent chaos engineering — agent swarms not stress tested
Implement adversarial testing for agent systems
💡 Recommendationsordered by score impact
#1
Establish a live tool inventory +25 pts
No tool catalog detected. Without a centralized inventory of MCP tools and their schemas, governance policies have nothing to enforce against. Deploy a tool registry with auto-discovery.
⚠ The Workaround Tax
Stop paying the Workaround Tax. Relying on prompt-filters and out-of-band monitoring forces your developers to write manual security logic scattered across every agent and service. A centralized gateway enforces policy automatically — at the interception layer, on every tool call, without code changes in your agents.
Current state
14/ 100
✗ UNGOVERNED
D1 Tool Inventory
0/25
D2 Risk Detection
0/20
D9 Threat Detection
0/20
D4 Credential Management
3/20
D10 Prompt Security
0/15
+ SharkRouter (full deployment)
91/ 100
✓ GOVERNED
D1 Tool Inventory
23 +23
D2 Risk Detection
18 +18
D9 Threat Detection
18 +18
D4 Credential Management
18 +15
D10 Prompt Security
14 +14
* Projection based on SharkRouter's estimated score. Actual results may vary.  sharkrouter.ai → 14 → 91 · +77 pts
#2
Deploy risk classification for tool calls +20 pts
No risk scoring on tool invocations. Every tool call carries the same implicit trust level. Classify tools by risk (destructive, financial, exfiltration) and enforce approval gates for high-risk categories. (1 finding in this dimension)
#3
Deploy behavioral detection and kill switch +20 pts
No behavioral baselines, no anomaly detection, no auto-suspend capability. A compromised agent can operate indefinitely. Salami slicing across sessions is undetectable. (18 findings in this dimension)
#4
Move credentials to a secrets manager +17 pts
API keys or credentials found in source code. Move to HashiCorp Vault, AWS Secrets Manager, or environment-level secret stores. Rotate all exposed keys immediately. Add .env to .gitignore.
#5
Add prompt injection detection +15 pts
No prompt injection or jailbreak prevention detected. Deploy content filtering at the prompt layer to catch injection attacks before they reach agent logic.
Generated by Warden v1.6.0 · Open Source · MIT License · github.com/sharkrouter/warden
Scoring model v4.3 · 17 weighted dimensions · 235 pts · methodology in SCORING.md
Scan data stays on your machine. Email delivery is opt-in only.
When opted in: score + metadata only. Never: keys, logs, paths, or PII.
Privacy policy · To enforce policies on what Warden found → Explore what 91/100 looks like →