agent-audit-kit 0.3.41__tar.gz → 0.3.46__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.41 → agent_audit_kit-0.3.46}/.github/workflows/badge-ox-coverage.yml +1 -1
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/workflows/ci.yml +1 -1
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/workflows/codeql.yml +3 -3
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/workflows/coverage-page.yml +1 -1
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/workflows/cve-watcher.yml +1 -1
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/workflows/mcp-security-index.yml +1 -1
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/workflows/release.yml +2 -2
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/workflows/scorecard.yml +1 -1
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/workflows/sync-repo-metadata.yml +1 -1
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/workflows/sync-rule-count.yml +1 -1
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/CHANGELOG.cves.md +6 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/CHANGELOG.md +167 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/CLAUDE.md +6 -6
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/PKG-INFO +83 -15
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/README.md +82 -14
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/action.yml +1 -1
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/__init__.py +3 -3
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/engine.py +2 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/models.py +1 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/rules/builtin.py +167 -6
- agent_audit_kit-0.3.46/agent_audit_kit/scanners/mcp_auth_pathtraversal.py +347 -0
- agent_audit_kit-0.3.46/agent_audit_kit/scanners/mcp_server_card.py +298 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/stdio_injection.py +6 -4
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/supply_chain.py +64 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/benchmarks/crawler.py +119 -20
- agent_audit_kit-0.3.46/benchmarks/determinism/RESULTS.md +27 -0
- agent_audit_kit-0.3.46/benchmarks/determinism/run.py +208 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/benchmarks/sources.py +34 -0
- agent_audit_kit-0.3.46/docs/DISTRIBUTION-CHECKLIST.md +133 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/ci-cd.md +2 -2
- agent_audit_kit-0.3.46/docs/coverage/owasp-agentic-top10.md +26 -0
- agent_audit_kit-0.3.46/docs/coverage/owasp-mcp-top10.md +22 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/getting-started.md +2 -2
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/index.md +1 -1
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/launch/hn.md +2 -2
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/launch/reddit.md +3 -3
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/launch/x-thread.md +2 -2
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/owasp-agentic-coverage.md +4 -4
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/presets/mcp-ox-2026-04.md +1 -1
- agent_audit_kit-0.3.46/docs/rules/AAK-MCP-AUTH-PATHTRAVERSAL-001.md +98 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules/index.md +6 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/launch/awesome-list-prs/awesome-opensource-security.md +2 -2
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/launch/awesome-list-prs/awesome-security.md +2 -2
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/launch/blog-50-mcp-servers.md +2 -2
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/launch/owasp-outreach.md +4 -4
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/launch/state-of-mcp-security-2026.md +13 -9
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/public/owasp-agentic-coverage.json +55 -8
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/pyproject.toml +1 -1
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/requirements-lock.txt +3 -3
- agent_audit_kit-0.3.46/research/state-of-mcp-2026/PREVALENCE.md +204 -0
- agent_audit_kit-0.3.46/research/state-of-mcp-2026/REPORT.md +36 -0
- agent_audit_kit-0.3.46/research/state-of-mcp-2026/results.json +166 -0
- agent_audit_kit-0.3.46/research/state-of-mcp-2026/run_report.py +218 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/rules.json +146 -3
- agent_audit_kit-0.3.46/scripts/gen_coverage.py +187 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/site/coverage/index.html +2 -2
- agent_audit_kit-0.3.46/tests/fixtures/kong_konnect/.mcp.json +9 -0
- agent_audit_kit-0.3.46/tests/fixtures/server_cards/clean.server-card.json +14 -0
- agent_audit_kit-0.3.46/tests/fixtures/server_cards/poisoned.server-card.json +18 -0
- agent_audit_kit-0.3.46/tests/test_coverage_tables.py +56 -0
- agent_audit_kit-0.3.46/tests/test_determinism_benchmark.py +38 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_flowise.py +15 -1
- agent_audit_kit-0.3.46/tests/test_kong_konnect_cve_2026_13341.py +68 -0
- agent_audit_kit-0.3.46/tests/test_mcp_auth_pathtraversal.py +208 -0
- agent_audit_kit-0.3.46/tests/test_mcp_server_card.py +132 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_phase5.py +1 -1
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.agent-audit-kit.yml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.claude/auto-memory/config.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.editorconfig +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/FUNDING.yml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/dependabot.yml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/workflows/docker-nightly.yml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/workflows/self-scan.yml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.gitignore +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.pre-commit-config.yaml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.pre-commit-hooks.yaml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/CLAUDE_PROMPT.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/CODE_OF_CONDUCT.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/CONTRIBUTING.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/DEEP_ANALYSIS.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/Dockerfile +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/LICENSE +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/ROADMAP_2026.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/SECURITY.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/advisories.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/autofix/__init__.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/autofix/langgraph_toolnode.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/bundle.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/checks/__init__.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/checks/economic_drift.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/checks/openclaw.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/cli.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/cli_modules/__init__.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/cli_modules/rule_lint.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/corpus/__init__.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/corpus/manifest.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/coverage.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/data/aivss-v08-defaults.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/data/fhi_universal_suffixes.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/data/ipi_wild_payloads_2026_04.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/data/ox-cve-manifest.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/data/prisma-airs-aak-map.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/data/prisma-airs-catalog.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/data/toxic_flow_pairs.yml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/data/vuln_db.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/diff.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/discovery.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/feeds/__init__.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/fix.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/ide/__init__.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/ide/lsp_diag.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/integrations/__init__.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/integrations/notify.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/llm_scan.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/output/__init__.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/output/aicm.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/output/compliance.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/output/console.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/output/json_report.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/output/owasp_report.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/output/pdf_report.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/output/pr_summary.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/output/sarif.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/output/sbom.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/parity/__init__.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/pinning.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/presets/__init__.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/presets/mcp-ox-2026-04.yaml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/proxy/__init__.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/proxy/interceptor.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/remediation/__init__.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/remediation/engine.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/rules/__init__.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/sanitizers/__init__.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/sanitizers/crewai.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/sanitizers/deepseek.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/sarif/__init__.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/sarif/diff.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/__init__.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/_helpers.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/a2a_protocol.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/agent_config.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/agent_harness_shared_state.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/argv_toctou.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/crewai_rce_chain.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/deepseek_v4_tool_injection.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/dns_rebind.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/docsgpt_transport_flip.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/eu_ai_act_art15_locale.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/gha_hardening.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/gpt_researcher_transport_flip.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/healthcare_ai.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/hook_injection.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/hook_rce.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/india_pii.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/ipi_wild_corpus.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/langchain_prompt_loader.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/langchain_vuln.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/langgraph_toolnode.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/legal_compliance.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/llm_sql_rce.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/log_injection.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/log_token_leak.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/marketplace_manifest.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_atlassian.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_auth_patterns.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_config.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_env_placeholder_exfil.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_fhi.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_http_noauth_server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_inspector_cve.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_marketplace_fetch.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_middleware.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_noauth_default.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_sampling_capability.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_sdk_hardening.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_server_auth.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_stateless_migration.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_stdio_launcher.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_stdio_params.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_tasks.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_tool_unsafe_eval.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_toolgate_asymmetry.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_tunnel.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/metis_pomdp.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/neo4j_cve.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/oauth_misconfig.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/oauth_surface.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/openapi_smells.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/openclaw_privesc.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/pin_drift.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/project_deal_drift.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/prtitle_ipi.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/routines.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/rust_pattern_scan.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/rust_scan.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/sandbox_self_disable.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/secret_exposure.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/shared_resource_authz.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/skill_lifecycle_attribution.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/skill_poisoning.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/skill_untrusted_exec_path.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/social_agent_hijack.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/splunk_mcp_config.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/ssrf_patterns.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/ssrf_redirect.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/ssrf_toctou.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/stainless_lineage.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/state_privacy.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/taint_analysis.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/tool_poisoning.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/toxic_flow.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/transport_limits.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/transport_security.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/trust_boundary.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/typescript_pattern_scan.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/typescript_scan.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scoring/__init__.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scoring/aivss.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scoring/aivss_schema.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/translators/__init__.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/translators/pipelock.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/translators/prisma_airs.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/verification.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/vuln_db.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/watch.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/benchmarks/README.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/benchmarks/index_builder.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/benchmarks/results-2026-06-13.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/benchmarks/run_benchmark.sh +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/benchmarks/sample_configs/sample_01_clean.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/benchmarks/sample_configs/sample_02_secrets.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/benchmarks/sample_configs/sample_03_no_auth.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/benchmarks/sample_configs/sample_04_shell_injection.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/benchmarks/sample_configs/sample_05_mixed.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/ci/gitlab/agent-audit-kit.gitlab-ci.yml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/CNAME +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/RELEASING.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/azure-pipelines.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/blog/state-of-mcp-security-template.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/circleci.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/comparison-gitlab-agentic-sast.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/comparison.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/comparisons.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/disclosure-policy.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/gitlab-ci.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/launch/CHECKLIST.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/launch/github-verified-creator-application.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/launch/owasp-reference-tool-submission.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/launch/press.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/launch/release-notes-v0.3.0.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/metrics.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/notes/adjudicator-pattern.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/owasp-mapping.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/plans/2026-04-21-v0.3.3-design.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/research-log.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/roadmap/ox-mcp-2026-05-01-batch.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rule-schema.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules/AAK-AZURE-MCP-001.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules/AAK-AZURE-MCP-NOAUTH-001.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules/AAK-LANGCHAIN-SSRF-REDIR-001.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules/AAK-LMDEPLOY-VL-SSRF-001.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules/AAK-MCP-MARKETPLACE-CONFIG-FETCH-001.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules/AAK-MCP-STDIO-CMD-INJ-001.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules/AAK-MCP-STDIO-CMD-INJ-002.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules/AAK-MCP-STDIO-CMD-INJ-003.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules/AAK-MCP-STDIO-CMD-INJ-004.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules/AAK-SPLUNK-MCP-TOKEN-LEAK-001.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules/AAK-SSRF-TOCTOU-001.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules/AAK-TOXICFLOW-001.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/spec/sarif-runtime-context.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/editors/zed/README.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/editors/zed/extension.toml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/entrypoint.sh +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/README.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/case-studies/damn-vulnerable-mcp/README.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/case-studies/damn-vulnerable-mcp/configs/dvmcp-inspired.mcp.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/case-studies/damn-vulnerable-mcp/configs/dvmcp-settings.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/case-studies/damn-vulnerable-mcp/scan-results.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/case-studies/damn-vulnerable-mcp/scan-results.sarif +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/ci-integration/README.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/ci-integration/docker-one-liner.sh +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/ci-integration/github-actions-sarif.yml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/ci-integration/gitlab-ci-scan.yml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/ci-integration/pre-commit-config.yaml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/run-all-examples.sh +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/01-no-auth-remote/.mcp.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/01-no-auth-remote/expected-findings.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/02-shell-injection/.mcp.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/02-shell-injection/expected-findings.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/03-hardcoded-secrets/.gitignore +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/03-hardcoded-secrets/.mcp.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/03-hardcoded-secrets/expected-findings.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/04-hook-exfiltration/.claude/settings.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/04-hook-exfiltration/expected-findings.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/05-trust-boundary-violations/.claude/settings.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/05-trust-boundary-violations/.mcp.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/05-trust-boundary-violations/expected-findings.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/06-tool-poisoning/.mcp.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/06-tool-poisoning/expected-findings.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/07-tainted-tool-function/expected-findings.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/07-tainted-tool-function/server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/08-transport-insecurity/.mcp.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/08-transport-insecurity/expected-findings.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/09-a2a-insecure-agent/agent-card.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/09-a2a-insecure-agent/expected-findings.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/10-supply-chain-risks/.mcp.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/10-supply-chain-risks/expected-findings.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/10-supply-chain-risks/package.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/11-legal-compliance/expected-findings.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/11-legal-compliance/package.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/11-legal-compliance/subproject/package.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/README.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/launch/MARKET-RESEARCH-2026-04-12.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/launch/demo.cast +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/mkdocs.yml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/public/badges/ox-coverage.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/public/corpora/manifest.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/releases/v0.3.10.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/releases/v0.3.5.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/releases/v0.3.6.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/releases/v0.3.7.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/releases/v0.3.8.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/releases/v0.3.9.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/schema/ox-cve-manifest.schema.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/scripts/backfill_cve_property.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/scripts/build_coverage_page.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/scripts/close_duplicate_cve_issues.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/scripts/cve_watcher.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/scripts/gen_owasp_coverage.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/scripts/generate_lockfile.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/scripts/install-pre-commit.sh +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/scripts/sync_repo_metadata.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/scripts/sync_rule_count.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/scripts/sync_scanner_count.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/scripts/watch_csa_mcp_baseline.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/site/coverage/ox.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/site/coverage/prisma-airs.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/conftest.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/LICENSES.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/clean_mcp.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/clean_settings.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/crewai/safe/full_chain.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/crewai/vulnerable/full_chain.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/a2a_2026/vulnerable_card.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/comment-and-control-2026-04-25/patched/review_agent.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/comment-and-control-2026-04-25/vulnerable/review_agent.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2025-65720-gpt-researcher/config-safe-rejected/.mcp.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2025-65720-gpt-researcher/config-unsafe/.mcp.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2025-65720-gpt-researcher/pin-vulnerable-git/package.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2025-65720-gpt-researcher/pin-vulnerable-pypi/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2025-66335/patched/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2025-66335/vulnerable/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-20205/patched-splunk-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-20205/redacted-token-log/server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-20205/vulnerable-splunk-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-20205/vulnerable-token-log/server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-20205-config/patched-yaml/splunk-mcp.yaml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-20205-config/vulnerable-inputs/inputs.conf +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-20205-config/vulnerable-yaml/splunk-mcp.yaml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-23744-mcp-inspector/vendored-fork/vendor/mcpjam-inspector/server.ts +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-26015-docsgpt/config-safe-no-override/.mcp.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-26015-docsgpt/config-safe-rejected/.mcp.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-26015-docsgpt/config-unsafe/.mcp.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-26015-docsgpt/pin-safe/package.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-26015-docsgpt/pin-vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-26015-docsgpt/pin-vulnerable-git/package.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-26030-semantic-kernel/pin-safe/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-26030-semantic-kernel/pin-safe-floor/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-26030-semantic-kernel/pin-vulnerable/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-27825-atlassian/patched-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-27825-atlassian/vulnerable/agent.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-30615/patched/py_argv_allowlist.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-30615/vulnerable/py_os_system_stdin.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-30615/vulnerable/py_subprocess_shell.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-30615/vulnerable/ts_execa_shell.ts +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-30623-litellm/patched/requirements-floor.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-30623-litellm/patched/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-30623-litellm/vulnerable/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-32211/patched-with-auth/.mcp.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-32211/vulnerable-no-auth/.mcp.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-32211-server/pyproject.toml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-32211-server/server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-33032/patched/router.go +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-33032/vulnerable/router.go +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-33032/vulnerable/server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-33032/vulnerable/server.ts +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-33626/patched-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-33626/vulnerable/pipeline.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-39313/length-capped/http.ts +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-39313/patched/package.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-39313/vulnerable/http.ts +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-39313/vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-40068-claudecode/pin-safe/package.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-40068-claudecode/pin-vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-40933/vulnerable/flow.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-41481/patched-no-redirect/server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-41481/patched-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-41481/vulnerable-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-41481/vulnerable-redirect/server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-41488/patched-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-41488/patched-pinned/server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-41488/vulnerable-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-41488/vulnerable-toctou/server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-44717-mcp-calculate-server/pin-safe/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-44717-mcp-calculate-server/pin-safe-floor/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-44717-mcp-calculate-server/pin-vulnerable/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-7061-chatgpt-mcp/safe/package.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-7061-chatgpt-mcp/vulnerable-git/package.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-7061-chatgpt-mcp/vulnerable-shorthand/package.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-7591-astro-mcp/source-safe/no_import.ts +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-7591-astro-mcp/source-safe/parametrized.ts +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-7591-astro-mcp/source-safe/tagged_template.ts +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-7591-astro-mcp/source-unsafe/index.ts +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-7591-astro-mcp/vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/dns-rebind-sdk-class/apollo-patched/package.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/dns-rebind-sdk-class/apollo-vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/dns-rebind-sdk-class/java-patched/pom.xml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/dns-rebind-sdk-class/java-vulnerable/pom.xml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/dns-rebind-sdk-class/python-patched/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/dns-rebind-sdk-class/python-pattern-guarded/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/dns-rebind-sdk-class/python-pattern-guarded/server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/dns-rebind-sdk-class/python-pattern-unguarded/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/dns-rebind-sdk-class/python-pattern-unguarded/server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/dns-rebind-sdk-class/python-vulnerable/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/healthcare_ai/safe_skill.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/healthcare_ai/vulnerable_skill.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/hook_rce/safe_settings.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/hook_rce/vulnerable_settings.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/india_pii/safe.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/india_pii/vulnerable.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/langchain/safe_requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/langchain/vulnerable_prompt.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/langchain/vulnerable_requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/marketplace/safe.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/marketplace/vulnerable.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/mcp_auth/safe_server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/mcp_auth/vulnerable_server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/oauth/safe.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/oauth/vulnerable.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/ox-mcp-stdio-class/patched_java.java +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/ox-mcp-stdio-class/patched_py.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/ox-mcp-stdio-class/patched_rust.rs +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/ox-mcp-stdio-class/patched_ts.ts +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/ox-mcp-stdio-class/vulnerable_java.java +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/ox-mcp-stdio-class/vulnerable_py.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/ox-mcp-stdio-class/vulnerable_rust.rs +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/ox-mcp-stdio-class/vulnerable_ts.ts +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/routines/safe.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/routines/vulnerable.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/skills/safe.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/skills/vulnerable.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/ssrf/safe.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/ssrf/vulnerable.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/state_privacy/safe_privacy.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/state_privacy/vulnerable_privacy.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/tasks/safe.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/tasks/vulnerable.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/deepseek/safe/agent.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/deepseek/vulnerable/agent.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/env_with_secrets +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/eu_ai_act_art15_locale/documented_risk/.agent-audit-kit.yml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/eu_ai_act_art15_locale/documented_risk/agent.yaml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/eu_ai_act_art15_locale/multilingual_en_only/agent.yaml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/eu_ai_act_art15_locale/multilingual_en_only/evals/welcome.en.yaml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/eu_ai_act_art15_locale/multilingual_internal_only/agent.yaml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/eu_ai_act_art15_locale/multilingual_with_coverage/agent.yaml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/eu_ai_act_art15_locale/multilingual_with_coverage/evals/welcome.de.yaml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/eu_ai_act_art15_locale/multilingual_with_coverage/evals/welcome.en.yaml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/eu_ai_act_art15_locale/multilingual_with_coverage/evals/welcome.fr.yaml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/eu_ai_act_art15_locale/single_locale/agent.yaml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/harness_shared_state/safe_multi_agent.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/harness_shared_state/unsafe_multi_agent.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ipi-wild-2026-04-24/poisoned_template.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/mcp-fhi/clean/server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/mcp-fhi/vulnerable/server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-2026-04-15/documented-risk/.agent-audit-kit.yml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-2026-04-15/documented-risk/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-2026-04-15/documented-risk/server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-2026-04-15/python/sanitized/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-2026-04-15/python/sanitized/server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-2026-04-15/python/vulnerable/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-2026-04-15/python/vulnerable/server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-2026-04-15/typescript/sanitized/package.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-2026-04-15/typescript/sanitized/server.ts +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-2026-04-15/typescript/vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-2026-04-15/typescript/vulnerable/server.ts +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-marketplace-fetch/patched.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-marketplace-fetch/vulnerable.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-marketplace-fetch/vulnerable.ts +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/vercel-2026-04-19/app.yaml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/langchain_prompt_loader/constant_safe.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/langchain_prompt_loader/user_path_unsafe.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/langchain_prompt_loader/validated_safe.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/langgraph/safe/graph.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/langgraph/vulnerable/graph.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_sampling/clean_python/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_sampling/clean_python/server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_sampling/config_clean/.mcp.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_sampling/config_vulnerable/.mcp.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_sampling/documented_risk/.agent-audit-kit.yml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_sampling/documented_risk/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_sampling/documented_risk/server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_sampling/vulnerable_python/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_sampling/vulnerable_python/server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_sampling/vulnerable_typescript/package.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_sampling/vulnerable_typescript/server.ts +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/clean_py/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/clean_py/server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/documented_risk/.agent-audit-kit.yml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/documented_risk/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/documented_risk/server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/vulnerable_001_py/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/vulnerable_001_py/server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/vulnerable_001_ts/package.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/vulnerable_001_ts/server.ts +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/vulnerable_002_py/client.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/vulnerable_002_py/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/vulnerable_003_k8s/service.yaml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/vulnerable_003_nginx/nginx.conf +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/vulnerable_003_store_py/handlers.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/vulnerable_003_store_py/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/vulnerable_004_client/client.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/vulnerable_004_client/requirements.txt +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_tool_unsafe_eval/eval_safe.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_tool_unsafe_eval/eval_unsafe.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_tool_unsafe_eval/no_tool_decorator.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/metis_pomdp/refusal_refeed_safe.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/metis_pomdp/refusal_refeed_unsafe.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/metis_pomdp/scoring_sink_unsafe.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/openapi_smells/clean.openapi.yaml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/openapi_smells/smelly.openapi.yaml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/openclaw/role_default_admin_unsafe.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/openclaw/role_explicit_safe.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/package_with_risks.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/pipelock/policy_invalid.yaml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/pipelock/policy_minimal.yaml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/pipelock/policy_with_parity.yaml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/project_deal/safe/pricer.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/project_deal/vulnerable/pricer.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/skill_lifecycle/safe_skill.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/skill_lifecycle/unsafe_skill.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/social_agents/tiktok_human_in_loop.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/social_agents/tiktok_unsafe.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/stainless_lineage/config_root/stainless.yml +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/stainless_lineage/generated_python_sdk/client.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/stainless_lineage/generated_typescript_sdk/client.ts +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/stainless_lineage/handwritten/server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/vulnerable_hooks.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/vulnerable_mcp.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/vulnerable_settings.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_a2a_2026.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_a2a_protocol.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_action.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_agent_config.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_aicm.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_anthropic_sdk_hardening.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_argv_toctou.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cli.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_compliance_output.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_compliance_v2.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_crewai_nvd_and_evasion.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_csa_baseline_watcher.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2025_66335.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2025_66414_python_sdk.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2026_20205_config.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2026_20205_splunk.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2026_32211.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2026_32211_server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2026_33626.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2026_35568_java.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2026_35577_apollo.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2026_39313.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2026_40576_excel.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2026_40608_next_ai_draw.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2026_41481.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2026_41488.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_fix_and_watch_and_advisories.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_watcher_dedup.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cves_2026.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cyclonedx_aibom.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_diff.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_discovery.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_engine.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_engine_ignore_paths.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_eu_ai_act_art15_locale.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_examples.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_fix.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_gha_immutable.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_healthcare_ai_and_state_privacy.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_hook_injection.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_index_builder.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_india_pii.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_integrations_notify.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_legal_compliance.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_llm_scan.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_llm_scan_mod.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_llm_sql_rce.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_marketplace_manifest.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_marketplace_sources.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_attestation.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_config.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_env_placeholder_exfil.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_http_noauth_server.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_marketplace_fetch.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_noauth_default.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_sampling_capability.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_stateless_migration.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_stdio_cmd_inj_java.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_stdio_cmd_inj_python.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_stdio_cmd_inj_rust.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_stdio_cmd_inj_typescript.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_stdio_launcher.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_toolgate_asymmetry.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_tunnel.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcpwn.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_nsa_mcp_csi.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_oauth_surface.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_owasp_agentic_coverage.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_owasp_public_json.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_owasp_report.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_owasp_report_output.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_parity_region_drift.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_phase3.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_pin_drift.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_pinning.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_pinning_mod.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_pr_summary.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_preset_mcp_ox_2026_04.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_proxy.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_repo_metadata_sync.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_rule_count_sync.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_sandbox_self_disable.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_sarif_fingerprints.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_sarif_github_upload.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_sarif_output.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_scoring.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_secret_exposure.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_shared_resource_authz.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_skill_poisoning.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_skill_untrusted_exec_path.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_stdio_injection.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_supply_chain.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_taint_analysis.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_tool_poisoning.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_toxic_flow.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_transport_security.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_trust_boundary.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_typescript_pattern_scan_sql.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_10_features.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_10_rules.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_11_rules.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_13_rules.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_14_rules.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_15_rules.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_16_rules.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_17_rules.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_18_rules.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_19_rules.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_1_cve_rules.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_20_rules.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_21_rules.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_22_rules.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_8_features.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_8_rules.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_9_features.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_9_features_p1.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_9_rules.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_verification.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_verification_mod.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_vuln_db.py +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/vscode-extension/.vscodeignore +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/vscode-extension/CLAUDE.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/vscode-extension/README.md +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/vscode-extension/package.json +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/vscode-extension/src/extension.ts +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/vscode-extension/src/sarifReader.ts +0 -0
- {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/vscode-extension/tsconfig.json +0 -0
|
@@ -17,7 +17,7 @@ jobs:
|
|
|
17
17
|
runs-on: ubuntu-latest
|
|
18
18
|
steps:
|
|
19
19
|
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
20
|
-
- uses: actions/setup-python@
|
|
20
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
21
21
|
with:
|
|
22
22
|
python-version: "3.12"
|
|
23
23
|
|
|
@@ -17,7 +17,7 @@ jobs:
|
|
|
17
17
|
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
18
18
|
|
|
19
19
|
- name: Set up Python ${{ matrix.python-version }}
|
|
20
|
-
uses: actions/setup-python@
|
|
20
|
+
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
21
21
|
with:
|
|
22
22
|
python-version: ${{ matrix.python-version }}
|
|
23
23
|
|
|
@@ -27,14 +27,14 @@ jobs:
|
|
|
27
27
|
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
28
28
|
|
|
29
29
|
- name: Initialize CodeQL
|
|
30
|
-
uses: github/codeql-action/init@
|
|
30
|
+
uses: github/codeql-action/init@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
|
|
31
31
|
with:
|
|
32
32
|
languages: ${{ matrix.language }}
|
|
33
33
|
|
|
34
34
|
- name: Autobuild
|
|
35
|
-
uses: github/codeql-action/autobuild@
|
|
35
|
+
uses: github/codeql-action/autobuild@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
|
|
36
36
|
|
|
37
37
|
- name: Perform CodeQL Analysis
|
|
38
|
-
uses: github/codeql-action/analyze@
|
|
38
|
+
uses: github/codeql-action/analyze@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
|
|
39
39
|
with:
|
|
40
40
|
category: "/language:${{ matrix.language }}"
|
|
@@ -22,7 +22,7 @@ jobs:
|
|
|
22
22
|
runs-on: ubuntu-latest
|
|
23
23
|
steps:
|
|
24
24
|
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
25
|
-
- uses: actions/setup-python@
|
|
25
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
26
26
|
with:
|
|
27
27
|
python-version: "3.12"
|
|
28
28
|
- name: Install AAK
|
|
@@ -53,7 +53,7 @@ jobs:
|
|
|
53
53
|
- uses: actions/checkout@v7.0.0
|
|
54
54
|
|
|
55
55
|
- name: Set up Python
|
|
56
|
-
uses: actions/setup-python@v6.
|
|
56
|
+
uses: actions/setup-python@v6.3.0
|
|
57
57
|
with:
|
|
58
58
|
python-version: '3.11'
|
|
59
59
|
|
|
@@ -149,7 +149,7 @@ jobs:
|
|
|
149
149
|
- uses: actions/checkout@v7.0.0
|
|
150
150
|
|
|
151
151
|
- name: Set up Python
|
|
152
|
-
uses: actions/setup-python@v6.
|
|
152
|
+
uses: actions/setup-python@v6.3.0
|
|
153
153
|
with:
|
|
154
154
|
python-version: '3.11'
|
|
155
155
|
|
|
@@ -31,6 +31,6 @@ jobs:
|
|
|
31
31
|
publish_results: true
|
|
32
32
|
|
|
33
33
|
- name: Upload SARIF results
|
|
34
|
-
uses: github/codeql-action/upload-sarif@
|
|
34
|
+
uses: github/codeql-action/upload-sarif@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
|
|
35
35
|
with:
|
|
36
36
|
sarif_file: results.sarif
|
|
@@ -17,7 +17,7 @@ jobs:
|
|
|
17
17
|
with:
|
|
18
18
|
fetch-depth: 0
|
|
19
19
|
token: ${{ secrets.METADATA_SYNC_TOKEN || secrets.GITHUB_TOKEN }}
|
|
20
|
-
- uses: actions/setup-python@
|
|
20
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
21
21
|
with:
|
|
22
22
|
python-version: '3.12'
|
|
23
23
|
- name: Rewrite README + docs pins
|
|
@@ -8,6 +8,12 @@ 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.46 (2026-07-06)
|
|
12
|
+
|
|
13
|
+
| Incident / Anchor | Reference | AAK rule(s) | Shipped | Latency |
|
|
14
|
+
|---|---|---|---|---|
|
|
15
|
+
| CVE-2026-58057 (Flowise < 3.1.3 — case-sensitive NODE_OPTIONS denylist bypass → `node_options` on Windows → `NODE_OPTIONS --require` RCE) | [NVD CVE-2026-58057](https://nvd.nist.gov/vuln/detail/CVE-2026-58057) (CVSS 5.0, published 2026-06-28) | **AAK-FLOWISE-001** (pin floor bumped 3.1.2 → 3.1.3; 3.1.2 configs now flag) | 2026-07-06 | version-pin extension |
|
|
16
|
+
|
|
11
17
|
## Shipped in v0.3.22 (2026-05-20)
|
|
12
18
|
|
|
13
19
|
| Incident / Anchor | Reference | AAK rule(s) | Shipped | Latency |
|
|
@@ -7,6 +7,173 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
### Security — Flowise CVE-2026-58057 (closes #372)
|
|
11
|
+
|
|
12
|
+
Bumped `AAK-FLOWISE-001`'s pin floor **3.1.2 → 3.1.3** and added
|
|
13
|
+
[CVE-2026-58057](https://nvd.nist.gov/vuln/detail/CVE-2026-58057) (Flowise
|
|
14
|
+
before 3.1.3 validates Custom-MCP stdio env vars against a *case-sensitive*
|
|
15
|
+
denylist, so on Windows `node_options` bypasses the `NODE_OPTIONS` entry and
|
|
16
|
+
reaches `NODE_OPTIONS --require` RCE). Flowise 3.1.2 configs now flag; test +
|
|
17
|
+
ledger updated. Clears the last open `sla-48h` gate item.
|
|
18
|
+
|
|
19
|
+
### Added — bench: determinism head-to-head
|
|
20
|
+
|
|
21
|
+
New `benchmarks/determinism/` proves AAK yields a **byte-identical finding set
|
|
22
|
+
across 20 runs** (single shared SHA-256, 0% variance) over a fixed committed
|
|
23
|
+
corpus, using the real `engine.run_scan` entrypoint — contrasted, **cited (from
|
|
24
|
+
their own docs), not re-run**, against LLM-judge tools (Snyk Agent Scan +
|
|
25
|
+
[Cisco DefenseClaw](https://github.com/cisco-ai-defense/defenseclaw)). No
|
|
26
|
+
competitor number is fabricated; the LLM-as-judge variance concern is cited to
|
|
27
|
+
[arXiv:2606.13685](https://arxiv.org/abs/2606.13685) ("The Coin Flip Judge?").
|
|
28
|
+
`tests/test_determinism_benchmark.py` enforces the single-digest invariant in
|
|
29
|
+
CI; README's determinism bullet + comparison table link
|
|
30
|
+
`benchmarks/determinism/RESULTS.md`. Version **0.3.45 → 0.3.46**.
|
|
31
|
+
|
|
32
|
+
### Added — Public OWASP coverage leaderboard (issue #67) + Kong Konnect MCP CVE
|
|
33
|
+
|
|
34
|
+
**OWASP coverage leaderboard (#67).** New generator `scripts/gen_coverage.py`
|
|
35
|
+
emits two Markdown tables from the **live rule registry** so they cannot drift:
|
|
36
|
+
`docs/coverage/owasp-agentic-top10.md` (ASI01–ASI10) and
|
|
37
|
+
`docs/coverage/owasp-mcp-top10.md` (MCP01:2025–MCP10:2025). Each OWASP slot maps
|
|
38
|
+
to the exact AAK rule IDs that cover it, with a **published, reproducible**
|
|
39
|
+
coverage label (Full = ≥3 rules, Partial = 1–2, None = 0) — not a self-scored
|
|
40
|
+
grade. Includes an honest "coverage vs. named toolkits" note: the Microsoft
|
|
41
|
+
Agent Governance Toolkit (2026-04-02, MIT) states 10/10 Agentic coverage as a
|
|
42
|
+
*runtime* enforcer; AAK reports its per-category *static* rule counts next to it
|
|
43
|
+
(a cross-reference, not a head-to-head benchmark). CI fails on staleness via
|
|
44
|
+
`tests/test_coverage_tables.py` (runs `gen_coverage.check()` in every test job).
|
|
45
|
+
README links the leaderboard from the Frameworks section and the State-of-MCP
|
|
46
|
+
report. Fully offline/deterministic — no account, cloud call, or signup.
|
|
47
|
+
|
|
48
|
+
**AAK-MCP-KONG-CVE-2026-13341-001** (HIGH). Kong Konnect MCP server before 1.0.0
|
|
49
|
+
is vulnerable to **indirect prompt injection** — untrusted content the server
|
|
50
|
+
relays can carry instructions the agent acts on, issuing unintended
|
|
51
|
+
Konnect/Admin API requests ([CVE-2026-13341](https://nvd.nist.gov/vuln/detail/CVE-2026-13341),
|
|
52
|
+
CVSS 7.4, published 2026-07-03; fixed in 1.0.0). Detected as a version pin in
|
|
53
|
+
`supply_chain.py` across dependency manifests **and** MCP config files (fires on
|
|
54
|
+
`< 1.0.0` or an unpinned reference). Category TOOL_POISONING, OWASP MCP05:2025 +
|
|
55
|
+
ASI01.
|
|
56
|
+
|
|
57
|
+
Rule count **230 → 231**. Version **0.3.44 → 0.3.45**.
|
|
58
|
+
|
|
59
|
+
### Added — AAK-MCP-CARD-* : MCP Server Card (SEP-1649) static audit + discovery crawler
|
|
60
|
+
|
|
61
|
+
New **MCP Server Card** rule category (`Category.MCP_SERVER_CARD`) + scanner
|
|
62
|
+
(`scanners/mcp_server_card.py`) that statically audits SEP-1649 discovery cards
|
|
63
|
+
(`/.well-known/mcp/server-card.json`) — a client fetches and trusts a card
|
|
64
|
+
*before* connecting, so the card is an attack surface. Four deterministic rules:
|
|
65
|
+
|
|
66
|
+
- **AAK-MCP-CARD-001** (CRITICAL) — tool-description poisoning / imperative
|
|
67
|
+
injection in `tools[].description`. **Reuses** the AAK-POISON-001..006
|
|
68
|
+
detectors (invisible Unicode, prompt-injection, cross-tool reference, encoded
|
|
69
|
+
payloads) — nothing duplicated.
|
|
70
|
+
- **AAK-MCP-CARD-002** (HIGH) — declared-transport vs advertised-capability
|
|
71
|
+
mismatch (remote transport with `authentication.required: false`, or a
|
|
72
|
+
`stdio`/local card advertising a remote `endpoint`).
|
|
73
|
+
- **AAK-MCP-CARD-003** (HIGH) — missing / placeholder signature / provenance;
|
|
74
|
+
the card's self-declared tools + endpoint are trusted with no origin proof.
|
|
75
|
+
- **AAK-MCP-CARD-004** (MEDIUM) — over-broad capability claims (wildcard scopes,
|
|
76
|
+
all-capabilities, `required: true` with empty `schemes`).
|
|
77
|
+
|
|
78
|
+
SARIF 2.1.0 emitter (fingerprint + `fixes[]` + security-severity) is reused
|
|
79
|
+
unchanged. Emits are stdlib-only and **offline by default** — card fetching is
|
|
80
|
+
opt-in (`AAK_FETCH_SERVER_CARD_URL`, or the crawler's `--server-cards` pass).
|
|
81
|
+
|
|
82
|
+
**Discovery crawler:** `benchmarks/sources.py` gains `well_known_server_cards()`
|
|
83
|
+
and `benchmarks/crawler.py` a `--server-cards` network pass that enumerates
|
|
84
|
+
servers, probes `/.well-known/mcp/server-card.json`, audits each card, and writes
|
|
85
|
+
a **dated** `benchmarks/results-<date>.json` (never overwrites
|
|
86
|
+
`results-2026-06-13.json`). New test + poisoned/clean card fixtures under
|
|
87
|
+
`tests/fixtures/server_cards/`.
|
|
88
|
+
|
|
89
|
+
Rule count **226 → 230**; scanner modules **80 → 81**; categories **11 → 12**.
|
|
90
|
+
Version **0.3.43 → 0.3.44**.
|
|
91
|
+
|
|
92
|
+
### Added — AAK-MCP-AUTH-PATHTRAVERSAL-001: bearer-token → session-file path traversal ([CVE-2026-52830](https://nvd.nist.gov/vuln/detail/CVE-2026-52830))
|
|
93
|
+
|
|
94
|
+
CVE-response cycle item (closes #394). New **CRITICAL** rule + scanner
|
|
95
|
+
(`scanners/mcp_auth_pathtraversal.py`) flagging MCP auth code that concatenates
|
|
96
|
+
or `os.path.join`-es an untrusted token / bearer credential into a session file
|
|
97
|
+
path used for an existence/read check — without rejecting path separators / `..`
|
|
98
|
+
or resolving-and-containing the result. The caller controls the token, so they
|
|
99
|
+
control the path (`../../etc/passwd`, `../<other-session>`): an auth check becomes
|
|
100
|
+
arbitrary-file access + cross-session takeover. Anchor: **CVE-2026-52830**
|
|
101
|
+
(CVSS 9.4, CWE-22) — `fast-mcp-telegram` before 0.19.1 joined the caller-supplied
|
|
102
|
+
bearer token straight into the session path; fixed in 0.19.1.
|
|
103
|
+
|
|
104
|
+
Python detection reuses the repo's stdlib-`ast` taint mechanism (token source →
|
|
105
|
+
path construction → `exists`/`open` sink, suppressed by a separator/`..` reject
|
|
106
|
+
or a resolve-and-contain guard — no new taint engine; the #22 tree-sitter
|
|
107
|
+
migration is separate); TS/JS/Rust use the analogous concat-into-path regex.
|
|
108
|
+
Category **MCP_CONFIG** (matching the nearest auth rules), OWASP **MCP07:2025**,
|
|
109
|
+
**ASI03**. Distinct from `AAK-MCP-015` (resource-handler path traversal on a
|
|
110
|
+
request *path* param). FP guards: separator-rejected + resolved-and-contained
|
|
111
|
+
flows, constant paths, and non-auth code all pass; SARIF carries the fingerprint,
|
|
112
|
+
the remediation, and the critical-band security-severity.
|
|
113
|
+
|
|
114
|
+
Rule count **225 → 226**; scanner modules **79 → 80**. Version **0.3.42 → 0.3.43**.
|
|
115
|
+
|
|
116
|
+
### Added — MCP prevalence scan (664 configs) + score calibration (issue #23)
|
|
117
|
+
|
|
118
|
+
Empirical sequel to the State-of-MCP-Security harness. Widened the corpus by
|
|
119
|
+
sweeping five MCP-config filename queries in `benchmarks/crawler.py` (was a
|
|
120
|
+
single `.mcp.json` query capped at GitHub Code Search's 1,000-result ceiling ≈
|
|
121
|
+
571 distinct) → **664 distinct public configs**. Re-ran the #373 harness (reuses
|
|
122
|
+
`engine.run_scan` + `scoring.compute_score`; extended to emit `owasp_mcp_hit_rate`
|
|
123
|
+
and top-10). New report `research/state-of-mcp-2026/PREVALENCE.md`: the score
|
|
124
|
+
distribution (A 30% / B 36% / C 13% / D 7% / F 13%; **median grade B, top 10%
|
|
125
|
+
A** — the empirical anchor #23 asked for), 26.1% critical, 24.2% no-auth,
|
|
126
|
+
OWASP-MCP hit rate (MCP07 99.4%), top-10 findings, methodology, honest
|
|
127
|
+
limitations, and manual distribution drafts. `REPORT.md` now redirects to
|
|
128
|
+
PREVALENCE.md (canonical); README + `docs/DISTRIBUTION-CHECKLIST.md` updated to
|
|
129
|
+
664. Aggregate-only, no per-server list published and no CVEs filed (90-day
|
|
130
|
+
coordinated-disclosure policy). No package code touched — version stays 0.3.42.
|
|
131
|
+
|
|
132
|
+
### Changed — finish the State of MCP Security 2026 report (launch-ready)
|
|
133
|
+
|
|
134
|
+
Promoted the data-report harness (shipped in #373) into a finished, launch-ready
|
|
135
|
+
report. `research/state-of-mcp-2026/REPORT.md` gains an executive summary, an
|
|
136
|
+
OWASP-MCP-Top-10 hit-rate table, three anonymized CVE-class case studies, a
|
|
137
|
+
"how we scan (offline, reproducible)" section leading with the two wedges, and a
|
|
138
|
+
`pip install` self-scan block so the report doubles as a distribution funnel.
|
|
139
|
+
Every figure is sourced to `results.json` — the harness was re-run against the
|
|
140
|
+
current corpus (571 distinct configs; 25.7% critical; 28.9% grade A; 99.3% trip
|
|
141
|
+
OWASP MCP07). The harness now also aggregates `owasp_mcp_hit_rate` (no scanner
|
|
142
|
+
change — it reads `owasp_mcp_references` off the existing rules). Filled
|
|
143
|
+
`docs/DISTRIBUTION-CHECKLIST.md` with ready-to-post copy (Show HN, r/netsec,
|
|
144
|
+
OWASP working-group note, awesome-mcp-security) — operator-posted, nothing
|
|
145
|
+
auto-posts. Version **0.3.41 → 0.3.42**. No scanner rules added; rule count
|
|
146
|
+
stays 225.
|
|
147
|
+
|
|
148
|
+
### Changed — docs: align public rule-count to canonical 225; promote State-of-MCP-Security-2026 report
|
|
149
|
+
|
|
150
|
+
Killed the last public rule-count drift: the GitHub repo "About" description and
|
|
151
|
+
every human-facing rule-count string (`CLAUDE.md`, launch outreach/blog/awesome
|
|
152
|
+
drafts, the launch data-report draft) said **221** — corrected to the canonical
|
|
153
|
+
**225** (matching the README badge, the `RULES` registry, `rules.json`, and the
|
|
154
|
+
`test_rule_count_is_canonical` CI fence). Adjacent stale metrics on the same
|
|
155
|
+
lines were fixed too (75 → 79 scanners, v0.3.34 → v0.3.41). Promoted the
|
|
156
|
+
reproducible report: the README "State of MCP Security 2026" section now leads
|
|
157
|
+
with the two wedges (offline/deterministic + compliance-evidence), the earlier
|
|
158
|
+
`launch/state-of-mcp-security-2026.md` marketing draft is banner-marked as
|
|
159
|
+
superseded by `research/state-of-mcp-2026/REPORT.md` (canonical), and a manual
|
|
160
|
+
`docs/DISTRIBUTION-CHECKLIST.md` lists launch surfaces (Show HN, r/netsec,
|
|
161
|
+
awesome-mcp-security, OWASP working group). Docs/metadata only — no version bump.
|
|
162
|
+
|
|
163
|
+
### Added — State-of-MCP-Security-2026 research harness + report
|
|
164
|
+
|
|
165
|
+
New `research/state-of-mcp-2026/` directory: a reproducible data-report harness
|
|
166
|
+
(`run_report.py`) that scans a corpus of public MCP configs and aggregates a
|
|
167
|
+
grade distribution (A–F), per-category hit rates, and the top misconfigurations.
|
|
168
|
+
It contains **no scanner** — it reuses `agent_audit_kit.engine.run_scan` and
|
|
169
|
+
`agent_audit_kit.scoring.compute_score` (the same scan + grade the CLI / MCP
|
|
170
|
+
Security Index use), and delegates corpus acquisition to the existing
|
|
171
|
+
`benchmarks/crawler.py`. Ships the raw aggregate (`results.json`) and the
|
|
172
|
+
human-readable writeup (`REPORT.md`). Headline from the committed run: 571
|
|
173
|
+
distinct configs, 25.7% with a critical finding, ~29% grade A. README gains a
|
|
174
|
+
"State of MCP Security 2026" section with the reproduce command. Docs/research
|
|
175
|
+
only — no package code, no version bump.
|
|
176
|
+
|
|
10
177
|
### Changed — CVE-backlog coverage: extend existing pins (Flowise/LiteLLM/Doris)
|
|
11
178
|
|
|
12
179
|
Worked the open `sla-48h` backlog. The genuinely AAK-actionable items map to
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
<!-- AUTO-MANAGED: project-description -->
|
|
4
4
|
## Overview
|
|
5
5
|
|
|
6
|
-
**AgentAuditKit** (v0.3.
|
|
6
|
+
**AgentAuditKit** (v0.3.41) — Security scanner for MCP-connected AI agent pipelines. The "npm audit" for AI agents.
|
|
7
7
|
|
|
8
|
-
- **
|
|
9
|
-
- **
|
|
8
|
+
- **225 rules** across 11 security categories
|
|
9
|
+
- **79 scanner modules** including Python/TypeScript/Rust taint analysis
|
|
10
10
|
- **16 CLI commands**: `scan`, `discover`, `pin`, `verify`, `fix`, `score`, `update`, `proxy`, `kill`, `watch`, `export-rules`, `verify-bundle`, `sbom`, `report`, `install-precommit`
|
|
11
11
|
- **OWASP coverage**: Agentic Top 10 (10/10), MCP Top 10 (10/10), Adversa AI Top 25
|
|
12
12
|
- **Compliance mapping** (12 frameworks): EU AI Act, SOC 2, ISO 27001/42001, HIPAA, NIST AI RMF, NSA MCP CSI, + regional (India DPDP, Singapore, Alabama, Tennessee)
|
|
@@ -65,8 +65,8 @@ agent_audit_kit/
|
|
|
65
65
|
llm_scan.py # LLM-assisted scanning
|
|
66
66
|
vuln_db.py # CVE/vulnerability database
|
|
67
67
|
rules/
|
|
68
|
-
builtin.py #
|
|
69
|
-
scanners/ #
|
|
68
|
+
builtin.py # 225 RuleDefinition entries (rule registry)
|
|
69
|
+
scanners/ # 79 scanner modules (core set shown), each exports scan() -> (list[Finding], set[str])
|
|
70
70
|
mcp_config.py # MCP configuration checks
|
|
71
71
|
hook_injection.py # Hook injection detection
|
|
72
72
|
trust_boundary.py # Trust boundary violations
|
|
@@ -123,7 +123,7 @@ benchmarks/ # Benchmark crawler
|
|
|
123
123
|
## Detected Patterns
|
|
124
124
|
|
|
125
125
|
- **Scanner registry**: `engine.py` lazy-builds a list of `ScannerRegistration` dataclasses; each wraps a `scan_fn` callable. New scanners are registered via try/except ImportError blocks for backward compatibility.
|
|
126
|
-
- **Rule registry**: `rules/builtin.py` defines all
|
|
126
|
+
- **Rule registry**: `rules/builtin.py` defines all 225 rules as `RuleDefinition` dataclasses in a global `RULES` dict, populated by `_r()` helper.
|
|
127
127
|
- **Finding model**: All scanners produce `Finding` dataclasses with rule_id, severity, category, evidence, remediation, and framework references (OWASP, CVE, Adversa).
|
|
128
128
|
- **Scoring**: Penalty-based (start at 100, deduct per severity), clamped to [0,100], mapped to letter grade.
|
|
129
129
|
- **Output formatters**: Each module in `output/` takes a `ScanResult` and formats it (console, JSON, SARIF, OWASP, compliance).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-audit-kit
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.46
|
|
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-231-blue.svg" alt="Rules: 231"></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>
|
|
@@ -58,12 +58,12 @@ Security scanner for MCP-connected AI agent pipelines. Finds misconfigurations,
|
|
|
58
58
|
|
|
59
59
|
**Two things it does that hosted scanners can't:**
|
|
60
60
|
|
|
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). No account, no telemetry.
|
|
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 -->231<!-- /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 -->81<!-- /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.46
|
|
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.46
|
|
124
124
|
hooks:
|
|
125
125
|
- id: agent-audit-kit
|
|
126
126
|
```
|
|
@@ -144,9 +144,9 @@ 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 -->
|
|
147
|
+
| **MCP Configuration** | <!-- category-count:MCP_CONFIG -->53<!-- /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) |
|
|
148
148
|
| **Supply Chain** | <!-- category-count:SUPPLY_CHAIN -->41<!-- /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
|
-
| **Tool Poisoning** | <!-- category-count:TOOL_POISONING -->
|
|
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 |
|
|
152
152
|
| **A2A Protocol** | <!-- category-count:A2A_PROTOCOL -->13<!-- /category-count --> | Missing mutual auth, unbounded delegation, transitive trust, replay protection, schema confusion, HTTP endpoints, JWT lifetime/validation, impersonation, multi-agent shared-state without lock (Code-as-Harness) |
|
|
@@ -155,8 +155,23 @@ agent-audit-kit scan examples/vulnerable-configs/04-hook-exfiltration/
|
|
|
155
155
|
| **Transport Security** | <!-- category-count:TRANSPORT_SECURITY -->11<!-- /category-count --> | HTTP endpoints, TLS disabled, deprecated SSE, tokens in URL query strings, transport body-size limits (CVE-2026-39313), SSRF redirect bypass (CVE-2026-41481), DNS-rebinding (CVE-2025-66414/66416, CVE-2026-35568/35577) |
|
|
156
156
|
| **Legal Compliance** | <!-- category-count:LEGAL_COMPLIANCE -->12<!-- /category-count --> | Copyleft licenses (AGPL/SSPL), missing licenses, DMCA-flagged packages, India PII surface, US-state consumer privacy (Alabama HB 351, Tennessee SB 1580), Singapore Agentic AI, healthcare AI triggers, EU AI Act Article 15 multilingual-eval coverage advisory (binding 2026-08-02) |
|
|
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
|
+
| **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`) |
|
|
158
159
|
|
|
159
|
-
**<!-- rule-count:total -->
|
|
160
|
+
**<!-- rule-count:total -->231<!-- /rule-count --> rules total.** Every finding includes severity, evidence, remediation, OWASP references, Adversa references, and CVE links where applicable.
|
|
161
|
+
|
|
162
|
+
### MCP Server Card scanning (SEP-1649)
|
|
163
|
+
|
|
164
|
+
The MCP discovery track ([SEP-1649](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1649), superseded-in-draft by SEP-2127) has servers publish a **server card** at `/.well-known/mcp/server-card.json` — a JSON document (`serverInfo`, `transport`, `capabilities`, `authentication`, `tools[]`) that a client fetches and **trusts before it connects**, ahead of the [2026-07-28 MCP spec finalization](https://modelcontextprotocol.io/). That makes the card an attack surface in its own right.
|
|
165
|
+
|
|
166
|
+
`agent-audit-kit` statically audits a server card — from a committed file, or an **opt-in** fetch — with four deterministic rules (`AAK-MCP-CARD-001..004`, category **MCP Server Card**): tool-description poisoning, transport/capability mismatch, missing/placeholder provenance, and over-broad capability claims. It stays **offline and deterministic** — the default scan path makes zero network calls; card fetching only happens behind an explicit flag (`AAK_FETCH_SERVER_CARD_URL`, or the crawler's `--server-cards` network pass), and the same card always yields the same findings.
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
# audit a committed / saved server card, fully offline
|
|
170
|
+
agent-audit-kit scan path/to/server-card.json
|
|
171
|
+
|
|
172
|
+
# opt-in prevalence sweep of discoverable cards (network; writes results-<date>.json)
|
|
173
|
+
python benchmarks/crawler.py --server-cards --limit 200
|
|
174
|
+
```
|
|
160
175
|
|
|
161
176
|
### Agent Platforms Scanned
|
|
162
177
|
|
|
@@ -314,18 +329,34 @@ Generate an SVG badge for your README: `agent-audit-kit score . --badge`
|
|
|
314
329
|
| **OWASP Agentic Top 10** (ASI01-ASI10) | 10/10 (100%) — density by slot below |
|
|
315
330
|
| **OWASP MCP Top 10** (MCP01-MCP10) | 10/10 (100%) |
|
|
316
331
|
|
|
332
|
+
### Public OWASP coverage leaderboard
|
|
333
|
+
|
|
334
|
+
Category-by-category coverage tables — every OWASP slot mapped to the exact AAK
|
|
335
|
+
rule IDs that cover it — are generated from the live rule registry so they
|
|
336
|
+
cannot drift (CI regenerates and fails on staleness, `scripts/gen_coverage.py`):
|
|
337
|
+
|
|
338
|
+
- **[OWASP Agentic Top 10 → AAK rules](docs/coverage/owasp-agentic-top10.md)**
|
|
339
|
+
- **[OWASP MCP Top 10 → AAK rules](docs/coverage/owasp-mcp-top10.md)**
|
|
340
|
+
|
|
341
|
+
Coverage labels use a published threshold (**Full** = ≥3 rules, **Partial** =
|
|
342
|
+
1–2, **None** = 0) — reproducible from the registry, not a self-scored grade.
|
|
343
|
+
The [Microsoft Agent Governance Toolkit](https://github.com/microsoft/agent-governance-toolkit)
|
|
344
|
+
(2026-04-02) states 10/10 Agentic coverage as a *runtime* enforcer; AAK reports
|
|
345
|
+
its honest per-category **static** rule counts next to it — a coverage
|
|
346
|
+
cross-reference, not a head-to-head benchmark.
|
|
347
|
+
|
|
317
348
|
<details>
|
|
318
349
|
<summary>OWASP Agentic Top 10 — density by slot</summary>
|
|
319
350
|
|
|
320
351
|
<!-- owasp-coverage:start -->
|
|
321
352
|
| ASI | Title | # rules |
|
|
322
353
|
| --- | --- | --- |
|
|
323
|
-
| **ASI01** | Goal Hijack |
|
|
354
|
+
| **ASI01** | Goal Hijack | 12 |
|
|
324
355
|
| **ASI02** | Tool Misuse | 38 |
|
|
325
|
-
| **ASI03** | Memory Poisoning |
|
|
326
|
-
| **ASI04** | Identity & Privilege Abuse |
|
|
356
|
+
| **ASI03** | Memory Poisoning | 56 |
|
|
357
|
+
| **ASI04** | Identity & Privilege Abuse | 38 |
|
|
327
358
|
| **ASI05** | Cascading Failures | 33 |
|
|
328
|
-
| **ASI06** | Unauthorized Capability Acquisition |
|
|
359
|
+
| **ASI06** | Unauthorized Capability Acquisition | 30 |
|
|
329
360
|
| **ASI07** | Plan Injection | 9 |
|
|
330
361
|
| **ASI08** | Agent Communication Poisoning | 4 |
|
|
331
362
|
| **ASI09** | Resource Abuse | 14 |
|
|
@@ -367,7 +398,7 @@ See [`docs/comparisons.md`](docs/comparisons.md) for a fully-sourced version. Ve
|
|
|
367
398
|
| Feature | AgentAuditKit | Microsoft AGT | Snyk Agent Scan | Semgrep Multimodal |
|
|
368
399
|
|---------|:---:|:---:|:---:|:---:|
|
|
369
400
|
| Scope | Static scanner + compliance PDFs | Runtime governance | Static + runtime | Multimodal SAST |
|
|
370
|
-
| Detection rules (static) | **<!-- rule-count:total -->
|
|
401
|
+
| Detection rules (static) | **<!-- rule-count:total -->231<!-- /rule-count -->** | Runtime policies, not rules | ~30 | LLM-assisted |
|
|
371
402
|
| OWASP Agentic 10/10 | **Yes** | Yes | Partial | Partial |
|
|
372
403
|
| OWASP MCP 10/10 | **Yes** | No (runtime-focused) | No | No |
|
|
373
404
|
| Auditor-ready PDF compliance | **12 frameworks** | No | 0 | 0 |
|
|
@@ -381,6 +412,7 @@ See [`docs/comparisons.md`](docs/comparisons.md) for a fully-sourced version. Ve
|
|
|
381
412
|
| GitHub Security Advisories | **Yes** (`--advisories`) | No | No | No |
|
|
382
413
|
| Secret verification | **Yes** | No | No | No |
|
|
383
414
|
| A2A protocol scanning | **12 rules** | Agent Mesh | No | No |
|
|
415
|
+
| Reproducible finding set (same input → same digest) | **[Yes — 20/20 runs, 0% variance](benchmarks/determinism/RESULTS.md)** | Runtime governance | LLM-judge in path | LLM-assisted |
|
|
384
416
|
| Healthcare-AI legal triggers | **Yes** (TN SB 1580, KS/WA/UT) | No | No | No |
|
|
385
417
|
| Offline / zero cloud | **Yes** | Yes | No | Optional |
|
|
386
418
|
| License | **MIT** | MIT | Proprietary | Proprietary |
|
|
@@ -415,6 +447,42 @@ Public leaderboard of MCP servers we scan weekly:
|
|
|
415
447
|
- **90-day coordinated disclosure** before anything lands on a public card — see [`docs/disclosure-policy.md`](docs/disclosure-policy.md)
|
|
416
448
|
- Maintainer-fix earlier gets published the day the fix lands, with credit
|
|
417
449
|
|
|
450
|
+
## State of MCP Security 2026
|
|
451
|
+
|
|
452
|
+
A reproducible data report: we scanned **664 distinct public MCP server configs**
|
|
453
|
+
and found **1 in 4 ships a critical-severity flaw** — the **median config scores
|
|
454
|
+
a B, the top 10% an A**, and **24.2% declare a remote server with no auth**. It
|
|
455
|
+
exists because of AAK's two defensible wedges — the scan is **offline and
|
|
456
|
+
deterministic** (no code or configs leave the machine; same input, same result),
|
|
457
|
+
and it yields **auditor-ready compliance evidence**, which is what makes a report
|
|
458
|
+
reproducible and an audit defensible. Full distribution, score calibration,
|
|
459
|
+
OWASP-MCP-Top-10 hit rate, top-10 findings, external anchors (MCP Registry 9,652
|
|
460
|
+
servers; Knostic 1,862 exposed / 119-of-119 unauthenticated; the 2,614-server
|
|
461
|
+
82%-path-traversal survey), and honest limitations are in
|
|
462
|
+
**[`research/state-of-mcp-2026/PREVALENCE.md`](research/state-of-mcp-2026/PREVALENCE.md)**
|
|
463
|
+
(raw aggregate: [`results.json`](research/state-of-mcp-2026/results.json)).
|
|
464
|
+
|
|
465
|
+
Mapped to the OWASP MCP Top 10, **99.4% of configs trip MCP07 (authorization /
|
|
466
|
+
excessive permissions)** — see which AAK rules cover each slot in the
|
|
467
|
+
[public coverage leaderboard](docs/coverage/owasp-mcp-top10.md). Scan your own in
|
|
468
|
+
30s, fully offline:
|
|
469
|
+
|
|
470
|
+
```bash
|
|
471
|
+
pip install agent-audit-kit && agent-audit-kit scan .
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
The harness contains no scanner — it reuses `agent_audit_kit.engine.run_scan` +
|
|
475
|
+
`scoring.compute_score`. Regenerate the report:
|
|
476
|
+
|
|
477
|
+
```bash
|
|
478
|
+
export GITHUB_TOKEN=$(gh auth token)
|
|
479
|
+
python benchmarks/crawler.py --limit 500 --output benchmarks/results.json
|
|
480
|
+
python research/state-of-mcp-2026/run_report.py --corpus benchmarks/data \
|
|
481
|
+
--out research/state-of-mcp-2026/results.json
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
Launch-ready copy for the report is in [`docs/DISTRIBUTION-CHECKLIST.md`](docs/DISTRIBUTION-CHECKLIST.md).
|
|
485
|
+
|
|
418
486
|
## CVE Response
|
|
419
487
|
|
|
420
488
|
AgentAuditKit tracks newly disclosed MCP CVEs and ships rule coverage on a best-effort basis, recorded in a public ledger ([`CHANGELOG.cves.md`](CHANGELOG.cves.md)). A [GitHub Action](.github/workflows/cve-watcher.yml) watches NVD's MCP keyword feed every 6 hours and files a tracking issue for each new disclosure.
|