agent-audit-kit 0.3.46__tar.gz → 0.3.48__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/CHANGELOG.cves.md +13 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/CHANGELOG.md +53 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/PKG-INFO +13 -13
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/README.md +12 -12
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/action.yml +1 -1
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/__init__.py +3 -3
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/engine.py +2 -1
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/rules/builtin.py +131 -18
- agent_audit_kit-0.3.48/agent_audit_kit/scanners/mcp_ssrf_toolarg.py +296 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/mcp_stateless_migration.py +7 -5
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/supply_chain.py +119 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/ci-cd.md +2 -2
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/coverage/owasp-agentic-top10.md +3 -3
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/coverage/owasp-mcp-top10.md +3 -3
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/getting-started.md +2 -2
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/launch/hn.md +2 -2
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/launch/reddit.md +3 -3
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/launch/x-thread.md +2 -2
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/owasp-agentic-coverage.md +3 -3
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/presets/mcp-ox-2026-04.md +1 -1
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/public/owasp-agentic-coverage.json +39 -6
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/pyproject.toml +1 -1
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/rules.json +83 -2
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/site/coverage/index.html +2 -2
- agent_audit_kit-0.3.48/tests/fixtures/mcp_ssrf/safe_tool.py +28 -0
- agent_audit_kit-0.3.48/tests/fixtures/mcp_ssrf/vulnerable_tool.py +20 -0
- agent_audit_kit-0.3.48/tests/test_mcp_gateway_registry_cve_2026_14471.py +61 -0
- agent_audit_kit-0.3.48/tests/test_mcp_ssrf_toolarg.py +201 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_phase5.py +1 -1
- agent_audit_kit-0.3.48/tests/test_serena_cve_2026_49471.py +73 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/.agent-audit-kit.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/.claude/auto-memory/config.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/.editorconfig +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/.github/FUNDING.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/.github/dependabot.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/.github/workflows/badge-ox-coverage.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/.github/workflows/ci.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/.github/workflows/codeql.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/.github/workflows/coverage-page.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/.github/workflows/cve-watcher.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/.github/workflows/docker-nightly.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/.github/workflows/mcp-security-index.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/.github/workflows/release.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/.github/workflows/scorecard.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/.github/workflows/self-scan.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/.github/workflows/sync-repo-metadata.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/.github/workflows/sync-rule-count.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/.gitignore +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/.pre-commit-config.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/.pre-commit-hooks.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/CLAUDE.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/CLAUDE_PROMPT.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/CODE_OF_CONDUCT.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/CONTRIBUTING.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/DEEP_ANALYSIS.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/Dockerfile +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/LICENSE +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/ROADMAP_2026.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/SECURITY.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/advisories.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/autofix/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/autofix/langgraph_toolnode.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/bundle.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/checks/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/checks/economic_drift.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/checks/openclaw.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/cli.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/cli_modules/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/cli_modules/rule_lint.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/corpus/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/corpus/manifest.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/coverage.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/data/aivss-v08-defaults.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/data/fhi_universal_suffixes.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/data/ipi_wild_payloads_2026_04.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/data/ox-cve-manifest.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/data/prisma-airs-aak-map.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/data/prisma-airs-catalog.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/data/toxic_flow_pairs.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/data/vuln_db.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/diff.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/discovery.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/feeds/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/fix.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/ide/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/ide/lsp_diag.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/integrations/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/integrations/notify.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/llm_scan.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/models.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/output/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/output/aicm.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/output/compliance.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/output/console.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/output/json_report.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/output/owasp_report.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/output/pdf_report.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/output/pr_summary.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/output/sarif.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/output/sbom.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/parity/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/pinning.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/presets/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/presets/mcp-ox-2026-04.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/proxy/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/proxy/interceptor.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/remediation/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/remediation/engine.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/rules/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/sanitizers/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/sanitizers/crewai.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/sanitizers/deepseek.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/sarif/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/sarif/diff.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/_helpers.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/a2a_protocol.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/agent_config.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/agent_harness_shared_state.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/argv_toctou.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/crewai_rce_chain.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/deepseek_v4_tool_injection.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/dns_rebind.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/docsgpt_transport_flip.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/eu_ai_act_art15_locale.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/gha_hardening.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/gpt_researcher_transport_flip.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/healthcare_ai.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/hook_injection.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/hook_rce.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/india_pii.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/ipi_wild_corpus.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/langchain_prompt_loader.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/langchain_vuln.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/langgraph_toolnode.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/legal_compliance.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/llm_sql_rce.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/log_injection.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/log_token_leak.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/marketplace_manifest.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/mcp_atlassian.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/mcp_auth_pathtraversal.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/mcp_auth_patterns.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/mcp_config.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/mcp_env_placeholder_exfil.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/mcp_fhi.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/mcp_http_noauth_server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/mcp_inspector_cve.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/mcp_marketplace_fetch.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/mcp_middleware.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/mcp_noauth_default.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/mcp_sampling_capability.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/mcp_sdk_hardening.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/mcp_server_auth.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/mcp_server_card.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/mcp_stdio_launcher.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/mcp_stdio_params.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/mcp_tasks.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/mcp_tool_unsafe_eval.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/mcp_toolgate_asymmetry.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/mcp_tunnel.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/metis_pomdp.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/neo4j_cve.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/oauth_misconfig.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/oauth_surface.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/openapi_smells.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/openclaw_privesc.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/pin_drift.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/project_deal_drift.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/prtitle_ipi.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/routines.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/rust_pattern_scan.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/rust_scan.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/sandbox_self_disable.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/secret_exposure.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/shared_resource_authz.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/skill_lifecycle_attribution.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/skill_poisoning.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/skill_untrusted_exec_path.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/social_agent_hijack.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/splunk_mcp_config.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/ssrf_patterns.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/ssrf_redirect.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/ssrf_toctou.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/stainless_lineage.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/state_privacy.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/stdio_injection.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/taint_analysis.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/tool_poisoning.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/toxic_flow.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/transport_limits.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/transport_security.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/trust_boundary.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/typescript_pattern_scan.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scanners/typescript_scan.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scoring/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scoring/aivss.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/scoring/aivss_schema.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/translators/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/translators/pipelock.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/translators/prisma_airs.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/verification.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/vuln_db.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/agent_audit_kit/watch.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/benchmarks/README.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/benchmarks/crawler.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/benchmarks/determinism/RESULTS.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/benchmarks/determinism/run.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/benchmarks/index_builder.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/benchmarks/results-2026-06-13.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/benchmarks/run_benchmark.sh +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/benchmarks/sample_configs/sample_01_clean.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/benchmarks/sample_configs/sample_02_secrets.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/benchmarks/sample_configs/sample_03_no_auth.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/benchmarks/sample_configs/sample_04_shell_injection.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/benchmarks/sample_configs/sample_05_mixed.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/benchmarks/sources.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/ci/gitlab/agent-audit-kit.gitlab-ci.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/CNAME +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/DISTRIBUTION-CHECKLIST.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/RELEASING.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/azure-pipelines.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/blog/state-of-mcp-security-template.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/circleci.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/comparison-gitlab-agentic-sast.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/comparison.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/comparisons.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/disclosure-policy.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/gitlab-ci.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/index.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/launch/CHECKLIST.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/launch/github-verified-creator-application.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/launch/owasp-reference-tool-submission.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/launch/press.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/launch/release-notes-v0.3.0.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/metrics.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/notes/adjudicator-pattern.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/owasp-mapping.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/plans/2026-04-21-v0.3.3-design.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/research-log.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/roadmap/ox-mcp-2026-05-01-batch.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/rule-schema.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/rules/AAK-AZURE-MCP-001.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/rules/AAK-AZURE-MCP-NOAUTH-001.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/rules/AAK-LANGCHAIN-SSRF-REDIR-001.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/rules/AAK-LMDEPLOY-VL-SSRF-001.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/rules/AAK-MCP-AUTH-PATHTRAVERSAL-001.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/rules/AAK-MCP-MARKETPLACE-CONFIG-FETCH-001.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/rules/AAK-MCP-STDIO-CMD-INJ-001.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/rules/AAK-MCP-STDIO-CMD-INJ-002.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/rules/AAK-MCP-STDIO-CMD-INJ-003.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/rules/AAK-MCP-STDIO-CMD-INJ-004.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/rules/AAK-SPLUNK-MCP-TOKEN-LEAK-001.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/rules/AAK-SSRF-TOCTOU-001.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/rules/AAK-TOXICFLOW-001.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/rules/index.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/rules.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/docs/spec/sarif-runtime-context.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/editors/zed/README.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/editors/zed/extension.toml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/entrypoint.sh +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/README.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/case-studies/damn-vulnerable-mcp/README.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/case-studies/damn-vulnerable-mcp/configs/dvmcp-inspired.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/case-studies/damn-vulnerable-mcp/configs/dvmcp-settings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/case-studies/damn-vulnerable-mcp/scan-results.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/case-studies/damn-vulnerable-mcp/scan-results.sarif +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/ci-integration/README.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/ci-integration/docker-one-liner.sh +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/ci-integration/github-actions-sarif.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/ci-integration/gitlab-ci-scan.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/ci-integration/pre-commit-config.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/run-all-examples.sh +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/01-no-auth-remote/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/01-no-auth-remote/expected-findings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/02-shell-injection/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/02-shell-injection/expected-findings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/03-hardcoded-secrets/.gitignore +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/03-hardcoded-secrets/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/03-hardcoded-secrets/expected-findings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/04-hook-exfiltration/.claude/settings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/04-hook-exfiltration/expected-findings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/05-trust-boundary-violations/.claude/settings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/05-trust-boundary-violations/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/05-trust-boundary-violations/expected-findings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/06-tool-poisoning/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/06-tool-poisoning/expected-findings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/07-tainted-tool-function/expected-findings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/07-tainted-tool-function/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/08-transport-insecurity/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/08-transport-insecurity/expected-findings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/09-a2a-insecure-agent/agent-card.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/09-a2a-insecure-agent/expected-findings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/10-supply-chain-risks/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/10-supply-chain-risks/expected-findings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/10-supply-chain-risks/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/11-legal-compliance/expected-findings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/11-legal-compliance/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/11-legal-compliance/subproject/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/examples/vulnerable-configs/README.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/launch/MARKET-RESEARCH-2026-04-12.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/launch/awesome-list-prs/awesome-opensource-security.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/launch/awesome-list-prs/awesome-security.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/launch/blog-50-mcp-servers.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/launch/demo.cast +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/launch/owasp-outreach.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/launch/state-of-mcp-security-2026.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/mkdocs.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/public/badges/ox-coverage.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/public/corpora/manifest.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/releases/v0.3.10.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/releases/v0.3.5.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/releases/v0.3.6.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/releases/v0.3.7.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/releases/v0.3.8.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/releases/v0.3.9.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/requirements-lock.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/research/state-of-mcp-2026/PREVALENCE.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/research/state-of-mcp-2026/REPORT.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/research/state-of-mcp-2026/results.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/research/state-of-mcp-2026/run_report.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/schema/ox-cve-manifest.schema.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/scripts/backfill_cve_property.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/scripts/build_coverage_page.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/scripts/close_duplicate_cve_issues.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/scripts/cve_watcher.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/scripts/gen_coverage.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/scripts/gen_owasp_coverage.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/scripts/generate_lockfile.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/scripts/install-pre-commit.sh +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/scripts/sync_repo_metadata.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/scripts/sync_rule_count.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/scripts/sync_scanner_count.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/scripts/watch_csa_mcp_baseline.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/site/coverage/ox.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/site/coverage/prisma-airs.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/conftest.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/LICENSES.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/clean_mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/clean_settings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/crewai/safe/full_chain.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/crewai/vulnerable/full_chain.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/a2a_2026/vulnerable_card.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/comment-and-control-2026-04-25/patched/review_agent.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/comment-and-control-2026-04-25/vulnerable/review_agent.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2025-65720-gpt-researcher/config-safe-rejected/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2025-65720-gpt-researcher/config-unsafe/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2025-65720-gpt-researcher/pin-vulnerable-git/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2025-65720-gpt-researcher/pin-vulnerable-pypi/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2025-66335/patched/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2025-66335/vulnerable/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-20205/patched-splunk-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-20205/redacted-token-log/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-20205/vulnerable-splunk-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-20205/vulnerable-token-log/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-20205-config/patched-yaml/splunk-mcp.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-20205-config/vulnerable-inputs/inputs.conf +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-20205-config/vulnerable-yaml/splunk-mcp.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-23744-mcp-inspector/vendored-fork/vendor/mcpjam-inspector/server.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-26015-docsgpt/config-safe-no-override/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-26015-docsgpt/config-safe-rejected/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-26015-docsgpt/config-unsafe/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-26015-docsgpt/pin-safe/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-26015-docsgpt/pin-vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-26015-docsgpt/pin-vulnerable-git/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-26030-semantic-kernel/pin-safe/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-26030-semantic-kernel/pin-safe-floor/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-26030-semantic-kernel/pin-vulnerable/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-27825-atlassian/patched-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-27825-atlassian/vulnerable/agent.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-30615/patched/py_argv_allowlist.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-30615/vulnerable/py_os_system_stdin.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-30615/vulnerable/py_subprocess_shell.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-30615/vulnerable/ts_execa_shell.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-30623-litellm/patched/requirements-floor.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-30623-litellm/patched/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-30623-litellm/vulnerable/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-32211/patched-with-auth/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-32211/vulnerable-no-auth/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-32211-server/pyproject.toml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-32211-server/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-33032/patched/router.go +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-33032/vulnerable/router.go +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-33032/vulnerable/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-33032/vulnerable/server.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-33626/patched-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-33626/vulnerable/pipeline.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-39313/length-capped/http.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-39313/patched/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-39313/vulnerable/http.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-39313/vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-40068-claudecode/pin-safe/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-40068-claudecode/pin-vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-40933/vulnerable/flow.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-41481/patched-no-redirect/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-41481/patched-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-41481/vulnerable-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-41481/vulnerable-redirect/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-41488/patched-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-41488/patched-pinned/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-41488/vulnerable-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-41488/vulnerable-toctou/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-44717-mcp-calculate-server/pin-safe/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-44717-mcp-calculate-server/pin-safe-floor/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-44717-mcp-calculate-server/pin-vulnerable/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-7061-chatgpt-mcp/safe/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-7061-chatgpt-mcp/vulnerable-git/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-7061-chatgpt-mcp/vulnerable-shorthand/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-7591-astro-mcp/source-safe/no_import.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-7591-astro-mcp/source-safe/parametrized.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-7591-astro-mcp/source-safe/tagged_template.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-7591-astro-mcp/source-unsafe/index.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/cve-2026-7591-astro-mcp/vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/dns-rebind-sdk-class/apollo-patched/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/dns-rebind-sdk-class/apollo-vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/dns-rebind-sdk-class/java-patched/pom.xml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/dns-rebind-sdk-class/java-vulnerable/pom.xml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/dns-rebind-sdk-class/python-patched/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/dns-rebind-sdk-class/python-pattern-guarded/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/dns-rebind-sdk-class/python-pattern-guarded/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/dns-rebind-sdk-class/python-pattern-unguarded/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/dns-rebind-sdk-class/python-pattern-unguarded/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/dns-rebind-sdk-class/python-vulnerable/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/healthcare_ai/safe_skill.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/healthcare_ai/vulnerable_skill.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/hook_rce/safe_settings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/hook_rce/vulnerable_settings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/india_pii/safe.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/india_pii/vulnerable.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/langchain/safe_requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/langchain/vulnerable_prompt.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/langchain/vulnerable_requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/marketplace/safe.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/marketplace/vulnerable.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/mcp_auth/safe_server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/mcp_auth/vulnerable_server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/oauth/safe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/oauth/vulnerable.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/ox-mcp-stdio-class/patched_java.java +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/ox-mcp-stdio-class/patched_py.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/ox-mcp-stdio-class/patched_rust.rs +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/ox-mcp-stdio-class/patched_ts.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/ox-mcp-stdio-class/vulnerable_java.java +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/ox-mcp-stdio-class/vulnerable_py.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/ox-mcp-stdio-class/vulnerable_rust.rs +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/ox-mcp-stdio-class/vulnerable_ts.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/routines/safe.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/routines/vulnerable.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/skills/safe.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/skills/vulnerable.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/ssrf/safe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/ssrf/vulnerable.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/state_privacy/safe_privacy.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/state_privacy/vulnerable_privacy.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/tasks/safe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/cves/tasks/vulnerable.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/deepseek/safe/agent.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/deepseek/vulnerable/agent.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/env_with_secrets +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/eu_ai_act_art15_locale/documented_risk/.agent-audit-kit.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/eu_ai_act_art15_locale/documented_risk/agent.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/eu_ai_act_art15_locale/multilingual_en_only/agent.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/eu_ai_act_art15_locale/multilingual_en_only/evals/welcome.en.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/eu_ai_act_art15_locale/multilingual_internal_only/agent.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/eu_ai_act_art15_locale/multilingual_with_coverage/agent.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/eu_ai_act_art15_locale/multilingual_with_coverage/evals/welcome.de.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/eu_ai_act_art15_locale/multilingual_with_coverage/evals/welcome.en.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/eu_ai_act_art15_locale/multilingual_with_coverage/evals/welcome.fr.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/eu_ai_act_art15_locale/single_locale/agent.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/harness_shared_state/safe_multi_agent.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/harness_shared_state/unsafe_multi_agent.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/incidents/ipi-wild-2026-04-24/poisoned_template.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/incidents/mcp-fhi/clean/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/incidents/mcp-fhi/vulnerable/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/incidents/ox-mcp-2026-04-15/documented-risk/.agent-audit-kit.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/incidents/ox-mcp-2026-04-15/documented-risk/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/incidents/ox-mcp-2026-04-15/documented-risk/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/incidents/ox-mcp-2026-04-15/python/sanitized/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/incidents/ox-mcp-2026-04-15/python/sanitized/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/incidents/ox-mcp-2026-04-15/python/vulnerable/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/incidents/ox-mcp-2026-04-15/python/vulnerable/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/incidents/ox-mcp-2026-04-15/typescript/sanitized/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/incidents/ox-mcp-2026-04-15/typescript/sanitized/server.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/incidents/ox-mcp-2026-04-15/typescript/vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/incidents/ox-mcp-2026-04-15/typescript/vulnerable/server.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/incidents/ox-mcp-marketplace-fetch/patched.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/incidents/ox-mcp-marketplace-fetch/vulnerable.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/incidents/ox-mcp-marketplace-fetch/vulnerable.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/incidents/vercel-2026-04-19/app.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/kong_konnect/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/langchain_prompt_loader/constant_safe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/langchain_prompt_loader/user_path_unsafe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/langchain_prompt_loader/validated_safe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/langgraph/safe/graph.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/langgraph/vulnerable/graph.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_sampling/clean_python/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_sampling/clean_python/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_sampling/config_clean/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_sampling/config_vulnerable/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_sampling/documented_risk/.agent-audit-kit.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_sampling/documented_risk/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_sampling/documented_risk/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_sampling/vulnerable_python/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_sampling/vulnerable_python/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_sampling/vulnerable_typescript/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_sampling/vulnerable_typescript/server.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_stateless/clean_py/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_stateless/clean_py/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_stateless/documented_risk/.agent-audit-kit.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_stateless/documented_risk/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_stateless/documented_risk/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_stateless/vulnerable_001_py/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_stateless/vulnerable_001_py/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_stateless/vulnerable_001_ts/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_stateless/vulnerable_001_ts/server.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_stateless/vulnerable_002_py/client.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_stateless/vulnerable_002_py/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_stateless/vulnerable_003_k8s/service.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_stateless/vulnerable_003_nginx/nginx.conf +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_stateless/vulnerable_003_store_py/handlers.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_stateless/vulnerable_003_store_py/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_stateless/vulnerable_004_client/client.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_stateless/vulnerable_004_client/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_tool_unsafe_eval/eval_safe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_tool_unsafe_eval/eval_unsafe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/mcp_tool_unsafe_eval/no_tool_decorator.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/metis_pomdp/refusal_refeed_safe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/metis_pomdp/refusal_refeed_unsafe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/metis_pomdp/scoring_sink_unsafe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/openapi_smells/clean.openapi.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/openapi_smells/smelly.openapi.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/openclaw/role_default_admin_unsafe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/openclaw/role_explicit_safe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/package_with_risks.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/pipelock/policy_invalid.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/pipelock/policy_minimal.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/pipelock/policy_with_parity.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/project_deal/safe/pricer.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/project_deal/vulnerable/pricer.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/server_cards/clean.server-card.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/server_cards/poisoned.server-card.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/skill_lifecycle/safe_skill.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/skill_lifecycle/unsafe_skill.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/social_agents/tiktok_human_in_loop.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/social_agents/tiktok_unsafe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/stainless_lineage/config_root/stainless.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/stainless_lineage/generated_python_sdk/client.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/stainless_lineage/generated_typescript_sdk/client.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/stainless_lineage/handwritten/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/vulnerable_hooks.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/vulnerable_mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/fixtures/vulnerable_settings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_a2a_2026.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_a2a_protocol.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_action.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_agent_config.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_aicm.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_anthropic_sdk_hardening.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_argv_toctou.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_cli.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_compliance_output.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_compliance_v2.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_coverage_tables.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_crewai_nvd_and_evasion.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_csa_baseline_watcher.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_cve_2025_66335.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_cve_2025_66414_python_sdk.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_cve_2026_20205_config.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_cve_2026_20205_splunk.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_cve_2026_32211.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_cve_2026_32211_server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_cve_2026_33626.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_cve_2026_35568_java.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_cve_2026_35577_apollo.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_cve_2026_39313.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_cve_2026_40576_excel.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_cve_2026_40608_next_ai_draw.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_cve_2026_41481.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_cve_2026_41488.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_cve_fix_and_watch_and_advisories.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_cve_watcher_dedup.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_cves_2026.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_cyclonedx_aibom.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_determinism_benchmark.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_diff.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_discovery.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_engine.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_engine_ignore_paths.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_eu_ai_act_art15_locale.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_examples.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_fix.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_flowise.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_gha_immutable.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_healthcare_ai_and_state_privacy.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_hook_injection.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_index_builder.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_india_pii.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_integrations_notify.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_kong_konnect_cve_2026_13341.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_legal_compliance.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_llm_scan.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_llm_scan_mod.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_llm_sql_rce.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_marketplace_manifest.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_marketplace_sources.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_mcp_attestation.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_mcp_auth_pathtraversal.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_mcp_config.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_mcp_env_placeholder_exfil.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_mcp_http_noauth_server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_mcp_marketplace_fetch.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_mcp_noauth_default.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_mcp_sampling_capability.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_mcp_server_card.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_mcp_stateless_migration.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_mcp_stdio_cmd_inj_java.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_mcp_stdio_cmd_inj_python.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_mcp_stdio_cmd_inj_rust.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_mcp_stdio_cmd_inj_typescript.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_mcp_stdio_launcher.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_mcp_toolgate_asymmetry.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_mcp_tunnel.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_mcpwn.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_nsa_mcp_csi.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_oauth_surface.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_owasp_agentic_coverage.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_owasp_public_json.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_owasp_report.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_owasp_report_output.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_parity_region_drift.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_phase3.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_pin_drift.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_pinning.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_pinning_mod.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_pr_summary.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_preset_mcp_ox_2026_04.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_proxy.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_repo_metadata_sync.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_rule_count_sync.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_sandbox_self_disable.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_sarif_fingerprints.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_sarif_github_upload.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_sarif_output.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_scoring.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_secret_exposure.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_shared_resource_authz.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_skill_poisoning.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_skill_untrusted_exec_path.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_stdio_injection.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_supply_chain.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_taint_analysis.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_tool_poisoning.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_toxic_flow.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_transport_security.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_trust_boundary.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_typescript_pattern_scan_sql.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_v0_3_10_features.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_v0_3_10_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_v0_3_11_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_v0_3_13_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_v0_3_14_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_v0_3_15_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_v0_3_16_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_v0_3_17_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_v0_3_18_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_v0_3_19_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_v0_3_1_cve_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_v0_3_20_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_v0_3_21_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_v0_3_22_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_v0_3_8_features.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_v0_3_8_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_v0_3_9_features.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_v0_3_9_features_p1.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_v0_3_9_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_verification.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_verification_mod.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/tests/test_vuln_db.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/vscode-extension/.vscodeignore +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/vscode-extension/CLAUDE.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/vscode-extension/README.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/vscode-extension/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/vscode-extension/src/extension.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/vscode-extension/src/sarifReader.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.48}/vscode-extension/tsconfig.json +0 -0
|
@@ -8,6 +8,19 @@ shipped-at timestamp. The GitHub Action `.github/workflows/cve-watcher.yml`
|
|
|
8
8
|
diffs NVD's MCP keyword feed against this file and opens an
|
|
9
9
|
`sla-48h`-labelled issue for anything new.
|
|
10
10
|
|
|
11
|
+
## Shipped in v0.3.48 (2026-07-08)
|
|
12
|
+
|
|
13
|
+
| Incident / Anchor | Reference | AAK rule(s) | Shipped | Latency |
|
|
14
|
+
|---|---|---|---|---|
|
|
15
|
+
| CVE-2026-49471 (Serena MCP toolkit `serena-agent` < 1.5.2 — unauthenticated Flask dashboard on a fixed port + DNS rebinding writes the agent's persistent memory, chained with `execute_shell_command` `shell=True` to RCE; CWE-306 + CWE-352) | [NVD CVE-2026-49471](https://nvd.nist.gov/vuln/detail/CVE-2026-49471) (HIGH, CVSS 8.3, published 2026-07-07) | **AAK-MCP-SERENA-CVE-2026-49471-001** (NEW: HIGH, MCP_CONFIG — version-pin, fires < 1.5.2 / unpinned / unpinned `oraios/serena` launch ref) | 2026-07-08 | <24h on NVD |
|
|
16
|
+
| CVE-2026-14748 (AIAnytime Awesome-MCP-Server `mcp-wiki/wiki-summary` — SSRF: the `url` argument of the tool handler is fetched server-side with no host/scheme allow-list, CWE-918; rolling-release project, no fixed version) | [NVD CVE-2026-14748](https://nvd.nist.gov/vuln/detail/CVE-2026-14748) (MEDIUM, CVSS 6.3, published 2026-07-05) | **AAK-MCP-SSRF-001** (NEW: MEDIUM, MCP_CONFIG — `ast` param→fetch taint / regex fallback, fires on unvalidated tool-arg URL) | 2026-07-08 | ~72h on NVD (past 48h target) |
|
|
17
|
+
|
|
18
|
+
## Shipped in v0.3.47 (2026-07-07)
|
|
19
|
+
|
|
20
|
+
| Incident / Anchor | Reference | AAK rule(s) | Shipped | Latency |
|
|
21
|
+
|---|---|---|---|---|
|
|
22
|
+
| CVE-2026-14471 (Amazon mcp-gateway-registry < 1.0.13 — SQL injection: crafted `table_name` interpolated into an SQL identifier in the metrics-service retention policy, CWE-89) | [NVD CVE-2026-14471](https://nvd.nist.gov/vuln/detail/CVE-2026-14471) (HIGH, CVSS 8.1, published 2026-07-06) | **AAK-MCP-GATEWAY-REGISTRY-CVE-2026-14471-001** (NEW: HIGH, SUPPLY_CHAIN — version-pin, fires < 1.0.13 / unpinned) | 2026-07-07 | <24h on NVD |
|
|
23
|
+
|
|
11
24
|
## Shipped in v0.3.46 (2026-07-06)
|
|
12
25
|
|
|
13
26
|
| Incident / Anchor | Reference | AAK rule(s) | Shipped | Latency |
|
|
@@ -7,6 +7,59 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
### Added — AAK-MCP-SERENA-CVE-2026-49471-001: pin CVE-2026-49471 (Serena MCP unauthenticated-dashboard RCE)
|
|
11
|
+
|
|
12
|
+
CVE-response (closes #411). New **HIGH** rule + version-pin detector for
|
|
13
|
+
[CVE-2026-49471](https://nvd.nist.gov/vuln/detail/CVE-2026-49471) (CVSS 8.3,
|
|
14
|
+
CWE-306 + CWE-352): the Serena MCP coding toolkit (`serena-agent`) before 1.5.2
|
|
15
|
+
ships an unauthenticated Flask dashboard on a fixed port (no auth, no CSRF, no
|
|
16
|
+
Host-header validation); a DNS-rebinding attack writes arbitrary content into
|
|
17
|
+
the agent's persistent memory store, which — combined with
|
|
18
|
+
`execute_shell_command(shell=True)` — is a remote-code-execution chain. Fires on
|
|
19
|
+
`serena-agent < 1.5.2` / unpinned, and on an unpinned `oraios/serena` /
|
|
20
|
+
`serena-mcp-server` launch reference, across manifests + MCP config files.
|
|
21
|
+
Fixture-backed test; `rules.json` regenerated. Rule count **233 → 234**.
|
|
22
|
+
|
|
23
|
+
### Added — AAK-MCP-SSRF-001: pin CVE-2026-14748 (MCP-server SSRF via unvalidated tool-arg URL, CWE-918)
|
|
24
|
+
|
|
25
|
+
New **MEDIUM** rule + scanner (`mcp_ssrf_toolarg`) for
|
|
26
|
+
[CVE-2026-14748](https://nvd.nist.gov/vuln/detail/CVE-2026-14748) (CVSS 6.3
|
|
27
|
+
MEDIUM, CWE-918): an MCP tool handler that passes an attacker-controllable `url` /
|
|
28
|
+
`endpoint` / `target` argument straight into an outbound `requests` / `httpx` /
|
|
29
|
+
`urllib` / `aiohttp` fetch with no host/scheme allow-list — AIAnytime
|
|
30
|
+
Awesome-MCP-Server's `mcp-wiki/wiki-summary` is the anchor. Detection uses a
|
|
31
|
+
stdlib `ast` parameter→fetch taint path for Python (the same mechanism as
|
|
32
|
+
`mcp_auth_pathtraversal`; no new engine) with a comment-stripped regex fallback
|
|
33
|
+
for TS/JS/Rust. Complements the generic `AAK-SSRF-001..005` text family, which
|
|
34
|
+
keys on request-object accessors and misses the bare-parameter CVE shape.
|
|
35
|
+
Committed fixture pair (`tests/fixtures/mcp_ssrf/` — vulnerable + host-allow-listed
|
|
36
|
+
safe handler); cross-referenced to OWASP MCP09:2025 + Agentic ASI06;
|
|
37
|
+
`rules.json` regenerated. Rule count **232 → 233**, scanners **81 → 82**.
|
|
38
|
+
|
|
39
|
+
### Added — AAK-MCP-GATEWAY-REGISTRY-CVE-2026-14471-001 (Amazon mcp-gateway-registry SQLi)
|
|
40
|
+
|
|
41
|
+
CVE-response (closes #408). New **HIGH** rule + version-pin detector for
|
|
42
|
+
[CVE-2026-14471](https://nvd.nist.gov/vuln/detail/CVE-2026-14471) (CVSS 8.1):
|
|
43
|
+
Amazon `mcp-gateway-registry` before 1.0.13 interpolates a caller-supplied
|
|
44
|
+
`table_name` into an SQL identifier position in the metrics-service retention
|
|
45
|
+
policy (CWE-89), letting an authenticated remote user run arbitrary SQL. Fires
|
|
46
|
+
on `< 1.0.13` or an unpinned reference across manifests + MCP config files;
|
|
47
|
+
fixture-backed test; `rules.json` regenerated. Rule count **231 → 232**.
|
|
48
|
+
|
|
49
|
+
### Fixed — correct SEP citations on the AAK-MCP-STATELESS-* pack
|
|
50
|
+
|
|
51
|
+
Citation-accuracy pass on the shipped stateless-migration rules (no detection
|
|
52
|
+
change, rule count stays 231). The `Mcp-Session-Id` / protocol-session removal
|
|
53
|
+
was mis-attributed to SEP-1442; it is actually **SEP-2567** ("Sessionless MCP
|
|
54
|
+
via Explicit State Handles"), with SEP-1442 / **SEP-2575** making the init
|
|
55
|
+
handshake optional so stateless is the default. The `tasks/list` removal cited
|
|
56
|
+
a **non-existent SEP-1359**; corrected to the experimental Tasks primitive
|
|
57
|
+
(**SEP-1686**) moving out of core into the Extensions framework (redesigned as
|
|
58
|
+
**SEP-2663**). Updated `AAK-MCP-STATELESS-001`/`-002` descriptions, the
|
|
59
|
+
`mcp_stateless_migration` scanner docstring + engine label, and `rules.json`.
|
|
60
|
+
Verified against modelcontextprotocol.io + the MCP GitHub SEPs. Version
|
|
61
|
+
**0.3.46 → 0.3.47**.
|
|
62
|
+
|
|
10
63
|
### Security — Flowise CVE-2026-58057 (closes #372)
|
|
11
64
|
|
|
12
65
|
Bumped `AAK-FLOWISE-001`'s pin floor **3.1.2 → 3.1.3** and added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-audit-kit
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.48
|
|
4
4
|
Summary: Security scanner for MCP-connected AI agent pipelines
|
|
5
5
|
Project-URL: Homepage, https://github.com/sattyamjjain/agent-audit-kit
|
|
6
6
|
Project-URL: Repository, https://github.com/sattyamjjain/agent-audit-kit
|
|
@@ -42,7 +42,7 @@ Description-Content-Type: text/markdown
|
|
|
42
42
|
<a href="https://pypi.org/project/agent-audit-kit/"><img src="https://img.shields.io/pypi/v/agent-audit-kit.svg" alt="PyPI"></a>
|
|
43
43
|
<a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/python-3.9+-blue.svg" alt="Python 3.9+"></a>
|
|
44
44
|
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a>
|
|
45
|
-
<a href="#what-it-scans"><img src="https://img.shields.io/badge/rules-
|
|
45
|
+
<a href="#what-it-scans"><img src="https://img.shields.io/badge/rules-234-blue.svg" alt="Rules: 234"></a>
|
|
46
46
|
<a href="#frameworks--standards"><img src="https://img.shields.io/badge/OWASP_Agentic-10%2F10-green.svg" alt="OWASP Agentic: 10/10"></a>
|
|
47
47
|
<a href="#frameworks--standards"><img src="https://img.shields.io/badge/OWASP_MCP-10%2F10-green.svg" alt="OWASP MCP: 10/10"></a>
|
|
48
48
|
<a href="https://sattyamjjain.github.io/agent-audit-kit/"><img src="https://img.shields.io/badge/MCP_Security_Index-live-blue.svg" alt="MCP Security Index"></a>
|
|
@@ -61,9 +61,9 @@ Security scanner for MCP-connected AI agent pipelines. Finds misconfigurations,
|
|
|
61
61
|
1. **Runs fully offline and deterministically.** Your code, configs, and secrets never leave the machine; the default scan path makes zero network calls, and the same input always yields the same finding (no model in the loop). This is measured, not just claimed: [20/20 identical runs → one shared SHA-256 finding-set digest, 0% variance](benchmarks/determinism/RESULTS.md). Scanners that route findings through an LLM judge can't guarantee a byte-identical re-run — so CI diffs, audit re-runs, and regression baselines stay stable here. No account, no telemetry.
|
|
62
62
|
2. **Produces auditor-ready compliance-evidence packs.** SARIF for the GitHub Security tab plus PDF evidence reports mapped to 13 frameworks (EU AI Act, SOC 2, ISO 27001/42001, HIPAA, NIST AI RMF, and regional regimes) — what you hand an auditor, not just a list of findings.
|
|
63
63
|
|
|
64
|
-
- **<!-- rule-count:total -->
|
|
64
|
+
- **<!-- rule-count:total -->234<!-- /rule-count --> rules** across 12 security categories, covering the 2026 CVE wave
|
|
65
65
|
- Rule count is computed from the registry and verified in CI (`test_rule_count_is_canonical`).
|
|
66
|
-
- **<!-- scanner-count:total -->
|
|
66
|
+
- **<!-- scanner-count:total -->82<!-- /scanner-count --> scanner modules** including AST-based Python taint analysis and regex pattern scanners for TypeScript/JavaScript and Rust
|
|
67
67
|
- **16 CLI commands**: `scan`, `discover`, `pin`, `verify`, `fix`, `score`, `update`, `proxy`, `kill`, `watch`, plus `export-rules`, `verify-bundle`, `sbom`, `report`, `install-precommit`, and the Security-Advisories scan flag
|
|
68
68
|
- **OWASP coverage**: Agentic Top 10 (10/10), MCP Top 10 (10/10), Adversa AI Top 25
|
|
69
69
|
- **Compliance mapping** (13 frameworks): EU AI Act Art. 15 + 55, SOC 2, ISO 27001, ISO/IEC 42001, HIPAA, NIST AI RMF, **NSA MCP Security CSI (U/OO/6030316-26, May 2026)**, Singapore Agentic AI, India DPDP 2023, **Alabama Personal Data Protection Act (HB 351, 2026)**, **Tennessee SB 1580 Health Care AI (PRA)**, **MCP 2026 Roadmap (May 2026)** — PDF reports via `agent-audit-kit report --format pdf --framework <name>`
|
|
@@ -100,7 +100,7 @@ jobs:
|
|
|
100
100
|
runs-on: ubuntu-latest
|
|
101
101
|
steps:
|
|
102
102
|
- uses: actions/checkout@v4
|
|
103
|
-
- uses: sattyamjjain/agent-audit-kit@v0.3.
|
|
103
|
+
- uses: sattyamjjain/agent-audit-kit@v0.3.48
|
|
104
104
|
with:
|
|
105
105
|
fail-on: high
|
|
106
106
|
```
|
|
@@ -120,7 +120,7 @@ agent-audit-kit scan .
|
|
|
120
120
|
# .pre-commit-config.yaml
|
|
121
121
|
repos:
|
|
122
122
|
- repo: https://github.com/sattyamjjain/agent-audit-kit
|
|
123
|
-
rev: v0.3.
|
|
123
|
+
rev: v0.3.48
|
|
124
124
|
hooks:
|
|
125
125
|
- id: agent-audit-kit
|
|
126
126
|
```
|
|
@@ -144,8 +144,8 @@ agent-audit-kit scan examples/vulnerable-configs/04-hook-exfiltration/
|
|
|
144
144
|
|
|
145
145
|
| Category | Rules | What It Detects |
|
|
146
146
|
|----------|:-----:|-----------------|
|
|
147
|
-
| **MCP Configuration** | <!-- category-count:MCP_CONFIG -->
|
|
148
|
-
| **Supply Chain** | <!-- category-count:SUPPLY_CHAIN -->
|
|
147
|
+
| **MCP Configuration** | <!-- category-count:MCP_CONFIG -->55<!-- /category-count --> | Missing auth middleware (CVE-2026-33032 class), empty IP allowlists, wildcard CORS, path traversal in resource handlers, SSRF (CWE-918), OAuth 2.1 misconfig (PKCE/S256/DPoP), Tasks primitive leakage (SEP-1686), shell injection, MCPwn middleware-asymmetry, Azure MCP no-auth (CVE-2026-32211), MCP Inspector vendored fork (CVE-2026-23744), 2026-07-28 stateless-MCP migration (`Mcp-Session-Id` reliance, removed `tasks/list`, sticky-session deployment, un-cached client `tools/list`), deny-by-default attested admission (signed clearance / `/.well-known/mcp-clearance` / pinned trust root — arXiv:2605.24248), Anthropic MCP Tunnels gateway (SSRF defense disabled / `upstream.disable_ip_validation`, HTTPS upstream missing `upstream.tls.ca_file` trust anchor, tunnel token + TLS private keys hardcoded in CI / committed Kubernetes Secrets — research preview 2026-05-19), stdio launcher injection (`npx`/`node`/`bash`/`sh`/`python` with `-c`/`-e`/`--eval`, or non-pinned interpolated argv — CVE-2026-40933), tool-gate enforcement asymmetry (allowlist / read-only / non-destructive check applied in `tools/list` but not `tools/call` — CVE-2026-46519), unauthenticated MCP HTTP/SSE server on `0.0.0.0` / wildcard CORS (GitLab/Nocturne/AgenticMail no-auth class — CVE-2026-44895/44830/50287), plus the non-loopback no-auth **launch surface** — `mcp.json`/`claude_desktop_config.json`/`*.mcp.yaml` `command`/`args`, Docker `--host 0.0.0.0`/`-p 0.0.0.0:`, and MCP Inspector / FastMCP startup binding `0.0.0.0`/`::`/a routable IP with no token or `DANGEROUSLY_OMIT_AUTH` set (CWE-306; MCP Inspector exemplar CVE-2026-23744; mcp-pinot `0.0.0.0:8080` no-auth CVE-2026-49257; Windows-MCP wildcard-CORS no-auth CVE-2026-48989; ~12,520 exposed services per Censys), argv-rebuild-after-allowlist command-injection TOCTOU (a command/argv approved against an allow/deny list is re-split / re-joined / extended before `subprocess`/`os.exec*` / Node `child_process.spawn`/`execa` with no re-check — `AAK-MCP-ARGV-TOCTOU-001`, **CWE-77 + CWE-367 / CVE-2026-53822**), MCP server unauthenticated-by-default / fail-open auth (an auth function returning truthy on an empty/unset secret, a placeholder/empty secret literal — `""`/`changeme`/`os.environ.get(...,"")` — or a warning-only secret gate on a `0.0.0.0` bind — `AAK-MCP-NOAUTH-DEFAULT`, **CWE-306 + CWE-862 / CVE-2026-48814** (incomplete fix of CVE-2026-46701)), bearer-token → session-file path traversal (an untrusted token / `Authorization` header joined into a session file path used for an existence/read check with no separator-reject or resolve-and-contain guard — `AAK-MCP-AUTH-PATHTRAVERSAL-001`, **CWE-22 / CVE-2026-52830**, fast-mcp-telegram < 0.19.1), MCP tool-argument URL SSRF (an MCP tool handler passing a caller-supplied `url`/`endpoint`/`target` argument straight into an outbound `requests`/`httpx`/`urllib`/`aiohttp` fetch with no host/scheme allow-list — `ast` parameter→fetch taint for Python, regex fallback for TS/JS/Rust — `AAK-MCP-SSRF-001`, **CWE-918 / CVE-2026-14748**, AIAnytime Awesome-MCP-Server `mcp-wiki/wiki-summary`), Serena MCP toolkit unauthenticated-dashboard RCE (`serena-agent` < 1.5.2 — an unauthenticated Flask dashboard on a fixed port reachable via DNS rebinding writes the agent's persistent memory, chained with `execute_shell_command` `shell=True` to remote code execution — `AAK-MCP-SERENA-CVE-2026-49471-001`, **CWE-306 + CWE-352 / CVE-2026-49471**, HIGH 8.3) |
|
|
148
|
+
| **Supply Chain** | <!-- category-count:SUPPLY_CHAIN -->42<!-- /category-count --> | Vulnerable LangChain / langchain-text-splitters versions, named pin rules for `astro-mcp-server` / `chatgpt-mcp-server` / `docsgpt` / `gpt-researcher` / `litellm` / `mcp-calculate-server` / `semantic-kernel` / `@anthropic-ai/claude-code` / `apache-doris-mcp-server` / `excel-mcp-server`, OX MCP-STDIO command-injection (Python/TS/Java/Rust) — `AAK-MCP-STDIO-CMD-INJ-001..004` — Stainless-generator lineage, marketplace.json signatures / typosquat / mutable refs, unpinned packages, dangerous install scripts, untrusted-search-path executable override in skill/install flows (`.env`-sourced binary, workspace-prepended `PATH`, `shutil.which` over a tainted PATH, Homebrew env override — `AAK-SKILL-UNTRUSTED-EXEC-PATH`, **CWE-426 / CVE-2026-53819**) |
|
|
149
149
|
| **Tool Poisoning** | <!-- category-count:TOOL_POISONING -->27<!-- /category-count --> | Invisible Unicode / bidi, skill frontmatter injection, SKILL.md post-install commands, data-exfil primitives, skill name hijacking, cross-tool references, rug-pull (SHA-256 pinning), `@mcp.tool` unsafe-eval (CVE-2026-44717 generalization), OpenAPI smells (Hermes paper LAZY/BLOATED/TANGLED), Metis POMDP refusal-refeed + scoring-sink, SkillsVote lifecycle attribution, MCP Calculate Server pin, Kong Konnect MCP server < 1.0.0 indirect prompt injection → unintended Konnect/Admin API requests (`AAK-MCP-KONG-CVE-2026-13341-001`, **CVE-2026-13341**, HIGH 7.4). Indirect-prompt-injection detection (`AAK-POISON-001..006`) runs against tool descriptions **and** every per-parameter `inputSchema.properties.*.description` (recursive — nested objects, array items, `anyOf`/`allOf`/`oneOf`), so instruction text hidden in a single argument's docstring is caught |
|
|
150
150
|
| **Secret Exposure** | <!-- category-count:SECRET_EXPOSURE -->18<!-- /category-count --> | Anthropic/OpenAI/AWS/GitHub/GitLab/GCP keys, Shannon-entropy detection, `.env` leaks, private-key files, hardcoded credential surface, token-leak via log sinks (CVE-2026-20205), `${VAR}`/process.env placeholder resolution on user-supplied MCP URLs → secret exfiltration (CVE-2026-32625) |
|
|
151
151
|
| **Agent Config** | <!-- category-count:AGENT_CONFIG -->15<!-- /category-count --> | Routines permission escalation + schedule injection + audit-log gaps, AGENTS.md/CLAUDE.md/.cursorrules hijacking, hidden Unicode, encoded payloads, internal scanner-fail signal, Project Deal economic-drift detection |
|
|
@@ -157,7 +157,7 @@ agent-audit-kit scan examples/vulnerable-configs/04-hook-exfiltration/
|
|
|
157
157
|
| **Trust Boundaries** | <!-- category-count:TRUST_BOUNDARY -->12<!-- /category-count --> | `enableAllProjectMcpServers`, API URL redirects, wildcard permissions, missing deny rules, missing allowlists, Claude Code folder-trust bypass (CVE-2026-40068) |
|
|
158
158
|
| **MCP Server Card** | <!-- category-count:MCP_SERVER_CARD -->4<!-- /category-count --> | Static audit of SEP-1649 discovery cards (`/.well-known/mcp/server-card.json`): tool-description poisoning in `tools[].description` (`AAK-MCP-CARD-001`, reuses the AAK-POISON detectors), declared-transport vs advertised-capability mismatch — remote transport with `authentication.required: false`, or `stdio` advertising a remote endpoint (`AAK-MCP-CARD-002`), missing / placeholder signature / provenance (`AAK-MCP-CARD-003`), and over-broad capability / wildcard-scope claims (`AAK-MCP-CARD-004`) |
|
|
159
159
|
|
|
160
|
-
**<!-- rule-count:total -->
|
|
160
|
+
**<!-- rule-count:total -->234<!-- /rule-count --> rules total.** Every finding includes severity, evidence, remediation, OWASP references, Adversa references, and CVE links where applicable.
|
|
161
161
|
|
|
162
162
|
### MCP Server Card scanning (SEP-1649)
|
|
163
163
|
|
|
@@ -352,11 +352,11 @@ cross-reference, not a head-to-head benchmark.
|
|
|
352
352
|
| ASI | Title | # rules |
|
|
353
353
|
| --- | --- | --- |
|
|
354
354
|
| **ASI01** | Goal Hijack | 12 |
|
|
355
|
-
| **ASI02** | Tool Misuse |
|
|
355
|
+
| **ASI02** | Tool Misuse | 39 |
|
|
356
356
|
| **ASI03** | Memory Poisoning | 56 |
|
|
357
|
-
| **ASI04** | Identity & Privilege Abuse |
|
|
357
|
+
| **ASI04** | Identity & Privilege Abuse | 39 |
|
|
358
358
|
| **ASI05** | Cascading Failures | 33 |
|
|
359
|
-
| **ASI06** | Unauthorized Capability Acquisition |
|
|
359
|
+
| **ASI06** | Unauthorized Capability Acquisition | 31 |
|
|
360
360
|
| **ASI07** | Plan Injection | 9 |
|
|
361
361
|
| **ASI08** | Agent Communication Poisoning | 4 |
|
|
362
362
|
| **ASI09** | Resource Abuse | 14 |
|
|
@@ -398,7 +398,7 @@ See [`docs/comparisons.md`](docs/comparisons.md) for a fully-sourced version. Ve
|
|
|
398
398
|
| Feature | AgentAuditKit | Microsoft AGT | Snyk Agent Scan | Semgrep Multimodal |
|
|
399
399
|
|---------|:---:|:---:|:---:|:---:|
|
|
400
400
|
| Scope | Static scanner + compliance PDFs | Runtime governance | Static + runtime | Multimodal SAST |
|
|
401
|
-
| Detection rules (static) | **<!-- rule-count:total -->
|
|
401
|
+
| Detection rules (static) | **<!-- rule-count:total -->234<!-- /rule-count -->** | Runtime policies, not rules | ~30 | LLM-assisted |
|
|
402
402
|
| OWASP Agentic 10/10 | **Yes** | Yes | Partial | Partial |
|
|
403
403
|
| OWASP MCP 10/10 | **Yes** | No (runtime-focused) | No | No |
|
|
404
404
|
| Auditor-ready PDF compliance | **12 frameworks** | No | 0 | 0 |
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<a href="https://pypi.org/project/agent-audit-kit/"><img src="https://img.shields.io/pypi/v/agent-audit-kit.svg" alt="PyPI"></a>
|
|
9
9
|
<a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/python-3.9+-blue.svg" alt="Python 3.9+"></a>
|
|
10
10
|
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a>
|
|
11
|
-
<a href="#what-it-scans"><img src="https://img.shields.io/badge/rules-
|
|
11
|
+
<a href="#what-it-scans"><img src="https://img.shields.io/badge/rules-234-blue.svg" alt="Rules: 234"></a>
|
|
12
12
|
<a href="#frameworks--standards"><img src="https://img.shields.io/badge/OWASP_Agentic-10%2F10-green.svg" alt="OWASP Agentic: 10/10"></a>
|
|
13
13
|
<a href="#frameworks--standards"><img src="https://img.shields.io/badge/OWASP_MCP-10%2F10-green.svg" alt="OWASP MCP: 10/10"></a>
|
|
14
14
|
<a href="https://sattyamjjain.github.io/agent-audit-kit/"><img src="https://img.shields.io/badge/MCP_Security_Index-live-blue.svg" alt="MCP Security Index"></a>
|
|
@@ -27,9 +27,9 @@ Security scanner for MCP-connected AI agent pipelines. Finds misconfigurations,
|
|
|
27
27
|
1. **Runs fully offline and deterministically.** Your code, configs, and secrets never leave the machine; the default scan path makes zero network calls, and the same input always yields the same finding (no model in the loop). This is measured, not just claimed: [20/20 identical runs → one shared SHA-256 finding-set digest, 0% variance](benchmarks/determinism/RESULTS.md). Scanners that route findings through an LLM judge can't guarantee a byte-identical re-run — so CI diffs, audit re-runs, and regression baselines stay stable here. No account, no telemetry.
|
|
28
28
|
2. **Produces auditor-ready compliance-evidence packs.** SARIF for the GitHub Security tab plus PDF evidence reports mapped to 13 frameworks (EU AI Act, SOC 2, ISO 27001/42001, HIPAA, NIST AI RMF, and regional regimes) — what you hand an auditor, not just a list of findings.
|
|
29
29
|
|
|
30
|
-
- **<!-- rule-count:total -->
|
|
30
|
+
- **<!-- rule-count:total -->234<!-- /rule-count --> rules** across 12 security categories, covering the 2026 CVE wave
|
|
31
31
|
- Rule count is computed from the registry and verified in CI (`test_rule_count_is_canonical`).
|
|
32
|
-
- **<!-- scanner-count:total -->
|
|
32
|
+
- **<!-- scanner-count:total -->82<!-- /scanner-count --> scanner modules** including AST-based Python taint analysis and regex pattern scanners for TypeScript/JavaScript and Rust
|
|
33
33
|
- **16 CLI commands**: `scan`, `discover`, `pin`, `verify`, `fix`, `score`, `update`, `proxy`, `kill`, `watch`, plus `export-rules`, `verify-bundle`, `sbom`, `report`, `install-precommit`, and the Security-Advisories scan flag
|
|
34
34
|
- **OWASP coverage**: Agentic Top 10 (10/10), MCP Top 10 (10/10), Adversa AI Top 25
|
|
35
35
|
- **Compliance mapping** (13 frameworks): EU AI Act Art. 15 + 55, SOC 2, ISO 27001, ISO/IEC 42001, HIPAA, NIST AI RMF, **NSA MCP Security CSI (U/OO/6030316-26, May 2026)**, Singapore Agentic AI, India DPDP 2023, **Alabama Personal Data Protection Act (HB 351, 2026)**, **Tennessee SB 1580 Health Care AI (PRA)**, **MCP 2026 Roadmap (May 2026)** — PDF reports via `agent-audit-kit report --format pdf --framework <name>`
|
|
@@ -66,7 +66,7 @@ jobs:
|
|
|
66
66
|
runs-on: ubuntu-latest
|
|
67
67
|
steps:
|
|
68
68
|
- uses: actions/checkout@v4
|
|
69
|
-
- uses: sattyamjjain/agent-audit-kit@v0.3.
|
|
69
|
+
- uses: sattyamjjain/agent-audit-kit@v0.3.48
|
|
70
70
|
with:
|
|
71
71
|
fail-on: high
|
|
72
72
|
```
|
|
@@ -86,7 +86,7 @@ agent-audit-kit scan .
|
|
|
86
86
|
# .pre-commit-config.yaml
|
|
87
87
|
repos:
|
|
88
88
|
- repo: https://github.com/sattyamjjain/agent-audit-kit
|
|
89
|
-
rev: v0.3.
|
|
89
|
+
rev: v0.3.48
|
|
90
90
|
hooks:
|
|
91
91
|
- id: agent-audit-kit
|
|
92
92
|
```
|
|
@@ -110,8 +110,8 @@ agent-audit-kit scan examples/vulnerable-configs/04-hook-exfiltration/
|
|
|
110
110
|
|
|
111
111
|
| Category | Rules | What It Detects |
|
|
112
112
|
|----------|:-----:|-----------------|
|
|
113
|
-
| **MCP Configuration** | <!-- category-count:MCP_CONFIG -->
|
|
114
|
-
| **Supply Chain** | <!-- category-count:SUPPLY_CHAIN -->
|
|
113
|
+
| **MCP Configuration** | <!-- category-count:MCP_CONFIG -->55<!-- /category-count --> | Missing auth middleware (CVE-2026-33032 class), empty IP allowlists, wildcard CORS, path traversal in resource handlers, SSRF (CWE-918), OAuth 2.1 misconfig (PKCE/S256/DPoP), Tasks primitive leakage (SEP-1686), shell injection, MCPwn middleware-asymmetry, Azure MCP no-auth (CVE-2026-32211), MCP Inspector vendored fork (CVE-2026-23744), 2026-07-28 stateless-MCP migration (`Mcp-Session-Id` reliance, removed `tasks/list`, sticky-session deployment, un-cached client `tools/list`), deny-by-default attested admission (signed clearance / `/.well-known/mcp-clearance` / pinned trust root — arXiv:2605.24248), Anthropic MCP Tunnels gateway (SSRF defense disabled / `upstream.disable_ip_validation`, HTTPS upstream missing `upstream.tls.ca_file` trust anchor, tunnel token + TLS private keys hardcoded in CI / committed Kubernetes Secrets — research preview 2026-05-19), stdio launcher injection (`npx`/`node`/`bash`/`sh`/`python` with `-c`/`-e`/`--eval`, or non-pinned interpolated argv — CVE-2026-40933), tool-gate enforcement asymmetry (allowlist / read-only / non-destructive check applied in `tools/list` but not `tools/call` — CVE-2026-46519), unauthenticated MCP HTTP/SSE server on `0.0.0.0` / wildcard CORS (GitLab/Nocturne/AgenticMail no-auth class — CVE-2026-44895/44830/50287), plus the non-loopback no-auth **launch surface** — `mcp.json`/`claude_desktop_config.json`/`*.mcp.yaml` `command`/`args`, Docker `--host 0.0.0.0`/`-p 0.0.0.0:`, and MCP Inspector / FastMCP startup binding `0.0.0.0`/`::`/a routable IP with no token or `DANGEROUSLY_OMIT_AUTH` set (CWE-306; MCP Inspector exemplar CVE-2026-23744; mcp-pinot `0.0.0.0:8080` no-auth CVE-2026-49257; Windows-MCP wildcard-CORS no-auth CVE-2026-48989; ~12,520 exposed services per Censys), argv-rebuild-after-allowlist command-injection TOCTOU (a command/argv approved against an allow/deny list is re-split / re-joined / extended before `subprocess`/`os.exec*` / Node `child_process.spawn`/`execa` with no re-check — `AAK-MCP-ARGV-TOCTOU-001`, **CWE-77 + CWE-367 / CVE-2026-53822**), MCP server unauthenticated-by-default / fail-open auth (an auth function returning truthy on an empty/unset secret, a placeholder/empty secret literal — `""`/`changeme`/`os.environ.get(...,"")` — or a warning-only secret gate on a `0.0.0.0` bind — `AAK-MCP-NOAUTH-DEFAULT`, **CWE-306 + CWE-862 / CVE-2026-48814** (incomplete fix of CVE-2026-46701)), bearer-token → session-file path traversal (an untrusted token / `Authorization` header joined into a session file path used for an existence/read check with no separator-reject or resolve-and-contain guard — `AAK-MCP-AUTH-PATHTRAVERSAL-001`, **CWE-22 / CVE-2026-52830**, fast-mcp-telegram < 0.19.1), MCP tool-argument URL SSRF (an MCP tool handler passing a caller-supplied `url`/`endpoint`/`target` argument straight into an outbound `requests`/`httpx`/`urllib`/`aiohttp` fetch with no host/scheme allow-list — `ast` parameter→fetch taint for Python, regex fallback for TS/JS/Rust — `AAK-MCP-SSRF-001`, **CWE-918 / CVE-2026-14748**, AIAnytime Awesome-MCP-Server `mcp-wiki/wiki-summary`), Serena MCP toolkit unauthenticated-dashboard RCE (`serena-agent` < 1.5.2 — an unauthenticated Flask dashboard on a fixed port reachable via DNS rebinding writes the agent's persistent memory, chained with `execute_shell_command` `shell=True` to remote code execution — `AAK-MCP-SERENA-CVE-2026-49471-001`, **CWE-306 + CWE-352 / CVE-2026-49471**, HIGH 8.3) |
|
|
114
|
+
| **Supply Chain** | <!-- category-count:SUPPLY_CHAIN -->42<!-- /category-count --> | Vulnerable LangChain / langchain-text-splitters versions, named pin rules for `astro-mcp-server` / `chatgpt-mcp-server` / `docsgpt` / `gpt-researcher` / `litellm` / `mcp-calculate-server` / `semantic-kernel` / `@anthropic-ai/claude-code` / `apache-doris-mcp-server` / `excel-mcp-server`, OX MCP-STDIO command-injection (Python/TS/Java/Rust) — `AAK-MCP-STDIO-CMD-INJ-001..004` — Stainless-generator lineage, marketplace.json signatures / typosquat / mutable refs, unpinned packages, dangerous install scripts, untrusted-search-path executable override in skill/install flows (`.env`-sourced binary, workspace-prepended `PATH`, `shutil.which` over a tainted PATH, Homebrew env override — `AAK-SKILL-UNTRUSTED-EXEC-PATH`, **CWE-426 / CVE-2026-53819**) |
|
|
115
115
|
| **Tool Poisoning** | <!-- category-count:TOOL_POISONING -->27<!-- /category-count --> | Invisible Unicode / bidi, skill frontmatter injection, SKILL.md post-install commands, data-exfil primitives, skill name hijacking, cross-tool references, rug-pull (SHA-256 pinning), `@mcp.tool` unsafe-eval (CVE-2026-44717 generalization), OpenAPI smells (Hermes paper LAZY/BLOATED/TANGLED), Metis POMDP refusal-refeed + scoring-sink, SkillsVote lifecycle attribution, MCP Calculate Server pin, Kong Konnect MCP server < 1.0.0 indirect prompt injection → unintended Konnect/Admin API requests (`AAK-MCP-KONG-CVE-2026-13341-001`, **CVE-2026-13341**, HIGH 7.4). Indirect-prompt-injection detection (`AAK-POISON-001..006`) runs against tool descriptions **and** every per-parameter `inputSchema.properties.*.description` (recursive — nested objects, array items, `anyOf`/`allOf`/`oneOf`), so instruction text hidden in a single argument's docstring is caught |
|
|
116
116
|
| **Secret Exposure** | <!-- category-count:SECRET_EXPOSURE -->18<!-- /category-count --> | Anthropic/OpenAI/AWS/GitHub/GitLab/GCP keys, Shannon-entropy detection, `.env` leaks, private-key files, hardcoded credential surface, token-leak via log sinks (CVE-2026-20205), `${VAR}`/process.env placeholder resolution on user-supplied MCP URLs → secret exfiltration (CVE-2026-32625) |
|
|
117
117
|
| **Agent Config** | <!-- category-count:AGENT_CONFIG -->15<!-- /category-count --> | Routines permission escalation + schedule injection + audit-log gaps, AGENTS.md/CLAUDE.md/.cursorrules hijacking, hidden Unicode, encoded payloads, internal scanner-fail signal, Project Deal economic-drift detection |
|
|
@@ -123,7 +123,7 @@ agent-audit-kit scan examples/vulnerable-configs/04-hook-exfiltration/
|
|
|
123
123
|
| **Trust Boundaries** | <!-- category-count:TRUST_BOUNDARY -->12<!-- /category-count --> | `enableAllProjectMcpServers`, API URL redirects, wildcard permissions, missing deny rules, missing allowlists, Claude Code folder-trust bypass (CVE-2026-40068) |
|
|
124
124
|
| **MCP Server Card** | <!-- category-count:MCP_SERVER_CARD -->4<!-- /category-count --> | Static audit of SEP-1649 discovery cards (`/.well-known/mcp/server-card.json`): tool-description poisoning in `tools[].description` (`AAK-MCP-CARD-001`, reuses the AAK-POISON detectors), declared-transport vs advertised-capability mismatch — remote transport with `authentication.required: false`, or `stdio` advertising a remote endpoint (`AAK-MCP-CARD-002`), missing / placeholder signature / provenance (`AAK-MCP-CARD-003`), and over-broad capability / wildcard-scope claims (`AAK-MCP-CARD-004`) |
|
|
125
125
|
|
|
126
|
-
**<!-- rule-count:total -->
|
|
126
|
+
**<!-- rule-count:total -->234<!-- /rule-count --> rules total.** Every finding includes severity, evidence, remediation, OWASP references, Adversa references, and CVE links where applicable.
|
|
127
127
|
|
|
128
128
|
### MCP Server Card scanning (SEP-1649)
|
|
129
129
|
|
|
@@ -318,11 +318,11 @@ cross-reference, not a head-to-head benchmark.
|
|
|
318
318
|
| ASI | Title | # rules |
|
|
319
319
|
| --- | --- | --- |
|
|
320
320
|
| **ASI01** | Goal Hijack | 12 |
|
|
321
|
-
| **ASI02** | Tool Misuse |
|
|
321
|
+
| **ASI02** | Tool Misuse | 39 |
|
|
322
322
|
| **ASI03** | Memory Poisoning | 56 |
|
|
323
|
-
| **ASI04** | Identity & Privilege Abuse |
|
|
323
|
+
| **ASI04** | Identity & Privilege Abuse | 39 |
|
|
324
324
|
| **ASI05** | Cascading Failures | 33 |
|
|
325
|
-
| **ASI06** | Unauthorized Capability Acquisition |
|
|
325
|
+
| **ASI06** | Unauthorized Capability Acquisition | 31 |
|
|
326
326
|
| **ASI07** | Plan Injection | 9 |
|
|
327
327
|
| **ASI08** | Agent Communication Poisoning | 4 |
|
|
328
328
|
| **ASI09** | Resource Abuse | 14 |
|
|
@@ -364,7 +364,7 @@ See [`docs/comparisons.md`](docs/comparisons.md) for a fully-sourced version. Ve
|
|
|
364
364
|
| Feature | AgentAuditKit | Microsoft AGT | Snyk Agent Scan | Semgrep Multimodal |
|
|
365
365
|
|---------|:---:|:---:|:---:|:---:|
|
|
366
366
|
| Scope | Static scanner + compliance PDFs | Runtime governance | Static + runtime | Multimodal SAST |
|
|
367
|
-
| Detection rules (static) | **<!-- rule-count:total -->
|
|
367
|
+
| Detection rules (static) | **<!-- rule-count:total -->234<!-- /rule-count -->** | Runtime policies, not rules | ~30 | LLM-assisted |
|
|
368
368
|
| OWASP Agentic 10/10 | **Yes** | Yes | Partial | Partial |
|
|
369
369
|
| OWASP MCP 10/10 | **Yes** | No (runtime-focused) | No | No |
|
|
370
370
|
| Auditor-ready PDF compliance | **12 frameworks** | No | 0 | 0 |
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: 'AgentAuditKit MCP Security Scan'
|
|
2
|
-
description: 'AgentAuditKit — MCP Security Scan (
|
|
2
|
+
description: 'AgentAuditKit — MCP Security Scan (234 rules, OWASP Agentic Top 10 + MCP Top 10)'
|
|
3
3
|
author: 'sattyamjjain'
|
|
4
4
|
|
|
5
5
|
branding:
|
|
@@ -84,7 +84,7 @@ _OPTIONAL_SCANNERS: list[tuple[str, str, list[str]]] = [
|
|
|
84
84
|
("skill_lifecycle_attribution", "Skill lifecycle outcome-attribution (SkillsVote, arXiv:2605.18401)", []),
|
|
85
85
|
("agent_harness_shared_state", "Multi-agent shared-state lock (Code-as-Harness, arXiv:2605.18747)", []),
|
|
86
86
|
("mcp_sampling_capability", "MCP `sampling` capability consent guard (MCP07:2025)", []),
|
|
87
|
-
("mcp_stateless_migration", "MCP 2026-07-28 stateless-migration smells (SEP-1442/
|
|
87
|
+
("mcp_stateless_migration", "MCP 2026-07-28 stateless-migration smells (SEP-2567/1442/2575)", []),
|
|
88
88
|
("eu_ai_act_art15_locale", "EU AI Act Art. 15 multilingual-eval coverage (advisory)", []),
|
|
89
89
|
("mcp_tunnel", "MCP Tunnels gateway config + credential exposure (Anthropic 2026-05-19 research preview)", []),
|
|
90
90
|
("sandbox_self_disable", "Tool-schema sandbox self-disable parameter (CVE-2026-42074)", []),
|
|
@@ -99,6 +99,7 @@ _OPTIONAL_SCANNERS: list[tuple[str, str, list[str]]] = [
|
|
|
99
99
|
("mcp_noauth_default", "MCP server unauthenticated-by-default / fail-open auth (CVE-2026-48814)", []),
|
|
100
100
|
("mcp_auth_pathtraversal", "MCP bearer-token joined into session file path (CVE-2026-52830)", []),
|
|
101
101
|
("mcp_server_card", "MCP Server Card static audit (SEP-1649 /.well-known/mcp/server-card.json)", []),
|
|
102
|
+
("mcp_ssrf_toolarg", "MCP tool-arg URL SSRF (CVE-2026-14748)", []),
|
|
102
103
|
]
|
|
103
104
|
|
|
104
105
|
|
|
@@ -125,6 +125,9 @@ _AICM_TAGS: dict[str, list[str]] = {
|
|
|
125
125
|
"AAK-AZURE-MCP-NOAUTH-001": ["IAM-01", "IAM-16"],
|
|
126
126
|
"AAK-MCP-AUTH-PATHTRAVERSAL-001": ["IAM-01", "IVS-04"],
|
|
127
127
|
"AAK-MCP-KONG-CVE-2026-13341-001": ["AIS-07", "AIS-12"],
|
|
128
|
+
"AAK-MCP-GATEWAY-REGISTRY-CVE-2026-14471-001": ["AIS-07", "DSP-07"],
|
|
129
|
+
"AAK-MCP-SSRF-001": ["IVS-04", "AIS-08"],
|
|
130
|
+
"AAK-MCP-SERENA-CVE-2026-49471-001": ["IAM-01", "IAM-16"],
|
|
128
131
|
"AAK-LMDEPLOY-VL-SSRF-001": ["IVS-04", "AIS-08"],
|
|
129
132
|
"AAK-SPLUNK-MCP-TOKEN-LEAK-001": ["DSP-17", "LOG-06"],
|
|
130
133
|
"AAK-MARKETPLACE-001": ["STA-10"],
|
|
@@ -525,22 +528,27 @@ _r(
|
|
|
525
528
|
# ---------------------------------------------------------------------------
|
|
526
529
|
# AAK-MCP-STATELESS-001..004 — 2026-07-28 stateless-MCP migration
|
|
527
530
|
#
|
|
528
|
-
# The MCP 2026-07-28 spec release candidate
|
|
529
|
-
#
|
|
530
|
-
#
|
|
531
|
-
#
|
|
532
|
-
#
|
|
533
|
-
#
|
|
534
|
-
#
|
|
535
|
-
#
|
|
536
|
-
#
|
|
537
|
-
#
|
|
531
|
+
# The MCP 2026-07-28 spec release candidate makes the protocol stateless by
|
|
532
|
+
# default: the `Mcp-Session-Id` header and the protocol-level session are
|
|
533
|
+
# removed and replaced with explicit, server-minted state handles (SEP-2567),
|
|
534
|
+
# while making the mandatory initialization handshake optional so stateless is
|
|
535
|
+
# the default (SEP-1442 / SEP-2575). The experimental Tasks primitive (SEP-1686)
|
|
536
|
+
# — including `tasks/list` — is moved out of the core spec into the Extensions
|
|
537
|
+
# framework (redesigned as SEP-2663), so core `tasks/list` is removed. Server/
|
|
538
|
+
# client code that assumes the pre-RC stateful protocol — relies on
|
|
539
|
+
# `Mcp-Session-Id`, dispatches `tasks/list`, requires sticky routing or a shared
|
|
540
|
+
# session store, or skips client-side caching of `tools/list` while holding
|
|
541
|
+
# per-session server state — will silently break after 2026-07-28 once the final
|
|
542
|
+
# spec lands. These four rules surface the migration surface so it can be fixed
|
|
543
|
+
# before the cutover.
|
|
538
544
|
#
|
|
539
545
|
# Sources:
|
|
540
546
|
# https://blog.modelcontextprotocol.io/posts/2026-07-28-release-candidate/
|
|
541
|
-
# https://
|
|
547
|
+
# https://modelcontextprotocol.io/seps/2567-sessionless-mcp
|
|
542
548
|
# https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1442
|
|
543
|
-
# https://github.com/modelcontextprotocol/modelcontextprotocol/
|
|
549
|
+
# https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2575
|
|
550
|
+
# https://modelcontextprotocol.io/community/seps/1686-tasks
|
|
551
|
+
# https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2663
|
|
544
552
|
# ---------------------------------------------------------------------------
|
|
545
553
|
|
|
546
554
|
_r(
|
|
@@ -548,8 +556,10 @@ _r(
|
|
|
548
556
|
"Reliance on `Mcp-Session-Id` header / protocol-level session id",
|
|
549
557
|
"Server or client code reads, writes, asserts, or constants the "
|
|
550
558
|
"`Mcp-Session-Id` header. The MCP 2026-07-28 spec release candidate "
|
|
551
|
-
"
|
|
552
|
-
"
|
|
559
|
+
"removes the `Mcp-Session-Id` header and the protocol-level session, "
|
|
560
|
+
"replacing them with explicit server-minted state handles (SEP-2567); "
|
|
561
|
+
"SEP-1442 / SEP-2575 make the initialization handshake optional so "
|
|
562
|
+
"stateless is the default. After "
|
|
553
563
|
"the final spec lands on 2026-07-28, code that depends on this header "
|
|
554
564
|
"(or on the session it represented) will silently break: any MCP "
|
|
555
565
|
"request can land on any server instance, and sticky routing / shared "
|
|
@@ -572,10 +582,11 @@ _r(
|
|
|
572
582
|
"Use of removed `tasks/list` method",
|
|
573
583
|
"Server or client code dispatches, handles, or names the `tasks/list` "
|
|
574
584
|
"JSON-RPC method. The MCP 2026-07-28 spec release candidate removes "
|
|
575
|
-
"`tasks/list`
|
|
576
|
-
"protocol-level session
|
|
577
|
-
"
|
|
578
|
-
"
|
|
585
|
+
"`tasks/list` from the core because it cannot be scoped safely without "
|
|
586
|
+
"the protocol-level session: the experimental Tasks primitive (SEP-1686) "
|
|
587
|
+
"moves out of the core specification into the Extensions framework "
|
|
588
|
+
"(redesigned as SEP-2663), and the stateful list surface has no "
|
|
589
|
+
"stateless successor in core.",
|
|
579
590
|
Severity.HIGH,
|
|
580
591
|
Category.MCP_CONFIG,
|
|
581
592
|
"Stop calling and handling `tasks/list`. If your application needs an "
|
|
@@ -5196,6 +5207,108 @@ _r(
|
|
|
5196
5207
|
adversa_references=["ADV-INJECT-01"],
|
|
5197
5208
|
)
|
|
5198
5209
|
|
|
5210
|
+
_r(
|
|
5211
|
+
"AAK-MCP-GATEWAY-REGISTRY-CVE-2026-14471-001",
|
|
5212
|
+
"Amazon mcp-gateway-registry < 1.0.13 (SQL injection)",
|
|
5213
|
+
"The Amazon `mcp-gateway-registry` before 1.0.13 improperly neutralizes a "
|
|
5214
|
+
"caller-supplied `table_name` in the metrics-service retention-policy "
|
|
5215
|
+
"component: the value is interpolated directly into an SQL statement in "
|
|
5216
|
+
"identifier position, so an authenticated remote user can execute arbitrary "
|
|
5217
|
+
"SQL against the gateway's metrics store (CVE-2026-14471, HIGH CVSS 8.1, "
|
|
5218
|
+
"CWE-89, published 2026-07-06). A project that depends on the gateway "
|
|
5219
|
+
"registry at a version below 1.0.13 (or unpinned) is exposed.",
|
|
5220
|
+
Severity.HIGH,
|
|
5221
|
+
Category.SUPPLY_CHAIN,
|
|
5222
|
+
"Upgrade `mcp-gateway-registry` to >= 1.0.13 and pin it explicitly. Never "
|
|
5223
|
+
"interpolate a request-supplied value into an SQL identifier position; "
|
|
5224
|
+
"validate `table_name` against a fixed allow-list of known table names, or "
|
|
5225
|
+
"quote it with the driver's identifier-quoting API rather than string "
|
|
5226
|
+
"formatting.",
|
|
5227
|
+
sarif_name="McpGatewayRegistrySqlInjection",
|
|
5228
|
+
cve_references=["CVE-2026-14471"],
|
|
5229
|
+
owasp_mcp_references=["MCP04:2025"],
|
|
5230
|
+
owasp_agentic_references=["ASI02"],
|
|
5231
|
+
adversa_references=["ADV-SUPPLY-01"],
|
|
5232
|
+
)
|
|
5233
|
+
|
|
5234
|
+
|
|
5235
|
+
# ---------------------------------------------------------------------------
|
|
5236
|
+
# MCP tool-argument URL SSRF (CVE-2026-14748).
|
|
5237
|
+
#
|
|
5238
|
+
# The generic AAK-SSRF-001..005 family keys on request-object accessors
|
|
5239
|
+
# (`args[...]` / `req.query` / `request.json`) and misses the canonical
|
|
5240
|
+
# CVE-2026-14748 shape, where a bare tool-handler PARAMETER named `url` flows
|
|
5241
|
+
# straight into `requests.get(url)`. This CVE-pinned rule closes that gap with
|
|
5242
|
+
# an AST parameter->fetch taint path, mirroring how AAK-LANGCHAIN-SSRF-REDIR-001
|
|
5243
|
+
# and AAK-LMDEPLOY-VL-SSRF-001 sit alongside the generic SSRF class.
|
|
5244
|
+
# ---------------------------------------------------------------------------
|
|
5245
|
+
|
|
5246
|
+
_r(
|
|
5247
|
+
"AAK-MCP-SSRF-001",
|
|
5248
|
+
"MCP tool handler fetches a caller-supplied URL without host/scheme allow-list",
|
|
5249
|
+
"An MCP tool handler passes an attacker-controllable URL argument "
|
|
5250
|
+
"(`url` / `endpoint` / `target` / `uri` and similar) straight into an "
|
|
5251
|
+
"outbound fetch (`requests` / `httpx` / `urllib` / `aiohttp`) without "
|
|
5252
|
+
"validating the host or scheme first, so a caller-supplied URL is fetched "
|
|
5253
|
+
"server-side and can reach loopback, private-range, or cloud-metadata "
|
|
5254
|
+
"endpoints (CWE-918, server-side request forgery). NVD, CVE-2026-14748: "
|
|
5255
|
+
"\"A flaw has been found in AIAnytime Awesome-MCP-Server ... the file "
|
|
5256
|
+
"mcp-wiki/src/mcp_wiki/server.py of the component mcp-wiki/wiki-summary. "
|
|
5257
|
+
"This manipulation of the argument url causes server-side request forgery. "
|
|
5258
|
+
"The attack may be initiated remotely. The exploit has been published.\" "
|
|
5259
|
+
"(CVSS 6.3 MEDIUM, https://nvd.nist.gov/vuln/detail/CVE-2026-14748).",
|
|
5260
|
+
Severity.MEDIUM,
|
|
5261
|
+
Category.MCP_CONFIG,
|
|
5262
|
+
"Deny by default: before fetching, parse the URL, require an https scheme, "
|
|
5263
|
+
"resolve the host, and reject anything not on an explicit host allow-list "
|
|
5264
|
+
"(also reject RFC 1918, 127.0.0.0/8, 169.254.0.0/16, ::1, fc00::/7). "
|
|
5265
|
+
"Disable automatic redirects or re-validate every hop, and pin the resolved "
|
|
5266
|
+
"IP for the actual request to defeat DNS rebinding.",
|
|
5267
|
+
sarif_name="McpToolArgUrlSsrf",
|
|
5268
|
+
cve_references=["CVE-2026-14748"],
|
|
5269
|
+
owasp_mcp_references=["MCP09:2025"],
|
|
5270
|
+
owasp_agentic_references=["ASI06"],
|
|
5271
|
+
adversa_references=["ADV-SSRF-01"],
|
|
5272
|
+
)
|
|
5273
|
+
|
|
5274
|
+
|
|
5275
|
+
# ---------------------------------------------------------------------------
|
|
5276
|
+
# Serena MCP toolkit unauthenticated-dashboard → RCE (CVE-2026-49471).
|
|
5277
|
+
# Delivered as a dependency version-pin (fixed in serena-agent 1.5.2), mirroring
|
|
5278
|
+
# the gateway-registry / Kong CVE pins, but the underlying weakness is CWE-306
|
|
5279
|
+
# missing authentication (+ CWE-352 CSRF / DNS-rebinding) — same MCP_CONFIG
|
|
5280
|
+
# no-auth class as AAK-AZURE-MCP-NOAUTH-001.
|
|
5281
|
+
# ---------------------------------------------------------------------------
|
|
5282
|
+
|
|
5283
|
+
_r(
|
|
5284
|
+
"AAK-MCP-SERENA-CVE-2026-49471-001",
|
|
5285
|
+
"Serena MCP toolkit < 1.5.2 (unauthenticated dashboard → DNS-rebinding RCE)",
|
|
5286
|
+
"The Serena MCP coding toolkit (`serena-agent`) before 1.5.2 ships a "
|
|
5287
|
+
"built-in web dashboard that \"exposes an unauthenticated Flask API on a "
|
|
5288
|
+
"fixed, predictable port, with no authentication, no CSRF protection, and "
|
|
5289
|
+
"no Host header validation. A DNS rebinding attack allows a malicious "
|
|
5290
|
+
"webpage to reach this API from any browser and write arbitrary content to "
|
|
5291
|
+
"the agent's persistent memory store, which the agent reads and acts on "
|
|
5292
|
+
"autonomously. Combined with execute_shell_command using shell=True, this "
|
|
5293
|
+
"creates a remote code execution chain requiring only that the victim visit "
|
|
5294
|
+
"a malicious webpage while Serena is running.\" (NVD, CVE-2026-49471, HIGH "
|
|
5295
|
+
"CVSS 8.3, CWE-306 + CWE-352, published 2026-07-07). A project depending on "
|
|
5296
|
+
"`serena-agent` below 1.5.2 (or unpinned, or launched from an unpinned "
|
|
5297
|
+
"`oraios/serena` / `serena-mcp-server` reference) is exposed. Fixed in 1.5.2.",
|
|
5298
|
+
Severity.HIGH,
|
|
5299
|
+
Category.MCP_CONFIG,
|
|
5300
|
+
"Upgrade `serena-agent` to >= 1.5.2 and pin it explicitly. 1.5.2 binds the "
|
|
5301
|
+
"dashboard to loopback, adds a random per-session token, validates the Host "
|
|
5302
|
+
"header, and enforces CSRF — which together break the DNS-rebinding path. "
|
|
5303
|
+
"Do not expose the Serena dashboard on a routable interface, and keep "
|
|
5304
|
+
"`execute_shell_command` behind an explicit approval gate.",
|
|
5305
|
+
sarif_name="SerenaMcpUnauthDashboardRce",
|
|
5306
|
+
cve_references=["CVE-2026-49471"],
|
|
5307
|
+
owasp_mcp_references=["MCP02:2025"],
|
|
5308
|
+
owasp_agentic_references=["ASI04"],
|
|
5309
|
+
adversa_references=["ADV-AUTH-01"],
|
|
5310
|
+
)
|
|
5311
|
+
|
|
5199
5312
|
|
|
5200
5313
|
# ---------------------------------------------------------------------------
|
|
5201
5314
|
# Internal / meta rules (surfaced when the scanner itself has a problem)
|