MEDIUMHidden zero-width characters detectedtests/test_comment_post.py:90 · Hidden zero-width characters detected — may conceal contentFix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.
AST07 MEDIUMPython subprocess execution detectedmcp_doctor/analyzer.py:2649 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05 MEDIUMMCP server using network transport (SSE/HTTP)tests/test_analyzer.py:2631 · MCP server using network transport (SSE/HTTP) — data sent over networkFix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.
AST04 MEDIUMPython subprocess execution detectedtests/test_fix.py:182 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05 MEDIUMPython subprocess execution detectedtests/test_analyzer.py:1655 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05 MEDIUMPython subprocess execution detectedtests/test_analyzer.py:1667 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05 MEDIUMPython subprocess execution detectedmcp_doctor/guard.py:517 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05 MEDIUMPython subprocess execution detectedtests/test_analyzer.py:1712 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05 MEDIUMPython subprocess execution detectedtests/test_analyzer.py:1730 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05 MEDIUMProcess kill commandmcp_doctor/fuzz/report.py:209 · Process kill command — agent can terminate processesFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05 MEDIUMPython subprocess execution detectedtests/test_analyzer.py:440 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05 MEDIUMMCP server using network transport (SSE/HTTP)mcp_doctor/analyzer.py:260 · MCP server using network transport (SSE/HTTP) — data sent over networkFix: Namespace tool names and keep tool descriptions literal; no instructions to the agent inside them.
AST04 MEDIUMPython subprocess execution detectedtests/test_fix.py:565 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05 MEDIUMnpx invocation of non-well-known packagemcp_doctor/fuzz/cli.py:41 · npx invocation of non-well-known package — may execute untrusted codeFix: Pin versions and sources; vendor anything fetched at install time.
AST06 MEDIUMPython subprocess execution detectedtests/test_fix.py:452 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05 MEDIUMPython subprocess execution detectedmcp_doctor/guard.py:979 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05 MEDIUMPython subprocess execution detectedtests/test_fix.py:560 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05 MEDIUMHidden zero-width characters detectedtests/test_comment_post.py:73 · Hidden zero-width characters detected — may conceal contentFix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.
AST07 MEDIUMPython subprocess execution detectedtests/test_fix.py:178 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05 MEDIUMProcess kill commandmcp_doctor/fuzz/engine.py:16 · Process kill command — agent can terminate processesFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05 MEDIUMPython subprocess execution detectedtests/test_guard.py:40 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05 MEDIUMPython subprocess execution detectedtests/test_guard.py:366 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05 MEDIUMURL using raw IP addresstests/test_guard.py:481 · URL using raw IP address — may bypass domain-based filteringFix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07 MEDIUMGitHub token pattern detectedtests/test_guard.py:256 · GitHub token pattern detected — possible hardcoded or harvested tokenFix: Never read or enumerate credential locations; accept a documented environment variable instead.
AST03 MEDIUMURL using raw IP addresstests/test_guard_hook.py:331 · URL using raw IP address — may bypass domain-based filteringFix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07 MEDIUMFile permission modification commandtests/test_guard_hook.py:98 · File permission modification command — agent changes file ownership/permissionsFix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.
AST05 MEDIUMURL using raw IP addresstests/test_guard.py:465 · URL using raw IP address — may bypass domain-based filteringFix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07 MEDIUMURL using raw IP addresstests/test_guard_hook.py:320 · URL using raw IP address — may bypass domain-based filteringFix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07 MEDIUMPipe-to-shell patterntests/test_guard_hook.py:97 · Pipe-to-shell pattern — downloads and immediately executes remote codeFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST06 MEDIUMURL using raw IP addresstests/test_guard.py:33 · URL using raw IP address — may bypass domain-based filteringFix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07 MEDIUMPython subprocess execution detectedtests/test_guard.py:30 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05 MEDIUMRemote installer piped to shelltests/test_guard_hook.py:196 · Remote installer piped to shellFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST07 MEDIUMRemote installer piped to shelltests/test_guard_hook.py:92 · Remote installer piped to shellFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST07 MEDIUMPython subprocess execution detectedtests/test_guard_hook.py:257 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05 MEDIUMURL using raw IP addresstests/test_guard.py:365 · URL using raw IP address — may bypass domain-based filteringFix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07 MEDIUMPipe-to-shell patterntests/test_guard_hook.py:92 · Pipe-to-shell pattern — downloads and immediately executes remote codeFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST06 MEDIUMRemote installer piped to shelltests/test_guard_hook.py:97 · Remote installer piped to shellFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST07 MEDIUMURL using raw IP addresstests/test_guard_hook.py:328 · URL using raw IP address — may bypass domain-based filteringFix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07 MEDIUMPrompting user to enter sensitive credentialstests/test_guard_hook.py:67 · Prompting user to enter sensitive credentials — social engineeringFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST03 MEDIUMOutbound HTTP to raw IP addresstests/test_guard.py:33 · Outbound HTTP to raw IP address — may bypass domain-based monitoringFix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07 MEDIUMPython subprocess execution detectedtests/test_guard_hook.py:162 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05 MEDIUMPython subprocess execution detectedtests/test_guard_hook.py:275 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05 MEDIUMOutbound HTTP to raw IP addresstests/test_guard.py:365 · Outbound HTTP to raw IP address — may bypass domain-based monitoringFix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07 MEDIUMOutbound HTTP to raw IP addresstests/test_guard.py:481 · Outbound HTTP to raw IP address — may bypass domain-based monitoringFix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07 MEDIUMOutbound HTTP to raw IP addresstests/test_guard.py:465 · Outbound HTTP to raw IP address — may bypass domain-based monitoringFix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07 MEDIUMOutbound HTTP to raw IP addresstests/test_guard_hook.py:328 · Outbound HTTP to raw IP address — may bypass domain-based monitoringFix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07 MEDIUMAccess to sensitive file pathstests/test_guard_hook.py:34 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05 MEDIUMDestructive command against a filesystem root or devicetests/test_scan_request.py:50 · Destructive command against a filesystem root or deviceFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05 MEDIUMStripe-like API key pattern detectedtests/test_rs_analyzer.py:302 · Stripe-like API key pattern detected — possible hardcoded or harvested keyFix: Never read or enumerate credential locations; accept a documented environment variable instead.
AST03 MEDIUMDestructive file system command detectedtests/test_scan_request.py:50 · Destructive file system command detectedFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05 MEDIUMAccess to sensitive file pathstests/test_guard_hook.py:189 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05 MEDIUMOutbound HTTP to raw IP addresstests/test_guard_hook.py:320 · Outbound HTTP to raw IP address — may bypass domain-based monitoringFix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07 MEDIUMOutbound HTTP to raw IP addresstests/test_guard_hook.py:331 · Outbound HTTP to raw IP address — may bypass domain-based monitoringFix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07 MEDIUMAccess to sensitive file pathstests/test_guard_hook.py:210 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05 MEDIUMPython subprocess execution detectedtests/test_security_analyzer.py:250 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05 MEDIUMPython subprocess execution detectedtests/test_security_analyzer.py:294 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05 MEDIUMPipe-to-shell patterntests/test_guard_hook.py:196 · Pipe-to-shell pattern — downloads and immediately executes remote codeFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST06 MEDIUMStripe-like API key pattern detectedtests/test_rs_analyzer.py:301 · Stripe-like API key pattern detected — possible hardcoded or harvested keyFix: Never read or enumerate credential locations; accept a documented environment variable instead.
AST03 MEDIUMPython subprocess execution detectedtests/test_security_analyzer.py:1058 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05 MEDIUMStripe-like API key pattern detectedtests/test_rs_analyzer.py:288 · Stripe-like API key pattern detected — possible hardcoded or harvested keyFix: Never read or enumerate credential locations; accept a documented environment variable instead.
AST03 MEDIUMAccess to sensitive file pathstests/test_guard_hook.py:224 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05 MEDIUMnpx invocation of non-well-known packagetests/test_guard_hook.py:237 · npx invocation of non-well-known package — may execute untrusted codeFix: Pin versions and sources; vendor anything fetched at install time.
AST06 MEDIUMStripe-like API key pattern detectedtests/test_rs_analyzer.py:332 · Stripe-like API key pattern detected — possible hardcoded or harvested keyFix: Never read or enumerate credential locations; accept a documented environment variable instead.
AST03 MEDIUMAccess to sensitive file pathstests/test_scan_request.py:55 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05 MEDIUMPython subprocess execution detectedtests/test_security_analyzer.py:1000 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05 MEDIUMPython subprocess execution detectedtests/test_suggest.py:141 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05 LOWPrompt injection attemptREADME.md:448 · Prompt injection attempt — 'ignore previous instructions' · informational: not an instruction fileFix: Keep SKILL.md to visible, descriptive text. Remove comments and encoded text that address the agent.
AST01 MEDIUMOutbound HTTP to raw IP addresstests/test_verdict.py:212 · Outbound HTTP to raw IP address — may bypass domain-based monitoringFix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07 MEDIUMStripe-like API key pattern detectedtests/test_security_analyzer.py:1221 · Stripe-like API key pattern detected — possible hardcoded or harvested keyFix: Never read or enumerate credential locations; accept a documented environment variable instead.
AST03 MEDIUMPython subprocess execution detectedtests/test_suggest.py:91 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05 MEDIUMPython subprocess execution detectedtests/test_security_analyzer.py:1064 · Python subprocess execution detectedFix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05 MEDIUMURL using raw IP addresstests/test_verdict.py:212 · URL using raw IP address — may bypass domain-based filteringFix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07 Not checked against OSV yet; the weekly check has not reached this version.