agent-audit-kit 0.3.46__tar.gz → 0.3.47__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/CHANGELOG.cves.md +6 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/CHANGELOG.md +24 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/PKG-INFO +9 -9
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/README.md +8 -8
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/action.yml +1 -1
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/__init__.py +2 -2
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/engine.py +1 -1
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/rules/builtin.py +51 -18
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/mcp_stateless_migration.py +7 -5
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/supply_chain.py +60 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/ci-cd.md +2 -2
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/coverage/owasp-agentic-top10.md +1 -1
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/coverage/owasp-mcp-top10.md +1 -1
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/getting-started.md +2 -2
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/launch/hn.md +2 -2
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/launch/reddit.md +3 -3
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/launch/x-thread.md +2 -2
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/owasp-agentic-coverage.md +1 -1
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/presets/mcp-ox-2026-04.md +1 -1
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/public/owasp-agentic-coverage.json +15 -4
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/pyproject.toml +1 -1
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/rules.json +29 -2
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/site/coverage/index.html +2 -2
- agent_audit_kit-0.3.47/tests/test_mcp_gateway_registry_cve_2026_14471.py +61 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_phase5.py +1 -1
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/.agent-audit-kit.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/.claude/auto-memory/config.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/.editorconfig +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/.github/FUNDING.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/.github/dependabot.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/.github/workflows/badge-ox-coverage.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/.github/workflows/ci.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/.github/workflows/codeql.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/.github/workflows/coverage-page.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/.github/workflows/cve-watcher.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/.github/workflows/docker-nightly.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/.github/workflows/mcp-security-index.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/.github/workflows/release.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/.github/workflows/scorecard.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/.github/workflows/self-scan.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/.github/workflows/sync-repo-metadata.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/.github/workflows/sync-rule-count.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/.gitignore +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/.pre-commit-config.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/.pre-commit-hooks.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/CLAUDE.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/CLAUDE_PROMPT.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/CODE_OF_CONDUCT.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/CONTRIBUTING.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/DEEP_ANALYSIS.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/Dockerfile +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/LICENSE +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/ROADMAP_2026.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/SECURITY.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/advisories.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/autofix/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/autofix/langgraph_toolnode.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/bundle.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/checks/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/checks/economic_drift.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/checks/openclaw.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/cli.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/cli_modules/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/cli_modules/rule_lint.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/corpus/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/corpus/manifest.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/coverage.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/data/aivss-v08-defaults.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/data/fhi_universal_suffixes.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/data/ipi_wild_payloads_2026_04.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/data/ox-cve-manifest.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/data/prisma-airs-aak-map.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/data/prisma-airs-catalog.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/data/toxic_flow_pairs.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/data/vuln_db.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/diff.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/discovery.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/feeds/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/fix.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/ide/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/ide/lsp_diag.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/integrations/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/integrations/notify.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/llm_scan.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/models.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/output/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/output/aicm.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/output/compliance.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/output/console.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/output/json_report.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/output/owasp_report.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/output/pdf_report.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/output/pr_summary.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/output/sarif.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/output/sbom.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/parity/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/pinning.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/presets/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/presets/mcp-ox-2026-04.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/proxy/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/proxy/interceptor.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/remediation/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/remediation/engine.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/rules/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/sanitizers/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/sanitizers/crewai.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/sanitizers/deepseek.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/sarif/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/sarif/diff.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/_helpers.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/a2a_protocol.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/agent_config.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/agent_harness_shared_state.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/argv_toctou.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/crewai_rce_chain.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/deepseek_v4_tool_injection.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/dns_rebind.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/docsgpt_transport_flip.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/eu_ai_act_art15_locale.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/gha_hardening.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/gpt_researcher_transport_flip.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/healthcare_ai.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/hook_injection.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/hook_rce.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/india_pii.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/ipi_wild_corpus.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/langchain_prompt_loader.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/langchain_vuln.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/langgraph_toolnode.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/legal_compliance.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/llm_sql_rce.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/log_injection.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/log_token_leak.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/marketplace_manifest.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/mcp_atlassian.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/mcp_auth_pathtraversal.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/mcp_auth_patterns.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/mcp_config.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/mcp_env_placeholder_exfil.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/mcp_fhi.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/mcp_http_noauth_server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/mcp_inspector_cve.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/mcp_marketplace_fetch.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/mcp_middleware.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/mcp_noauth_default.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/mcp_sampling_capability.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/mcp_sdk_hardening.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/mcp_server_auth.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/mcp_server_card.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/mcp_stdio_launcher.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/mcp_stdio_params.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/mcp_tasks.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/mcp_tool_unsafe_eval.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/mcp_toolgate_asymmetry.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/mcp_tunnel.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/metis_pomdp.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/neo4j_cve.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/oauth_misconfig.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/oauth_surface.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/openapi_smells.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/openclaw_privesc.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/pin_drift.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/project_deal_drift.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/prtitle_ipi.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/routines.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/rust_pattern_scan.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/rust_scan.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/sandbox_self_disable.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/secret_exposure.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/shared_resource_authz.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/skill_lifecycle_attribution.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/skill_poisoning.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/skill_untrusted_exec_path.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/social_agent_hijack.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/splunk_mcp_config.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/ssrf_patterns.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/ssrf_redirect.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/ssrf_toctou.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/stainless_lineage.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/state_privacy.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/stdio_injection.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/taint_analysis.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/tool_poisoning.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/toxic_flow.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/transport_limits.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/transport_security.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/trust_boundary.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/typescript_pattern_scan.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scanners/typescript_scan.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scoring/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scoring/aivss.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/scoring/aivss_schema.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/translators/__init__.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/translators/pipelock.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/translators/prisma_airs.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/verification.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/vuln_db.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/agent_audit_kit/watch.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/benchmarks/README.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/benchmarks/crawler.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/benchmarks/determinism/RESULTS.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/benchmarks/determinism/run.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/benchmarks/index_builder.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/benchmarks/results-2026-06-13.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/benchmarks/run_benchmark.sh +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/benchmarks/sample_configs/sample_01_clean.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/benchmarks/sample_configs/sample_02_secrets.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/benchmarks/sample_configs/sample_03_no_auth.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/benchmarks/sample_configs/sample_04_shell_injection.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/benchmarks/sample_configs/sample_05_mixed.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/benchmarks/sources.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/ci/gitlab/agent-audit-kit.gitlab-ci.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/CNAME +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/DISTRIBUTION-CHECKLIST.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/RELEASING.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/azure-pipelines.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/blog/state-of-mcp-security-template.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/circleci.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/comparison-gitlab-agentic-sast.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/comparison.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/comparisons.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/disclosure-policy.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/gitlab-ci.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/index.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/launch/CHECKLIST.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/launch/github-verified-creator-application.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/launch/owasp-reference-tool-submission.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/launch/press.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/launch/release-notes-v0.3.0.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/metrics.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/notes/adjudicator-pattern.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/owasp-mapping.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/plans/2026-04-21-v0.3.3-design.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/research-log.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/roadmap/ox-mcp-2026-05-01-batch.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/rule-schema.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/rules/AAK-AZURE-MCP-001.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/rules/AAK-AZURE-MCP-NOAUTH-001.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/rules/AAK-LANGCHAIN-SSRF-REDIR-001.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/rules/AAK-LMDEPLOY-VL-SSRF-001.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/rules/AAK-MCP-AUTH-PATHTRAVERSAL-001.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/rules/AAK-MCP-MARKETPLACE-CONFIG-FETCH-001.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/rules/AAK-MCP-STDIO-CMD-INJ-001.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/rules/AAK-MCP-STDIO-CMD-INJ-002.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/rules/AAK-MCP-STDIO-CMD-INJ-003.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/rules/AAK-MCP-STDIO-CMD-INJ-004.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/rules/AAK-SPLUNK-MCP-TOKEN-LEAK-001.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/rules/AAK-SSRF-TOCTOU-001.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/rules/AAK-TOXICFLOW-001.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/rules/index.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/rules.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/docs/spec/sarif-runtime-context.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/editors/zed/README.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/editors/zed/extension.toml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/entrypoint.sh +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/README.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/case-studies/damn-vulnerable-mcp/README.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/case-studies/damn-vulnerable-mcp/configs/dvmcp-inspired.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/case-studies/damn-vulnerable-mcp/configs/dvmcp-settings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/case-studies/damn-vulnerable-mcp/scan-results.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/case-studies/damn-vulnerable-mcp/scan-results.sarif +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/ci-integration/README.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/ci-integration/docker-one-liner.sh +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/ci-integration/github-actions-sarif.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/ci-integration/gitlab-ci-scan.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/ci-integration/pre-commit-config.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/run-all-examples.sh +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/01-no-auth-remote/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/01-no-auth-remote/expected-findings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/02-shell-injection/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/02-shell-injection/expected-findings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/03-hardcoded-secrets/.gitignore +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/03-hardcoded-secrets/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/03-hardcoded-secrets/expected-findings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/04-hook-exfiltration/.claude/settings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/04-hook-exfiltration/expected-findings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/05-trust-boundary-violations/.claude/settings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/05-trust-boundary-violations/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/05-trust-boundary-violations/expected-findings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/06-tool-poisoning/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/06-tool-poisoning/expected-findings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/07-tainted-tool-function/expected-findings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/07-tainted-tool-function/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/08-transport-insecurity/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/08-transport-insecurity/expected-findings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/09-a2a-insecure-agent/agent-card.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/09-a2a-insecure-agent/expected-findings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/10-supply-chain-risks/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/10-supply-chain-risks/expected-findings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/10-supply-chain-risks/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/11-legal-compliance/expected-findings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/11-legal-compliance/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/11-legal-compliance/subproject/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/examples/vulnerable-configs/README.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/launch/MARKET-RESEARCH-2026-04-12.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/launch/awesome-list-prs/awesome-opensource-security.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/launch/awesome-list-prs/awesome-security.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/launch/blog-50-mcp-servers.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/launch/demo.cast +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/launch/owasp-outreach.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/launch/state-of-mcp-security-2026.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/mkdocs.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/public/badges/ox-coverage.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/public/corpora/manifest.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/releases/v0.3.10.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/releases/v0.3.5.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/releases/v0.3.6.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/releases/v0.3.7.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/releases/v0.3.8.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/releases/v0.3.9.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/requirements-lock.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/research/state-of-mcp-2026/PREVALENCE.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/research/state-of-mcp-2026/REPORT.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/research/state-of-mcp-2026/results.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/research/state-of-mcp-2026/run_report.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/schema/ox-cve-manifest.schema.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/scripts/backfill_cve_property.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/scripts/build_coverage_page.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/scripts/close_duplicate_cve_issues.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/scripts/cve_watcher.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/scripts/gen_coverage.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/scripts/gen_owasp_coverage.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/scripts/generate_lockfile.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/scripts/install-pre-commit.sh +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/scripts/sync_repo_metadata.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/scripts/sync_rule_count.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/scripts/sync_scanner_count.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/scripts/watch_csa_mcp_baseline.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/site/coverage/ox.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/site/coverage/prisma-airs.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/conftest.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/LICENSES.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/clean_mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/clean_settings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/crewai/safe/full_chain.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/crewai/vulnerable/full_chain.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/a2a_2026/vulnerable_card.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/comment-and-control-2026-04-25/patched/review_agent.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/comment-and-control-2026-04-25/vulnerable/review_agent.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2025-65720-gpt-researcher/config-safe-rejected/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2025-65720-gpt-researcher/config-unsafe/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2025-65720-gpt-researcher/pin-vulnerable-git/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2025-65720-gpt-researcher/pin-vulnerable-pypi/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2025-66335/patched/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2025-66335/vulnerable/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-20205/patched-splunk-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-20205/redacted-token-log/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-20205/vulnerable-splunk-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-20205/vulnerable-token-log/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-20205-config/patched-yaml/splunk-mcp.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-20205-config/vulnerable-inputs/inputs.conf +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-20205-config/vulnerable-yaml/splunk-mcp.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-23744-mcp-inspector/vendored-fork/vendor/mcpjam-inspector/server.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-26015-docsgpt/config-safe-no-override/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-26015-docsgpt/config-safe-rejected/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-26015-docsgpt/config-unsafe/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-26015-docsgpt/pin-safe/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-26015-docsgpt/pin-vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-26015-docsgpt/pin-vulnerable-git/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-26030-semantic-kernel/pin-safe/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-26030-semantic-kernel/pin-safe-floor/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-26030-semantic-kernel/pin-vulnerable/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-27825-atlassian/patched-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-27825-atlassian/vulnerable/agent.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-30615/patched/py_argv_allowlist.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-30615/vulnerable/py_os_system_stdin.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-30615/vulnerable/py_subprocess_shell.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-30615/vulnerable/ts_execa_shell.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-30623-litellm/patched/requirements-floor.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-30623-litellm/patched/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-30623-litellm/vulnerable/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-32211/patched-with-auth/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-32211/vulnerable-no-auth/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-32211-server/pyproject.toml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-32211-server/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-33032/patched/router.go +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-33032/vulnerable/router.go +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-33032/vulnerable/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-33032/vulnerable/server.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-33626/patched-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-33626/vulnerable/pipeline.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-39313/length-capped/http.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-39313/patched/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-39313/vulnerable/http.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-39313/vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-40068-claudecode/pin-safe/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-40068-claudecode/pin-vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-40933/vulnerable/flow.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-41481/patched-no-redirect/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-41481/patched-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-41481/vulnerable-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-41481/vulnerable-redirect/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-41488/patched-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-41488/patched-pinned/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-41488/vulnerable-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-41488/vulnerable-toctou/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-44717-mcp-calculate-server/pin-safe/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-44717-mcp-calculate-server/pin-safe-floor/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-44717-mcp-calculate-server/pin-vulnerable/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-7061-chatgpt-mcp/safe/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-7061-chatgpt-mcp/vulnerable-git/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-7061-chatgpt-mcp/vulnerable-shorthand/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-7591-astro-mcp/source-safe/no_import.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-7591-astro-mcp/source-safe/parametrized.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-7591-astro-mcp/source-safe/tagged_template.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-7591-astro-mcp/source-unsafe/index.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/cve-2026-7591-astro-mcp/vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/dns-rebind-sdk-class/apollo-patched/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/dns-rebind-sdk-class/apollo-vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/dns-rebind-sdk-class/java-patched/pom.xml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/dns-rebind-sdk-class/java-vulnerable/pom.xml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/dns-rebind-sdk-class/python-patched/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/dns-rebind-sdk-class/python-pattern-guarded/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/dns-rebind-sdk-class/python-pattern-guarded/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/dns-rebind-sdk-class/python-pattern-unguarded/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/dns-rebind-sdk-class/python-pattern-unguarded/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/dns-rebind-sdk-class/python-vulnerable/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/healthcare_ai/safe_skill.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/healthcare_ai/vulnerable_skill.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/hook_rce/safe_settings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/hook_rce/vulnerable_settings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/india_pii/safe.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/india_pii/vulnerable.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/langchain/safe_requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/langchain/vulnerable_prompt.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/langchain/vulnerable_requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/marketplace/safe.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/marketplace/vulnerable.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/mcp_auth/safe_server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/mcp_auth/vulnerable_server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/oauth/safe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/oauth/vulnerable.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/ox-mcp-stdio-class/patched_java.java +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/ox-mcp-stdio-class/patched_py.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/ox-mcp-stdio-class/patched_rust.rs +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/ox-mcp-stdio-class/patched_ts.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/ox-mcp-stdio-class/vulnerable_java.java +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/ox-mcp-stdio-class/vulnerable_py.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/ox-mcp-stdio-class/vulnerable_rust.rs +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/ox-mcp-stdio-class/vulnerable_ts.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/routines/safe.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/routines/vulnerable.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/skills/safe.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/skills/vulnerable.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/ssrf/safe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/ssrf/vulnerable.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/state_privacy/safe_privacy.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/state_privacy/vulnerable_privacy.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/tasks/safe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/cves/tasks/vulnerable.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/deepseek/safe/agent.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/deepseek/vulnerable/agent.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/env_with_secrets +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/eu_ai_act_art15_locale/documented_risk/.agent-audit-kit.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/eu_ai_act_art15_locale/documented_risk/agent.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/eu_ai_act_art15_locale/multilingual_en_only/agent.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/eu_ai_act_art15_locale/multilingual_en_only/evals/welcome.en.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/eu_ai_act_art15_locale/multilingual_internal_only/agent.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/eu_ai_act_art15_locale/multilingual_with_coverage/agent.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/eu_ai_act_art15_locale/multilingual_with_coverage/evals/welcome.de.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/eu_ai_act_art15_locale/multilingual_with_coverage/evals/welcome.en.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/eu_ai_act_art15_locale/multilingual_with_coverage/evals/welcome.fr.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/eu_ai_act_art15_locale/single_locale/agent.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/harness_shared_state/safe_multi_agent.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/harness_shared_state/unsafe_multi_agent.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/incidents/ipi-wild-2026-04-24/poisoned_template.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/incidents/mcp-fhi/clean/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/incidents/mcp-fhi/vulnerable/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/incidents/ox-mcp-2026-04-15/documented-risk/.agent-audit-kit.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/incidents/ox-mcp-2026-04-15/documented-risk/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/incidents/ox-mcp-2026-04-15/documented-risk/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/incidents/ox-mcp-2026-04-15/python/sanitized/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/incidents/ox-mcp-2026-04-15/python/sanitized/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/incidents/ox-mcp-2026-04-15/python/vulnerable/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/incidents/ox-mcp-2026-04-15/python/vulnerable/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/incidents/ox-mcp-2026-04-15/typescript/sanitized/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/incidents/ox-mcp-2026-04-15/typescript/sanitized/server.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/incidents/ox-mcp-2026-04-15/typescript/vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/incidents/ox-mcp-2026-04-15/typescript/vulnerable/server.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/incidents/ox-mcp-marketplace-fetch/patched.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/incidents/ox-mcp-marketplace-fetch/vulnerable.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/incidents/ox-mcp-marketplace-fetch/vulnerable.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/incidents/vercel-2026-04-19/app.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/kong_konnect/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/langchain_prompt_loader/constant_safe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/langchain_prompt_loader/user_path_unsafe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/langchain_prompt_loader/validated_safe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/langgraph/safe/graph.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/langgraph/vulnerable/graph.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_sampling/clean_python/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_sampling/clean_python/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_sampling/config_clean/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_sampling/config_vulnerable/.mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_sampling/documented_risk/.agent-audit-kit.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_sampling/documented_risk/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_sampling/documented_risk/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_sampling/vulnerable_python/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_sampling/vulnerable_python/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_sampling/vulnerable_typescript/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_sampling/vulnerable_typescript/server.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_stateless/clean_py/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_stateless/clean_py/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_stateless/documented_risk/.agent-audit-kit.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_stateless/documented_risk/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_stateless/documented_risk/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_stateless/vulnerable_001_py/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_stateless/vulnerable_001_py/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_stateless/vulnerable_001_ts/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_stateless/vulnerable_001_ts/server.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_stateless/vulnerable_002_py/client.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_stateless/vulnerable_002_py/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_stateless/vulnerable_003_k8s/service.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_stateless/vulnerable_003_nginx/nginx.conf +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_stateless/vulnerable_003_store_py/handlers.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_stateless/vulnerable_003_store_py/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_stateless/vulnerable_004_client/client.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_stateless/vulnerable_004_client/requirements.txt +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_tool_unsafe_eval/eval_safe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_tool_unsafe_eval/eval_unsafe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/mcp_tool_unsafe_eval/no_tool_decorator.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/metis_pomdp/refusal_refeed_safe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/metis_pomdp/refusal_refeed_unsafe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/metis_pomdp/scoring_sink_unsafe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/openapi_smells/clean.openapi.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/openapi_smells/smelly.openapi.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/openclaw/role_default_admin_unsafe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/openclaw/role_explicit_safe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/package_with_risks.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/pipelock/policy_invalid.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/pipelock/policy_minimal.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/pipelock/policy_with_parity.yaml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/project_deal/safe/pricer.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/project_deal/vulnerable/pricer.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/server_cards/clean.server-card.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/server_cards/poisoned.server-card.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/skill_lifecycle/safe_skill.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/skill_lifecycle/unsafe_skill.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/social_agents/tiktok_human_in_loop.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/social_agents/tiktok_unsafe.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/stainless_lineage/config_root/stainless.yml +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/stainless_lineage/generated_python_sdk/client.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/stainless_lineage/generated_typescript_sdk/client.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/stainless_lineage/handwritten/server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/vulnerable_hooks.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/vulnerable_mcp.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/fixtures/vulnerable_settings.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_a2a_2026.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_a2a_protocol.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_action.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_agent_config.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_aicm.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_anthropic_sdk_hardening.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_argv_toctou.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_cli.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_compliance_output.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_compliance_v2.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_coverage_tables.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_crewai_nvd_and_evasion.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_csa_baseline_watcher.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_cve_2025_66335.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_cve_2025_66414_python_sdk.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_cve_2026_20205_config.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_cve_2026_20205_splunk.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_cve_2026_32211.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_cve_2026_32211_server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_cve_2026_33626.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_cve_2026_35568_java.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_cve_2026_35577_apollo.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_cve_2026_39313.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_cve_2026_40576_excel.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_cve_2026_40608_next_ai_draw.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_cve_2026_41481.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_cve_2026_41488.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_cve_fix_and_watch_and_advisories.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_cve_watcher_dedup.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_cves_2026.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_cyclonedx_aibom.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_determinism_benchmark.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_diff.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_discovery.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_engine.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_engine_ignore_paths.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_eu_ai_act_art15_locale.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_examples.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_fix.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_flowise.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_gha_immutable.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_healthcare_ai_and_state_privacy.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_hook_injection.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_index_builder.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_india_pii.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_integrations_notify.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_kong_konnect_cve_2026_13341.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_legal_compliance.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_llm_scan.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_llm_scan_mod.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_llm_sql_rce.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_marketplace_manifest.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_marketplace_sources.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_mcp_attestation.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_mcp_auth_pathtraversal.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_mcp_config.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_mcp_env_placeholder_exfil.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_mcp_http_noauth_server.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_mcp_marketplace_fetch.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_mcp_noauth_default.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_mcp_sampling_capability.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_mcp_server_card.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_mcp_stateless_migration.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_mcp_stdio_cmd_inj_java.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_mcp_stdio_cmd_inj_python.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_mcp_stdio_cmd_inj_rust.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_mcp_stdio_cmd_inj_typescript.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_mcp_stdio_launcher.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_mcp_toolgate_asymmetry.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_mcp_tunnel.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_mcpwn.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_nsa_mcp_csi.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_oauth_surface.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_owasp_agentic_coverage.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_owasp_public_json.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_owasp_report.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_owasp_report_output.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_parity_region_drift.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_phase3.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_pin_drift.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_pinning.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_pinning_mod.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_pr_summary.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_preset_mcp_ox_2026_04.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_proxy.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_repo_metadata_sync.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_rule_count_sync.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_sandbox_self_disable.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_sarif_fingerprints.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_sarif_github_upload.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_sarif_output.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_scoring.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_secret_exposure.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_shared_resource_authz.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_skill_poisoning.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_skill_untrusted_exec_path.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_stdio_injection.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_supply_chain.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_taint_analysis.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_tool_poisoning.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_toxic_flow.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_transport_security.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_trust_boundary.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_typescript_pattern_scan_sql.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_v0_3_10_features.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_v0_3_10_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_v0_3_11_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_v0_3_13_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_v0_3_14_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_v0_3_15_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_v0_3_16_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_v0_3_17_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_v0_3_18_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_v0_3_19_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_v0_3_1_cve_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_v0_3_20_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_v0_3_21_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_v0_3_22_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_v0_3_8_features.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_v0_3_8_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_v0_3_9_features.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_v0_3_9_features_p1.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_v0_3_9_rules.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_verification.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_verification_mod.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/tests/test_vuln_db.py +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/vscode-extension/.vscodeignore +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/vscode-extension/CLAUDE.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/vscode-extension/README.md +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/vscode-extension/package.json +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/vscode-extension/src/extension.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/vscode-extension/src/sarifReader.ts +0 -0
- {agent_audit_kit-0.3.46 → agent_audit_kit-0.3.47}/vscode-extension/tsconfig.json +0 -0
|
@@ -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.47 (2026-07-07)
|
|
12
|
+
|
|
13
|
+
| Incident / Anchor | Reference | AAK rule(s) | Shipped | Latency |
|
|
14
|
+
|---|---|---|---|---|
|
|
15
|
+
| CVE-2026-14471 (Amazon mcp-gateway-registry < 1.0.13 — SQL injection: crafted `table_name` interpolated into an SQL identifier in the metrics-service retention policy, CWE-89) | [NVD CVE-2026-14471](https://nvd.nist.gov/vuln/detail/CVE-2026-14471) (HIGH, CVSS 8.1, published 2026-07-06) | **AAK-MCP-GATEWAY-REGISTRY-CVE-2026-14471-001** (NEW: HIGH, SUPPLY_CHAIN — version-pin, fires < 1.0.13 / unpinned) | 2026-07-07 | <24h on NVD |
|
|
16
|
+
|
|
11
17
|
## Shipped in v0.3.46 (2026-07-06)
|
|
12
18
|
|
|
13
19
|
| Incident / Anchor | Reference | AAK rule(s) | Shipped | Latency |
|
|
@@ -7,6 +7,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
### Added — AAK-MCP-GATEWAY-REGISTRY-CVE-2026-14471-001 (Amazon mcp-gateway-registry SQLi)
|
|
11
|
+
|
|
12
|
+
CVE-response (closes #408). New **HIGH** rule + version-pin detector for
|
|
13
|
+
[CVE-2026-14471](https://nvd.nist.gov/vuln/detail/CVE-2026-14471) (CVSS 8.1):
|
|
14
|
+
Amazon `mcp-gateway-registry` before 1.0.13 interpolates a caller-supplied
|
|
15
|
+
`table_name` into an SQL identifier position in the metrics-service retention
|
|
16
|
+
policy (CWE-89), letting an authenticated remote user run arbitrary SQL. Fires
|
|
17
|
+
on `< 1.0.13` or an unpinned reference across manifests + MCP config files;
|
|
18
|
+
fixture-backed test; `rules.json` regenerated. Rule count **231 → 232**.
|
|
19
|
+
|
|
20
|
+
### Fixed — correct SEP citations on the AAK-MCP-STATELESS-* pack
|
|
21
|
+
|
|
22
|
+
Citation-accuracy pass on the shipped stateless-migration rules (no detection
|
|
23
|
+
change, rule count stays 231). The `Mcp-Session-Id` / protocol-session removal
|
|
24
|
+
was mis-attributed to SEP-1442; it is actually **SEP-2567** ("Sessionless MCP
|
|
25
|
+
via Explicit State Handles"), with SEP-1442 / **SEP-2575** making the init
|
|
26
|
+
handshake optional so stateless is the default. The `tasks/list` removal cited
|
|
27
|
+
a **non-existent SEP-1359**; corrected to the experimental Tasks primitive
|
|
28
|
+
(**SEP-1686**) moving out of core into the Extensions framework (redesigned as
|
|
29
|
+
**SEP-2663**). Updated `AAK-MCP-STATELESS-001`/`-002` descriptions, the
|
|
30
|
+
`mcp_stateless_migration` scanner docstring + engine label, and `rules.json`.
|
|
31
|
+
Verified against modelcontextprotocol.io + the MCP GitHub SEPs. Version
|
|
32
|
+
**0.3.46 → 0.3.47**.
|
|
33
|
+
|
|
10
34
|
### Security — Flowise CVE-2026-58057 (closes #372)
|
|
11
35
|
|
|
12
36
|
Bumped `AAK-FLOWISE-001`'s pin floor **3.1.2 → 3.1.3** and added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-audit-kit
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.47
|
|
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-232-blue.svg" alt="Rules: 232"></a>
|
|
46
46
|
<a href="#frameworks--standards"><img src="https://img.shields.io/badge/OWASP_Agentic-10%2F10-green.svg" alt="OWASP Agentic: 10/10"></a>
|
|
47
47
|
<a href="#frameworks--standards"><img src="https://img.shields.io/badge/OWASP_MCP-10%2F10-green.svg" alt="OWASP MCP: 10/10"></a>
|
|
48
48
|
<a href="https://sattyamjjain.github.io/agent-audit-kit/"><img src="https://img.shields.io/badge/MCP_Security_Index-live-blue.svg" alt="MCP Security Index"></a>
|
|
@@ -61,7 +61,7 @@ Security scanner for MCP-connected AI agent pipelines. Finds misconfigurations,
|
|
|
61
61
|
1. **Runs fully offline and deterministically.** Your code, configs, and secrets never leave the machine; the default scan path makes zero network calls, and the same input always yields the same finding (no model in the loop). This is measured, not just claimed: [20/20 identical runs → one shared SHA-256 finding-set digest, 0% variance](benchmarks/determinism/RESULTS.md). Scanners that route findings through an LLM judge can't guarantee a byte-identical re-run — so CI diffs, audit re-runs, and regression baselines stay stable here. No account, no telemetry.
|
|
62
62
|
2. **Produces auditor-ready compliance-evidence packs.** SARIF for the GitHub Security tab plus PDF evidence reports mapped to 13 frameworks (EU AI Act, SOC 2, ISO 27001/42001, HIPAA, NIST AI RMF, and regional regimes) — what you hand an auditor, not just a list of findings.
|
|
63
63
|
|
|
64
|
-
- **<!-- rule-count:total -->
|
|
64
|
+
- **<!-- rule-count:total -->232<!-- /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
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
|
|
@@ -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.47
|
|
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.47
|
|
124
124
|
hooks:
|
|
125
125
|
- id: agent-audit-kit
|
|
126
126
|
```
|
|
@@ -145,7 +145,7 @@ agent-audit-kit scan examples/vulnerable-configs/04-hook-exfiltration/
|
|
|
145
145
|
| Category | Rules | What It Detects |
|
|
146
146
|
|----------|:-----:|-----------------|
|
|
147
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
|
-
| **Supply Chain** | <!-- category-count:SUPPLY_CHAIN -->
|
|
148
|
+
| **Supply Chain** | <!-- category-count:SUPPLY_CHAIN -->42<!-- /category-count --> | Vulnerable LangChain / langchain-text-splitters versions, named pin rules for `astro-mcp-server` / `chatgpt-mcp-server` / `docsgpt` / `gpt-researcher` / `litellm` / `mcp-calculate-server` / `semantic-kernel` / `@anthropic-ai/claude-code` / `apache-doris-mcp-server` / `excel-mcp-server`, OX MCP-STDIO command-injection (Python/TS/Java/Rust) — `AAK-MCP-STDIO-CMD-INJ-001..004` — Stainless-generator lineage, marketplace.json signatures / typosquat / mutable refs, unpinned packages, dangerous install scripts, untrusted-search-path executable override in skill/install flows (`.env`-sourced binary, workspace-prepended `PATH`, `shutil.which` over a tainted PATH, Homebrew env override — `AAK-SKILL-UNTRUSTED-EXEC-PATH`, **CWE-426 / CVE-2026-53819**) |
|
|
149
149
|
| **Tool Poisoning** | <!-- category-count:TOOL_POISONING -->27<!-- /category-count --> | Invisible Unicode / bidi, skill frontmatter injection, SKILL.md post-install commands, data-exfil primitives, skill name hijacking, cross-tool references, rug-pull (SHA-256 pinning), `@mcp.tool` unsafe-eval (CVE-2026-44717 generalization), OpenAPI smells (Hermes paper LAZY/BLOATED/TANGLED), Metis POMDP refusal-refeed + scoring-sink, SkillsVote lifecycle attribution, MCP Calculate Server pin, Kong Konnect MCP server < 1.0.0 indirect prompt injection → unintended Konnect/Admin API requests (`AAK-MCP-KONG-CVE-2026-13341-001`, **CVE-2026-13341**, HIGH 7.4). Indirect-prompt-injection detection (`AAK-POISON-001..006`) runs against tool descriptions **and** every per-parameter `inputSchema.properties.*.description` (recursive — nested objects, array items, `anyOf`/`allOf`/`oneOf`), so instruction text hidden in a single argument's docstring is caught |
|
|
150
150
|
| **Secret Exposure** | <!-- category-count:SECRET_EXPOSURE -->18<!-- /category-count --> | Anthropic/OpenAI/AWS/GitHub/GitLab/GCP keys, Shannon-entropy detection, `.env` leaks, private-key files, hardcoded credential surface, token-leak via log sinks (CVE-2026-20205), `${VAR}`/process.env placeholder resolution on user-supplied MCP URLs → secret exfiltration (CVE-2026-32625) |
|
|
151
151
|
| **Agent Config** | <!-- category-count:AGENT_CONFIG -->15<!-- /category-count --> | Routines permission escalation + schedule injection + audit-log gaps, AGENTS.md/CLAUDE.md/.cursorrules hijacking, hidden Unicode, encoded payloads, internal scanner-fail signal, Project Deal economic-drift detection |
|
|
@@ -157,7 +157,7 @@ agent-audit-kit scan examples/vulnerable-configs/04-hook-exfiltration/
|
|
|
157
157
|
| **Trust Boundaries** | <!-- category-count:TRUST_BOUNDARY -->12<!-- /category-count --> | `enableAllProjectMcpServers`, API URL redirects, wildcard permissions, missing deny rules, missing allowlists, Claude Code folder-trust bypass (CVE-2026-40068) |
|
|
158
158
|
| **MCP Server Card** | <!-- category-count:MCP_SERVER_CARD -->4<!-- /category-count --> | Static audit of SEP-1649 discovery cards (`/.well-known/mcp/server-card.json`): tool-description poisoning in `tools[].description` (`AAK-MCP-CARD-001`, reuses the AAK-POISON detectors), declared-transport vs advertised-capability mismatch — remote transport with `authentication.required: false`, or `stdio` advertising a remote endpoint (`AAK-MCP-CARD-002`), missing / placeholder signature / provenance (`AAK-MCP-CARD-003`), and over-broad capability / wildcard-scope claims (`AAK-MCP-CARD-004`) |
|
|
159
159
|
|
|
160
|
-
**<!-- rule-count:total -->
|
|
160
|
+
**<!-- rule-count:total -->232<!-- /rule-count --> rules total.** Every finding includes severity, evidence, remediation, OWASP references, Adversa references, and CVE links where applicable.
|
|
161
161
|
|
|
162
162
|
### MCP Server Card scanning (SEP-1649)
|
|
163
163
|
|
|
@@ -352,7 +352,7 @@ cross-reference, not a head-to-head benchmark.
|
|
|
352
352
|
| ASI | Title | # rules |
|
|
353
353
|
| --- | --- | --- |
|
|
354
354
|
| **ASI01** | Goal Hijack | 12 |
|
|
355
|
-
| **ASI02** | Tool Misuse |
|
|
355
|
+
| **ASI02** | Tool Misuse | 39 |
|
|
356
356
|
| **ASI03** | Memory Poisoning | 56 |
|
|
357
357
|
| **ASI04** | Identity & Privilege Abuse | 38 |
|
|
358
358
|
| **ASI05** | Cascading Failures | 33 |
|
|
@@ -398,7 +398,7 @@ See [`docs/comparisons.md`](docs/comparisons.md) for a fully-sourced version. Ve
|
|
|
398
398
|
| Feature | AgentAuditKit | Microsoft AGT | Snyk Agent Scan | Semgrep Multimodal |
|
|
399
399
|
|---------|:---:|:---:|:---:|:---:|
|
|
400
400
|
| Scope | Static scanner + compliance PDFs | Runtime governance | Static + runtime | Multimodal SAST |
|
|
401
|
-
| Detection rules (static) | **<!-- rule-count:total -->
|
|
401
|
+
| Detection rules (static) | **<!-- rule-count:total -->232<!-- /rule-count -->** | Runtime policies, not rules | ~30 | LLM-assisted |
|
|
402
402
|
| OWASP Agentic 10/10 | **Yes** | Yes | Partial | Partial |
|
|
403
403
|
| OWASP MCP 10/10 | **Yes** | No (runtime-focused) | No | No |
|
|
404
404
|
| Auditor-ready PDF compliance | **12 frameworks** | No | 0 | 0 |
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<a href="https://pypi.org/project/agent-audit-kit/"><img src="https://img.shields.io/pypi/v/agent-audit-kit.svg" alt="PyPI"></a>
|
|
9
9
|
<a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/python-3.9+-blue.svg" alt="Python 3.9+"></a>
|
|
10
10
|
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a>
|
|
11
|
-
<a href="#what-it-scans"><img src="https://img.shields.io/badge/rules-
|
|
11
|
+
<a href="#what-it-scans"><img src="https://img.shields.io/badge/rules-232-blue.svg" alt="Rules: 232"></a>
|
|
12
12
|
<a href="#frameworks--standards"><img src="https://img.shields.io/badge/OWASP_Agentic-10%2F10-green.svg" alt="OWASP Agentic: 10/10"></a>
|
|
13
13
|
<a href="#frameworks--standards"><img src="https://img.shields.io/badge/OWASP_MCP-10%2F10-green.svg" alt="OWASP MCP: 10/10"></a>
|
|
14
14
|
<a href="https://sattyamjjain.github.io/agent-audit-kit/"><img src="https://img.shields.io/badge/MCP_Security_Index-live-blue.svg" alt="MCP Security Index"></a>
|
|
@@ -27,7 +27,7 @@ Security scanner for MCP-connected AI agent pipelines. Finds misconfigurations,
|
|
|
27
27
|
1. **Runs fully offline and deterministically.** Your code, configs, and secrets never leave the machine; the default scan path makes zero network calls, and the same input always yields the same finding (no model in the loop). This is measured, not just claimed: [20/20 identical runs → one shared SHA-256 finding-set digest, 0% variance](benchmarks/determinism/RESULTS.md). Scanners that route findings through an LLM judge can't guarantee a byte-identical re-run — so CI diffs, audit re-runs, and regression baselines stay stable here. No account, no telemetry.
|
|
28
28
|
2. **Produces auditor-ready compliance-evidence packs.** SARIF for the GitHub Security tab plus PDF evidence reports mapped to 13 frameworks (EU AI Act, SOC 2, ISO 27001/42001, HIPAA, NIST AI RMF, and regional regimes) — what you hand an auditor, not just a list of findings.
|
|
29
29
|
|
|
30
|
-
- **<!-- rule-count:total -->
|
|
30
|
+
- **<!-- rule-count:total -->232<!-- /rule-count --> rules** across 12 security categories, covering the 2026 CVE wave
|
|
31
31
|
- Rule count is computed from the registry and verified in CI (`test_rule_count_is_canonical`).
|
|
32
32
|
- **<!-- scanner-count:total -->81<!-- /scanner-count --> scanner modules** including AST-based Python taint analysis and regex pattern scanners for TypeScript/JavaScript and Rust
|
|
33
33
|
- **16 CLI commands**: `scan`, `discover`, `pin`, `verify`, `fix`, `score`, `update`, `proxy`, `kill`, `watch`, plus `export-rules`, `verify-bundle`, `sbom`, `report`, `install-precommit`, and the Security-Advisories scan flag
|
|
@@ -66,7 +66,7 @@ jobs:
|
|
|
66
66
|
runs-on: ubuntu-latest
|
|
67
67
|
steps:
|
|
68
68
|
- uses: actions/checkout@v4
|
|
69
|
-
- uses: sattyamjjain/agent-audit-kit@v0.3.
|
|
69
|
+
- uses: sattyamjjain/agent-audit-kit@v0.3.47
|
|
70
70
|
with:
|
|
71
71
|
fail-on: high
|
|
72
72
|
```
|
|
@@ -86,7 +86,7 @@ agent-audit-kit scan .
|
|
|
86
86
|
# .pre-commit-config.yaml
|
|
87
87
|
repos:
|
|
88
88
|
- repo: https://github.com/sattyamjjain/agent-audit-kit
|
|
89
|
-
rev: v0.3.
|
|
89
|
+
rev: v0.3.47
|
|
90
90
|
hooks:
|
|
91
91
|
- id: agent-audit-kit
|
|
92
92
|
```
|
|
@@ -111,7 +111,7 @@ agent-audit-kit scan examples/vulnerable-configs/04-hook-exfiltration/
|
|
|
111
111
|
| Category | Rules | What It Detects |
|
|
112
112
|
|----------|:-----:|-----------------|
|
|
113
113
|
| **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) |
|
|
114
|
-
| **Supply Chain** | <!-- category-count:SUPPLY_CHAIN -->
|
|
114
|
+
| **Supply Chain** | <!-- category-count:SUPPLY_CHAIN -->42<!-- /category-count --> | Vulnerable LangChain / langchain-text-splitters versions, named pin rules for `astro-mcp-server` / `chatgpt-mcp-server` / `docsgpt` / `gpt-researcher` / `litellm` / `mcp-calculate-server` / `semantic-kernel` / `@anthropic-ai/claude-code` / `apache-doris-mcp-server` / `excel-mcp-server`, OX MCP-STDIO command-injection (Python/TS/Java/Rust) — `AAK-MCP-STDIO-CMD-INJ-001..004` — Stainless-generator lineage, marketplace.json signatures / typosquat / mutable refs, unpinned packages, dangerous install scripts, untrusted-search-path executable override in skill/install flows (`.env`-sourced binary, workspace-prepended `PATH`, `shutil.which` over a tainted PATH, Homebrew env override — `AAK-SKILL-UNTRUSTED-EXEC-PATH`, **CWE-426 / CVE-2026-53819**) |
|
|
115
115
|
| **Tool Poisoning** | <!-- category-count:TOOL_POISONING -->27<!-- /category-count --> | Invisible Unicode / bidi, skill frontmatter injection, SKILL.md post-install commands, data-exfil primitives, skill name hijacking, cross-tool references, rug-pull (SHA-256 pinning), `@mcp.tool` unsafe-eval (CVE-2026-44717 generalization), OpenAPI smells (Hermes paper LAZY/BLOATED/TANGLED), Metis POMDP refusal-refeed + scoring-sink, SkillsVote lifecycle attribution, MCP Calculate Server pin, Kong Konnect MCP server < 1.0.0 indirect prompt injection → unintended Konnect/Admin API requests (`AAK-MCP-KONG-CVE-2026-13341-001`, **CVE-2026-13341**, HIGH 7.4). Indirect-prompt-injection detection (`AAK-POISON-001..006`) runs against tool descriptions **and** every per-parameter `inputSchema.properties.*.description` (recursive — nested objects, array items, `anyOf`/`allOf`/`oneOf`), so instruction text hidden in a single argument's docstring is caught |
|
|
116
116
|
| **Secret Exposure** | <!-- category-count:SECRET_EXPOSURE -->18<!-- /category-count --> | Anthropic/OpenAI/AWS/GitHub/GitLab/GCP keys, Shannon-entropy detection, `.env` leaks, private-key files, hardcoded credential surface, token-leak via log sinks (CVE-2026-20205), `${VAR}`/process.env placeholder resolution on user-supplied MCP URLs → secret exfiltration (CVE-2026-32625) |
|
|
117
117
|
| **Agent Config** | <!-- category-count:AGENT_CONFIG -->15<!-- /category-count --> | Routines permission escalation + schedule injection + audit-log gaps, AGENTS.md/CLAUDE.md/.cursorrules hijacking, hidden Unicode, encoded payloads, internal scanner-fail signal, Project Deal economic-drift detection |
|
|
@@ -123,7 +123,7 @@ agent-audit-kit scan examples/vulnerable-configs/04-hook-exfiltration/
|
|
|
123
123
|
| **Trust Boundaries** | <!-- category-count:TRUST_BOUNDARY -->12<!-- /category-count --> | `enableAllProjectMcpServers`, API URL redirects, wildcard permissions, missing deny rules, missing allowlists, Claude Code folder-trust bypass (CVE-2026-40068) |
|
|
124
124
|
| **MCP Server Card** | <!-- category-count:MCP_SERVER_CARD -->4<!-- /category-count --> | Static audit of SEP-1649 discovery cards (`/.well-known/mcp/server-card.json`): tool-description poisoning in `tools[].description` (`AAK-MCP-CARD-001`, reuses the AAK-POISON detectors), declared-transport vs advertised-capability mismatch — remote transport with `authentication.required: false`, or `stdio` advertising a remote endpoint (`AAK-MCP-CARD-002`), missing / placeholder signature / provenance (`AAK-MCP-CARD-003`), and over-broad capability / wildcard-scope claims (`AAK-MCP-CARD-004`) |
|
|
125
125
|
|
|
126
|
-
**<!-- rule-count:total -->
|
|
126
|
+
**<!-- rule-count:total -->232<!-- /rule-count --> rules total.** Every finding includes severity, evidence, remediation, OWASP references, Adversa references, and CVE links where applicable.
|
|
127
127
|
|
|
128
128
|
### MCP Server Card scanning (SEP-1649)
|
|
129
129
|
|
|
@@ -318,7 +318,7 @@ cross-reference, not a head-to-head benchmark.
|
|
|
318
318
|
| ASI | Title | # rules |
|
|
319
319
|
| --- | --- | --- |
|
|
320
320
|
| **ASI01** | Goal Hijack | 12 |
|
|
321
|
-
| **ASI02** | Tool Misuse |
|
|
321
|
+
| **ASI02** | Tool Misuse | 39 |
|
|
322
322
|
| **ASI03** | Memory Poisoning | 56 |
|
|
323
323
|
| **ASI04** | Identity & Privilege Abuse | 38 |
|
|
324
324
|
| **ASI05** | Cascading Failures | 33 |
|
|
@@ -364,7 +364,7 @@ See [`docs/comparisons.md`](docs/comparisons.md) for a fully-sourced version. Ve
|
|
|
364
364
|
| Feature | AgentAuditKit | Microsoft AGT | Snyk Agent Scan | Semgrep Multimodal |
|
|
365
365
|
|---------|:---:|:---:|:---:|:---:|
|
|
366
366
|
| Scope | Static scanner + compliance PDFs | Runtime governance | Static + runtime | Multimodal SAST |
|
|
367
|
-
| Detection rules (static) | **<!-- rule-count:total -->
|
|
367
|
+
| Detection rules (static) | **<!-- rule-count:total -->232<!-- /rule-count -->** | Runtime policies, not rules | ~30 | LLM-assisted |
|
|
368
368
|
| OWASP Agentic 10/10 | **Yes** | Yes | Partial | Partial |
|
|
369
369
|
| OWASP MCP 10/10 | **Yes** | No (runtime-focused) | No | No |
|
|
370
370
|
| Auditor-ready PDF compliance | **12 frameworks** | No | 0 | 0 |
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: 'AgentAuditKit MCP Security Scan'
|
|
2
|
-
description: 'AgentAuditKit — MCP Security Scan (
|
|
2
|
+
description: 'AgentAuditKit — MCP Security Scan (232 rules, OWASP Agentic Top 10 + MCP Top 10)'
|
|
3
3
|
author: 'sattyamjjain'
|
|
4
4
|
|
|
5
5
|
branding:
|
|
@@ -84,7 +84,7 @@ _OPTIONAL_SCANNERS: list[tuple[str, str, list[str]]] = [
|
|
|
84
84
|
("skill_lifecycle_attribution", "Skill lifecycle outcome-attribution (SkillsVote, arXiv:2605.18401)", []),
|
|
85
85
|
("agent_harness_shared_state", "Multi-agent shared-state lock (Code-as-Harness, arXiv:2605.18747)", []),
|
|
86
86
|
("mcp_sampling_capability", "MCP `sampling` capability consent guard (MCP07:2025)", []),
|
|
87
|
-
("mcp_stateless_migration", "MCP 2026-07-28 stateless-migration smells (SEP-1442/
|
|
87
|
+
("mcp_stateless_migration", "MCP 2026-07-28 stateless-migration smells (SEP-2567/1442/2575)", []),
|
|
88
88
|
("eu_ai_act_art15_locale", "EU AI Act Art. 15 multilingual-eval coverage (advisory)", []),
|
|
89
89
|
("mcp_tunnel", "MCP Tunnels gateway config + credential exposure (Anthropic 2026-05-19 research preview)", []),
|
|
90
90
|
("sandbox_self_disable", "Tool-schema sandbox self-disable parameter (CVE-2026-42074)", []),
|
|
@@ -125,6 +125,7 @@ _AICM_TAGS: dict[str, list[str]] = {
|
|
|
125
125
|
"AAK-AZURE-MCP-NOAUTH-001": ["IAM-01", "IAM-16"],
|
|
126
126
|
"AAK-MCP-AUTH-PATHTRAVERSAL-001": ["IAM-01", "IVS-04"],
|
|
127
127
|
"AAK-MCP-KONG-CVE-2026-13341-001": ["AIS-07", "AIS-12"],
|
|
128
|
+
"AAK-MCP-GATEWAY-REGISTRY-CVE-2026-14471-001": ["AIS-07", "DSP-07"],
|
|
128
129
|
"AAK-LMDEPLOY-VL-SSRF-001": ["IVS-04", "AIS-08"],
|
|
129
130
|
"AAK-SPLUNK-MCP-TOKEN-LEAK-001": ["DSP-17", "LOG-06"],
|
|
130
131
|
"AAK-MARKETPLACE-001": ["STA-10"],
|
|
@@ -525,22 +526,27 @@ _r(
|
|
|
525
526
|
# ---------------------------------------------------------------------------
|
|
526
527
|
# AAK-MCP-STATELESS-001..004 — 2026-07-28 stateless-MCP migration
|
|
527
528
|
#
|
|
528
|
-
# The MCP 2026-07-28 spec release candidate
|
|
529
|
-
#
|
|
530
|
-
#
|
|
531
|
-
#
|
|
532
|
-
#
|
|
533
|
-
#
|
|
534
|
-
#
|
|
535
|
-
#
|
|
536
|
-
#
|
|
537
|
-
#
|
|
529
|
+
# The MCP 2026-07-28 spec release candidate makes the protocol stateless by
|
|
530
|
+
# default: the `Mcp-Session-Id` header and the protocol-level session are
|
|
531
|
+
# removed and replaced with explicit, server-minted state handles (SEP-2567),
|
|
532
|
+
# while making the mandatory initialization handshake optional so stateless is
|
|
533
|
+
# the default (SEP-1442 / SEP-2575). The experimental Tasks primitive (SEP-1686)
|
|
534
|
+
# — including `tasks/list` — is moved out of the core spec into the Extensions
|
|
535
|
+
# framework (redesigned as SEP-2663), so core `tasks/list` is removed. Server/
|
|
536
|
+
# client code that assumes the pre-RC stateful protocol — relies on
|
|
537
|
+
# `Mcp-Session-Id`, dispatches `tasks/list`, requires sticky routing or a shared
|
|
538
|
+
# session store, or skips client-side caching of `tools/list` while holding
|
|
539
|
+
# per-session server state — will silently break after 2026-07-28 once the final
|
|
540
|
+
# spec lands. These four rules surface the migration surface so it can be fixed
|
|
541
|
+
# before the cutover.
|
|
538
542
|
#
|
|
539
543
|
# Sources:
|
|
540
544
|
# https://blog.modelcontextprotocol.io/posts/2026-07-28-release-candidate/
|
|
541
|
-
# https://
|
|
545
|
+
# https://modelcontextprotocol.io/seps/2567-sessionless-mcp
|
|
542
546
|
# https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1442
|
|
543
|
-
# https://github.com/modelcontextprotocol/modelcontextprotocol/
|
|
547
|
+
# https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2575
|
|
548
|
+
# https://modelcontextprotocol.io/community/seps/1686-tasks
|
|
549
|
+
# https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2663
|
|
544
550
|
# ---------------------------------------------------------------------------
|
|
545
551
|
|
|
546
552
|
_r(
|
|
@@ -548,8 +554,10 @@ _r(
|
|
|
548
554
|
"Reliance on `Mcp-Session-Id` header / protocol-level session id",
|
|
549
555
|
"Server or client code reads, writes, asserts, or constants the "
|
|
550
556
|
"`Mcp-Session-Id` header. The MCP 2026-07-28 spec release candidate "
|
|
551
|
-
"
|
|
552
|
-
"
|
|
557
|
+
"removes the `Mcp-Session-Id` header and the protocol-level session, "
|
|
558
|
+
"replacing them with explicit server-minted state handles (SEP-2567); "
|
|
559
|
+
"SEP-1442 / SEP-2575 make the initialization handshake optional so "
|
|
560
|
+
"stateless is the default. After "
|
|
553
561
|
"the final spec lands on 2026-07-28, code that depends on this header "
|
|
554
562
|
"(or on the session it represented) will silently break: any MCP "
|
|
555
563
|
"request can land on any server instance, and sticky routing / shared "
|
|
@@ -572,10 +580,11 @@ _r(
|
|
|
572
580
|
"Use of removed `tasks/list` method",
|
|
573
581
|
"Server or client code dispatches, handles, or names the `tasks/list` "
|
|
574
582
|
"JSON-RPC method. The MCP 2026-07-28 spec release candidate removes "
|
|
575
|
-
"`tasks/list`
|
|
576
|
-
"protocol-level session
|
|
577
|
-
"
|
|
578
|
-
"
|
|
583
|
+
"`tasks/list` from the core because it cannot be scoped safely without "
|
|
584
|
+
"the protocol-level session: the experimental Tasks primitive (SEP-1686) "
|
|
585
|
+
"moves out of the core specification into the Extensions framework "
|
|
586
|
+
"(redesigned as SEP-2663), and the stateful list surface has no "
|
|
587
|
+
"stateless successor in core.",
|
|
579
588
|
Severity.HIGH,
|
|
580
589
|
Category.MCP_CONFIG,
|
|
581
590
|
"Stop calling and handling `tasks/list`. If your application needs an "
|
|
@@ -5196,6 +5205,30 @@ _r(
|
|
|
5196
5205
|
adversa_references=["ADV-INJECT-01"],
|
|
5197
5206
|
)
|
|
5198
5207
|
|
|
5208
|
+
_r(
|
|
5209
|
+
"AAK-MCP-GATEWAY-REGISTRY-CVE-2026-14471-001",
|
|
5210
|
+
"Amazon mcp-gateway-registry < 1.0.13 (SQL injection)",
|
|
5211
|
+
"The Amazon `mcp-gateway-registry` before 1.0.13 improperly neutralizes a "
|
|
5212
|
+
"caller-supplied `table_name` in the metrics-service retention-policy "
|
|
5213
|
+
"component: the value is interpolated directly into an SQL statement in "
|
|
5214
|
+
"identifier position, so an authenticated remote user can execute arbitrary "
|
|
5215
|
+
"SQL against the gateway's metrics store (CVE-2026-14471, HIGH CVSS 8.1, "
|
|
5216
|
+
"CWE-89, published 2026-07-06). A project that depends on the gateway "
|
|
5217
|
+
"registry at a version below 1.0.13 (or unpinned) is exposed.",
|
|
5218
|
+
Severity.HIGH,
|
|
5219
|
+
Category.SUPPLY_CHAIN,
|
|
5220
|
+
"Upgrade `mcp-gateway-registry` to >= 1.0.13 and pin it explicitly. Never "
|
|
5221
|
+
"interpolate a request-supplied value into an SQL identifier position; "
|
|
5222
|
+
"validate `table_name` against a fixed allow-list of known table names, or "
|
|
5223
|
+
"quote it with the driver's identifier-quoting API rather than string "
|
|
5224
|
+
"formatting.",
|
|
5225
|
+
sarif_name="McpGatewayRegistrySqlInjection",
|
|
5226
|
+
cve_references=["CVE-2026-14471"],
|
|
5227
|
+
owasp_mcp_references=["MCP04:2025"],
|
|
5228
|
+
owasp_agentic_references=["ASI02"],
|
|
5229
|
+
adversa_references=["ADV-SUPPLY-01"],
|
|
5230
|
+
)
|
|
5231
|
+
|
|
5199
5232
|
|
|
5200
5233
|
# ---------------------------------------------------------------------------
|
|
5201
5234
|
# Internal / meta rules (surfaced when the scanner itself has a problem)
|
|
@@ -3,11 +3,13 @@
|
|
|
3
3
|
The MCP 2026-07-28 spec release candidate (locked 2026-05-21) makes the
|
|
4
4
|
protocol stateless by default:
|
|
5
5
|
|
|
6
|
-
* SEP-
|
|
7
|
-
removed
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
* SEP-2567: the protocol-level session and `Mcp-Session-Id` header are
|
|
7
|
+
removed and replaced with explicit server-minted state handles, so any
|
|
8
|
+
MCP request can land on any server instance. SEP-1442 / SEP-2575 make the
|
|
9
|
+
initialization handshake optional so stateless is the default.
|
|
10
|
+
* The experimental Tasks primitive (SEP-1686), including `tasks/list`, moves
|
|
11
|
+
out of the core specification into the Extensions framework (redesigned as
|
|
12
|
+
SEP-2663), so core `tasks/list` is removed.
|
|
11
13
|
|
|
12
14
|
Server / client code that assumes the pre-RC stateful protocol will
|
|
13
15
|
silently break once the final spec lands on 2026-07-28. This scanner
|
|
@@ -464,6 +464,7 @@ def scan(project_root: Path) -> tuple[list[Finding], set[str]]:
|
|
|
464
464
|
findings.extend(_check_mcp_specific_vulns(project_root))
|
|
465
465
|
findings.extend(_check_doris_mcp_pin(project_root, scanned_files))
|
|
466
466
|
findings.extend(_check_kong_konnect_mcp_pin(project_root, scanned_files))
|
|
467
|
+
findings.extend(_check_mcp_gateway_registry_pin(project_root, scanned_files))
|
|
467
468
|
findings.extend(_check_excel_mcp_pin(project_root, scanned_files))
|
|
468
469
|
findings.extend(_check_azure_mcp_auth(project_root, scanned_files))
|
|
469
470
|
findings.extend(_check_astro_mcp_pin(project_root, scanned_files))
|
|
@@ -596,6 +597,65 @@ def _check_kong_konnect_mcp_pin(project_root: Path, scanned_files: set[str]) ->
|
|
|
596
597
|
return findings
|
|
597
598
|
|
|
598
599
|
|
|
600
|
+
# ---------------------------------------------------------------------------
|
|
601
|
+
# AAK-MCP-GATEWAY-REGISTRY-CVE-2026-14471-001 — Amazon mcp-gateway-registry
|
|
602
|
+
# < 1.0.13 (CVE-2026-14471, HIGH 7.x/8.1). SQL injection in the metrics-service
|
|
603
|
+
# retention-policy component: a crafted `table_name` is interpolated into SQL in
|
|
604
|
+
# identifier position (CWE-89). Fixed in 1.0.13.
|
|
605
|
+
# ---------------------------------------------------------------------------
|
|
606
|
+
|
|
607
|
+
_MCP_GATEWAY_REGISTRY_PATCHED = (1, 0, 13)
|
|
608
|
+
_MCP_GATEWAY_REGISTRY_RE = re.compile(
|
|
609
|
+
r"mcp-gateway-registry"
|
|
610
|
+
r"\s*(?:==|>=|~=|<=|<|>|@|:|\"?\s*version\"?\s*[:=])?\s*v?([0-9][\w.\-]*)?",
|
|
611
|
+
re.IGNORECASE,
|
|
612
|
+
)
|
|
613
|
+
|
|
614
|
+
|
|
615
|
+
def _check_mcp_gateway_registry_pin(project_root: Path, scanned_files: set[str]) -> list[Finding]:
|
|
616
|
+
findings: list[Finding] = []
|
|
617
|
+
|
|
618
|
+
def _fire(rel: str, raw: str | None) -> None:
|
|
619
|
+
shown = f"{raw!r}" if raw else "unpinned"
|
|
620
|
+
findings.append(make_finding(
|
|
621
|
+
"AAK-MCP-GATEWAY-REGISTRY-CVE-2026-14471-001",
|
|
622
|
+
rel,
|
|
623
|
+
f"Amazon mcp-gateway-registry referenced at {shown} — CVE-2026-14471 "
|
|
624
|
+
"SQL injection (crafted table_name interpolated into an SQL "
|
|
625
|
+
"identifier in the metrics-service retention policy) is fixed in "
|
|
626
|
+
"1.0.13; pin >= 1.0.13.",
|
|
627
|
+
))
|
|
628
|
+
|
|
629
|
+
candidates: list[Path] = []
|
|
630
|
+
candidates.extend(project_root.glob("requirements*.txt"))
|
|
631
|
+
for name in (
|
|
632
|
+
"pyproject.toml", "Pipfile", "Pipfile.lock", "poetry.lock", "uv.lock",
|
|
633
|
+
"package.json", "package-lock.json",
|
|
634
|
+
".mcp.json", "mcp.json", "claude_desktop_config.json",
|
|
635
|
+
):
|
|
636
|
+
p = project_root / name
|
|
637
|
+
if p.is_file():
|
|
638
|
+
candidates.append(p)
|
|
639
|
+
candidates.extend(project_root.glob("*.mcp.yaml"))
|
|
640
|
+
candidates.extend(project_root.glob("*.mcp.yml"))
|
|
641
|
+
|
|
642
|
+
for path in candidates:
|
|
643
|
+
try:
|
|
644
|
+
text = path.read_text(encoding="utf-8", errors="replace")
|
|
645
|
+
except OSError:
|
|
646
|
+
continue
|
|
647
|
+
m = _MCP_GATEWAY_REGISTRY_RE.search(text)
|
|
648
|
+
if not m:
|
|
649
|
+
continue
|
|
650
|
+
raw = m.group(1)
|
|
651
|
+
version = _semver3(raw) if raw else None
|
|
652
|
+
if version is None or version < _MCP_GATEWAY_REGISTRY_PATCHED:
|
|
653
|
+
rel = str(path.relative_to(project_root))
|
|
654
|
+
scanned_files.add(rel)
|
|
655
|
+
_fire(rel, raw)
|
|
656
|
+
return findings
|
|
657
|
+
|
|
658
|
+
|
|
599
659
|
# ---------------------------------------------------------------------------
|
|
600
660
|
# AAK-EXCEL-MCP-001 — excel-mcp-server <= 0.1.7 (CVE-2026-40576).
|
|
601
661
|
# Path-traversal in get_excel_path(). Fixed in 0.1.8.
|
|
@@ -10,7 +10,7 @@ jobs:
|
|
|
10
10
|
runs-on: ubuntu-latest
|
|
11
11
|
steps:
|
|
12
12
|
- uses: actions/checkout@v4
|
|
13
|
-
- uses: sattyamjjain/agent-audit-kit@v0.3.
|
|
13
|
+
- uses: sattyamjjain/agent-audit-kit@v0.3.47
|
|
14
14
|
with:
|
|
15
15
|
severity: low
|
|
16
16
|
fail-on: high
|
|
@@ -22,7 +22,7 @@ jobs:
|
|
|
22
22
|
# .pre-commit-config.yaml
|
|
23
23
|
repos:
|
|
24
24
|
- repo: https://github.com/sattyamjjain/agent-audit-kit
|
|
25
|
-
rev: v0.3.
|
|
25
|
+
rev: v0.3.47
|
|
26
26
|
hooks:
|
|
27
27
|
- id: agent-audit-kit
|
|
28
28
|
# Or strict mode:
|
|
@@ -11,7 +11,7 @@ Every row is derived from the live AAK rule registry (`agent_audit_kit/rules/bui
|
|
|
11
11
|
| OWASP | Title | Coverage | # rules | Rule IDs |
|
|
12
12
|
| --- | --- | :---: | :---: | --- |
|
|
13
13
|
| **ASI01** | Goal Hijack | Full | 12 | `AAK-AGENT-001`, `AAK-AGENT-002`, `AAK-AGENT-003`, `AAK-AGENT-004`, `AAK-AGENT-005`, `AAK-CREWAI-CHAIN-2026-04-001`, `AAK-DEEPSEEK-V4-MOE-TOOL-INJ-001`, `AAK-MCP-KONG-CVE-2026-13341-001`, `AAK-MCPWN-001`, `AAK-METIS-REFUSAL-REFEED-001`, `AAK-METIS-SCORING-SINK-001`, `AAK-SKILL-005` |
|
|
14
|
-
| **ASI02** | Tool Misuse | Full |
|
|
14
|
+
| **ASI02** | Tool Misuse | Full | 39 | `AAK-AGENT-SHARED-RES-AUTHZ-001`, `AAK-ANTHROPIC-SDK-001`, `AAK-ASTROMCP-SQLI-CVE-2026-7591-001`, `AAK-CHATGPT-MCP-CVE-2026-7061-PIN-001`, `AAK-CREWAI-CVE-2026-2285-001`, `AAK-DOCSGPT-MCP-STDIO-MITM-001`, `AAK-DORIS-001`, `AAK-EXCEL-MCP-001`, `AAK-FLOWISE-001`, `AAK-GPTRESEARCHER-MCP-STDIO-MITM-001`, `AAK-HOOK-007`, `AAK-LANGCHAIN-PROMPT-LOADER-PATH-001`, `AAK-LITELLM-CVE-2026-30623-PIN-001`, `AAK-LLM-SQL-RCE-001`, `AAK-MCP-004`, `AAK-MCP-009`, `AAK-MCP-010`, `AAK-MCP-ARGV-TOCTOU-001`, `AAK-MCP-ATLASSIAN-CVE-2026-27825-001`, `AAK-MCP-ATLASSIAN-CVE-2026-27826-001`, `AAK-MCP-GATEWAY-REGISTRY-CVE-2026-14471-001`, `AAK-MCP-STDIO-CMD-INJ-001`, `AAK-MCP-STDIO-CMD-INJ-002`, `AAK-MCP-STDIO-CMD-INJ-003`, `AAK-MCP-STDIO-CMD-INJ-004`, `AAK-MCP-STDIO-LAUNCHER-INJECT-001`, `AAK-MCP-TOOL-UNSAFE-EVAL-001`, `AAK-MCP-TOOLGATE-ASYMMETRY-001`, `AAK-MCP-TUNNEL-001`, `AAK-MCPCALC-CVE-2026-44717-PIN-001`, `AAK-MCPWN-001`, `AAK-METIS-REFUSAL-REFEED-001`, `AAK-METIS-SCORING-SINK-001`, `AAK-SK-INMEMORY-VECTORSTORE-FILTER-CVE-2026-26030-PIN-001`, `AAK-STDIO-001`, `AAK-TAINT-005`, `AAK-TAINT-007`, `AAK-TAINT-008`, `AAK-TOXICFLOW-001` |
|
|
15
15
|
| **ASI03** | Memory Poisoning | Full | 56 | `AAK-A2A-005`, `AAK-A2A-006`, `AAK-CLAUDECODE-CVE-2026-40068-PIN-001`, `AAK-HOOK-002`, `AAK-HOOK-006`, `AAK-INDIA-PII-001`, `AAK-INDIA-PII-002`, `AAK-INDIA-PII-003`, `AAK-INDIA-PII-004`, `AAK-INDIA-PII-005`, `AAK-INDIA-PII-006`, `AAK-IPI-WILD-CORPUS-001`, `AAK-MCP-001`, `AAK-MCP-003`, `AAK-MCP-011`, `AAK-MCP-012`, `AAK-MCP-013`, `AAK-MCP-014`, `AAK-MCP-017`, `AAK-MCP-019`, `AAK-MCP-020`, `AAK-MCP-ATTEST-001`, `AAK-MCP-AUTH-PATHTRAVERSAL-001`, `AAK-MCP-CARD-002`, `AAK-MCP-ENV-PLACEHOLDER-EXFIL-001`, `AAK-MCP-HTTP-NOAUTH-SERVER-001`, `AAK-MCP-NOAUTH-DEFAULT`, `AAK-MCP-SAMPLING-001`, `AAK-MCP-STATELESS-001`, `AAK-MCP-TUNNEL-002`, `AAK-MCP-TUNNEL-003`, `AAK-OAUTH-001`, `AAK-OAUTH-002`, `AAK-OAUTH-003`, `AAK-OAUTH-004`, `AAK-OAUTH-005`, `AAK-OPENCLAW-PRIVESC-001`, `AAK-PRTITLE-IPI-001`, `AAK-SECRET-001`, `AAK-SECRET-002`, `AAK-SECRET-003`, `AAK-SECRET-004`, `AAK-SECRET-005`, `AAK-SECRET-006`, `AAK-SECRET-007`, `AAK-SECRET-008`, `AAK-SECRET-009`, `AAK-TASKS-001`, `AAK-TASKS-002`, `AAK-TASKS-003`, `AAK-TRANSPORT-001`, `AAK-TRANSPORT-002`, `AAK-TRANSPORT-004`, `AAK-TRUST-003`, `AAK-TRUST-004`, `AAK-TRUST-007` |
|
|
16
16
|
| **ASI04** | Identity & Privilege Abuse | Full | 38 | `AAK-AGENT-HARNESS-SHARED-STATE-001`, `AAK-AGENT-SHARED-RES-AUTHZ-001`, `AAK-AZURE-MCP-001`, `AAK-AZURE-MCP-NOAUTH-001`, `AAK-CREWAI-CVE-2026-2286-001`, `AAK-DNS-REBIND-001`, `AAK-EXCEL-MCP-001`, `AAK-LANGCHAIN-003`, `AAK-LANGCHAIN-SSRF-REDIR-001`, `AAK-LEGAL-001`, `AAK-LEGAL-002`, `AAK-LEGAL-003`, `AAK-LMDEPLOY-VL-SSRF-001`, `AAK-MARKETPLACE-001`, `AAK-MARKETPLACE-002`, `AAK-MARKETPLACE-003`, `AAK-MARKETPLACE-004`, `AAK-MCP-005`, `AAK-MCP-007`, `AAK-MCP-ATTEST-001`, `AAK-MCP-CARD-004`, `AAK-MCP-FHI-001`, `AAK-MCP-SANDBOX-SELFDISABLE-001`, `AAK-MCP-TOOLGATE-ASYMMETRY-001`, `AAK-NEO4J-001`, `AAK-OAUTH-3P-001`, `AAK-OAUTH-SCOPE-001`, `AAK-SEC-MD-001`, `AAK-SKILL-LIFECYCLE-ATTRIBUTION-001`, `AAK-SPLUNK-MCP-TOKEN-LEAK-001`, `AAK-SPLUNK-TOKLOG-001`, `AAK-SSRF-TOCTOU-001`, `AAK-SUPPLY-001`, `AAK-SUPPLY-002`, `AAK-SUPPLY-003`, `AAK-SUPPLY-004`, `AAK-SUPPLY-005`, `AAK-SUPPLY-006` |
|
|
17
17
|
| **ASI05** | Cascading Failures | Full | 33 | `AAK-CREWAI-CHAIN-2026-04-001`, `AAK-CREWAI-CVE-2026-2275-001`, `AAK-HEALTHCARE-AI-001`, `AAK-HEALTHCARE-AI-002`, `AAK-HEALTHCARE-AI-003`, `AAK-HEALTHCARE-AI-004`, `AAK-HEALTHCARE-AI-005`, `AAK-HOOK-001`, `AAK-HOOK-003`, `AAK-HOOK-004`, `AAK-HOOK-005`, `AAK-HOOK-008`, `AAK-HOOK-009`, `AAK-LLM-SQL-RCE-001`, `AAK-LOGINJ-001`, `AAK-MCP-002`, `AAK-MCP-006`, `AAK-MCP-008`, `AAK-MCP-016`, `AAK-MCP-018`, `AAK-MCP-STDIO-LAUNCHER-INJECT-001`, `AAK-MCP-TOOL-UNSAFE-EVAL-001`, `AAK-MCP-TUNNEL-001`, `AAK-MCPCALC-CVE-2026-44717-PIN-001`, `AAK-ROUTINE-001`, `AAK-ROUTINE-002`, `AAK-ROUTINE-003`, `AAK-SK-INMEMORY-VECTORSTORE-FILTER-CVE-2026-26030-PIN-001`, `AAK-TAINT-001`, `AAK-TAINT-002`, `AAK-TAINT-003`, `AAK-TAINT-004`, `AAK-TAINT-006` |
|
|
@@ -13,7 +13,7 @@ Every row is derived from the live AAK rule registry (`agent_audit_kit/rules/bui
|
|
|
13
13
|
| **MCP01:2025** | Token & Credential Mismanagement | Full | 48 | `AAK-A2A-005`, `AAK-A2A-008`, `AAK-A2A-011`, `AAK-AGENT-004`, `AAK-ANTHROPIC-SDK-001`, `AAK-ASTROMCP-SQLI-CVE-2026-7591-001`, `AAK-CHATGPT-MCP-CVE-2026-7061-PIN-001`, `AAK-DOCSGPT-MCP-STDIO-MITM-001`, `AAK-FLOWISE-001`, `AAK-GPTRESEARCHER-MCP-STDIO-MITM-001`, `AAK-HOOK-002`, `AAK-IPI-WILD-CORPUS-001`, `AAK-LITELLM-CVE-2026-30623-PIN-001`, `AAK-MCP-003`, `AAK-MCP-011`, `AAK-MCP-012`, `AAK-MCP-014`, `AAK-MCP-019`, `AAK-MCP-020`, `AAK-MCP-ATLASSIAN-CVE-2026-27825-001`, `AAK-MCP-ATLASSIAN-CVE-2026-27826-001`, `AAK-MCP-ENV-PLACEHOLDER-EXFIL-001`, `AAK-MCP-STDIO-CMD-INJ-001`, `AAK-MCP-STDIO-CMD-INJ-002`, `AAK-MCP-STDIO-CMD-INJ-003`, `AAK-MCP-STDIO-CMD-INJ-004`, `AAK-MCP-TOOL-UNSAFE-EVAL-001`, `AAK-MCPCALC-CVE-2026-44717-PIN-001`, `AAK-NEO4J-001`, `AAK-OAUTH-001`, `AAK-OAUTH-002`, `AAK-OAUTH-003`, `AAK-OAUTH-004`, `AAK-OAUTH-005`, `AAK-PRTITLE-IPI-001`, `AAK-SECRET-001`, `AAK-SECRET-002`, `AAK-SECRET-003`, `AAK-SECRET-004`, `AAK-SECRET-005`, `AAK-SECRET-006`, `AAK-SECRET-007`, `AAK-SECRET-008`, `AAK-SECRET-009`, `AAK-STDIO-001`, `AAK-TRANSPORT-004`, `AAK-TRUST-002`, `AAK-TRUST-005` |
|
|
14
14
|
| **MCP02:2025** | Context Over-Sharing / Tool Sprawl | Full | 12 | `AAK-A2A-001`, `AAK-A2A-009`, `AAK-A2A-010`, `AAK-AZURE-MCP-001`, `AAK-AZURE-MCP-NOAUTH-001`, `AAK-DNS-REBIND-001`, `AAK-EXCEL-MCP-001`, `AAK-HOOK-007`, `AAK-MCP-004`, `AAK-MCP-SAMPLING-001`, `AAK-MCP-TUNNEL-003`, `AAK-MCPWN-001` |
|
|
15
15
|
| **MCP03:2025** | Supply Chain Attacks | Full | 27 | `AAK-CLAUDE-WIN-001`, `AAK-INDIA-PII-001`, `AAK-INDIA-PII-002`, `AAK-INDIA-PII-003`, `AAK-INDIA-PII-004`, `AAK-INDIA-PII-005`, `AAK-INDIA-PII-006`, `AAK-LANGCHAIN-003`, `AAK-LEGAL-001`, `AAK-LEGAL-002`, `AAK-LEGAL-003`, `AAK-MARKETPLACE-001`, `AAK-MARKETPLACE-002`, `AAK-MARKETPLACE-003`, `AAK-MARKETPLACE-004`, `AAK-MCP-005`, `AAK-MCP-007`, `AAK-MCP-CARD-003`, `AAK-NEO4J-001`, `AAK-SEC-MD-001`, `AAK-SUPPLY-001`, `AAK-SUPPLY-002`, `AAK-SUPPLY-003`, `AAK-SUPPLY-004`, `AAK-SUPPLY-005`, `AAK-SUPPLY-006`, `AAK-WINDSURF-001` |
|
|
16
|
-
| **MCP04:2025** | Command Injection | Full |
|
|
16
|
+
| **MCP04:2025** | Command Injection | Full | 22 | `AAK-A2A-003`, `AAK-A2A-012`, `AAK-AGENT-001`, `AAK-AGENT-002`, `AAK-DORIS-001`, `AAK-HOOK-001`, `AAK-HOOK-005`, `AAK-HOOK-008`, `AAK-HOOK-009`, `AAK-LLM-SQL-RCE-001`, `AAK-LOGINJ-001`, `AAK-MCP-002`, `AAK-MCP-006`, `AAK-MCP-008`, `AAK-MCP-GATEWAY-REGISTRY-CVE-2026-14471-001`, `AAK-MCP-STDIO-LAUNCHER-INJECT-001`, `AAK-MCP-TUNNEL-001`, `AAK-TAINT-001`, `AAK-TAINT-002`, `AAK-TAINT-005`, `AAK-TAINT-006`, `AAK-TAINT-007` |
|
|
17
17
|
| **MCP05:2025** | Tool Poisoning / Trust Boundary | Full | 46 | `AAK-AGENT-003`, `AAK-AGENT-005`, `AAK-DNS-REBIND-002`, `AAK-DOCSGPT-MCP-STDIO-MITM-001`, `AAK-GHA-IMMUTABLE-001`, `AAK-GPTRESEARCHER-MCP-STDIO-MITM-001`, `AAK-HOOK-004`, `AAK-LANGCHAIN-SSRF-REDIR-001`, `AAK-LITELLM-CVE-2026-30623-PIN-001`, `AAK-LMDEPLOY-VL-SSRF-001`, `AAK-MCP-ARGV-TOCTOU-001`, `AAK-MCP-CARD-001`, `AAK-MCP-INSPECTOR-CVE-2026-23744-001`, `AAK-MCP-KONG-CVE-2026-13341-001`, `AAK-MCP-MARKETPLACE-CONFIG-FETCH-001`, `AAK-MCP-STDIO-CMD-INJ-001`, `AAK-MCP-STDIO-CMD-INJ-002`, `AAK-MCP-STDIO-CMD-INJ-003`, `AAK-MCP-STDIO-CMD-INJ-004`, `AAK-MCP-TOOL-UNSAFE-EVAL-001`, `AAK-MCPCALC-CVE-2026-44717-PIN-001`, `AAK-OAUTH-3P-001`, `AAK-OAUTH-SCOPE-001`, `AAK-POISON-001`, `AAK-POISON-002`, `AAK-POISON-003`, `AAK-POISON-004`, `AAK-POISON-005`, `AAK-POISON-006`, `AAK-RUGPULL-001`, `AAK-RUGPULL-002`, `AAK-RUGPULL-003`, `AAK-SKILL-001`, `AAK-SKILL-002`, `AAK-SKILL-003`, `AAK-SKILL-004`, `AAK-SKILL-UNTRUSTED-EXEC-PATH`, `AAK-SSRF-TOCTOU-001`, `AAK-TASKS-001`, `AAK-TASKS-002`, `AAK-TASKS-003`, `AAK-TRUST-001`, `AAK-TRUST-003`, `AAK-TRUST-004`, `AAK-TRUST-006`, `AAK-TRUST-007` |
|
|
18
18
|
| **MCP06:2025** | Privilege Escalation | Full | 13 | `AAK-AGENT-SHARED-RES-AUTHZ-001`, `AAK-HOOK-003`, `AAK-HOOK-006`, `AAK-MCP-010`, `AAK-MCP-016`, `AAK-MCP-018`, `AAK-MCP-FHI-001`, `AAK-MCP-SANDBOX-SELFDISABLE-001`, `AAK-MCP-TOOLGATE-ASYMMETRY-001`, `AAK-MCP-TUNNEL-001`, `AAK-TAINT-003`, `AAK-TAINT-008`, `AAK-TOXICFLOW-001` |
|
|
19
19
|
| **MCP07:2025** | Insufficient Authentication | Full | 25 | `AAK-A2A-002`, `AAK-A2A-004`, `AAK-A2A-006`, `AAK-A2A-007`, `AAK-DNS-REBIND-001`, `AAK-DNS-REBIND-002`, `AAK-MCP-001`, `AAK-MCP-011`, `AAK-MCP-017`, `AAK-MCP-ATTEST-001`, `AAK-MCP-AUTH-PATHTRAVERSAL-001`, `AAK-MCP-CARD-002`, `AAK-MCP-CARD-004`, `AAK-MCP-HTTP-NOAUTH-SERVER-001`, `AAK-MCP-NOAUTH-DEFAULT`, `AAK-MCP-SAMPLING-001`, `AAK-MCP-STATELESS-001`, `AAK-MCP-STATELESS-002`, `AAK-MCP-STATELESS-003`, `AAK-MCP-STATELESS-004`, `AAK-MCP-TUNNEL-002`, `AAK-MCP-TUNNEL-003`, `AAK-TRANSPORT-001`, `AAK-TRANSPORT-002`, `AAK-TRANSPORT-003` |
|
|
@@ -51,7 +51,7 @@ Add to `.pre-commit-config.yaml`:
|
|
|
51
51
|
```yaml
|
|
52
52
|
repos:
|
|
53
53
|
- repo: https://github.com/sattyamjjain/agent-audit-kit
|
|
54
|
-
rev: v0.3.
|
|
54
|
+
rev: v0.3.47
|
|
55
55
|
hooks:
|
|
56
56
|
- id: agent-audit-kit
|
|
57
57
|
```
|
|
@@ -59,7 +59,7 @@ repos:
|
|
|
59
59
|
## GitHub Action
|
|
60
60
|
|
|
61
61
|
```yaml
|
|
62
|
-
- uses: sattyamjjain/agent-audit-kit@v0.3.
|
|
62
|
+
- uses: sattyamjjain/agent-audit-kit@v0.3.47
|
|
63
63
|
with:
|
|
64
64
|
severity: low
|
|
65
65
|
fail-on: high
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
> evidence output** — SARIF + OWASP MCP Top 10 + EU AI Act Article 15
|
|
24
24
|
> + SOC 2 + ISO 27001 / 42001 + HIPAA + NIST AI RMF in one scan.
|
|
25
25
|
>
|
|
26
|
-
> agent-audit-kit is that.
|
|
26
|
+
> agent-audit-kit is that. 232 deterministic rules. Zero cloud
|
|
27
27
|
> dependencies, no auth required. MIT.
|
|
28
28
|
>
|
|
29
29
|
> The leaderboard: we run the scanner weekly against 500 public MCP
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
- **"Does it use an LLM?"**
|
|
45
45
|
→ No. The moat is deterministic rules. We keep an optional
|
|
46
46
|
`--llm-scan` flag for semantic tool-description checks, but the core
|
|
47
|
-
|
|
47
|
+
232 rules are regex + AST patterns that run in <50 ms on a normal
|
|
48
48
|
project.
|
|
49
49
|
- **"What's your false-positive rate?"**
|
|
50
50
|
→ We scan 500 public MCP servers weekly. Ground-truth is unknown
|
|
@@ -19,7 +19,7 @@ the #1 channel for this repo.
|
|
|
19
19
|
> that default to allow-all, path traversal in resource handlers,
|
|
20
20
|
> SSRF in outbound-fetch tools, tokens in query params.
|
|
21
21
|
>
|
|
22
|
-
> We built agent-audit-kit, an OSS scanner:
|
|
22
|
+
> We built agent-audit-kit, an OSS scanner: 232 deterministic rules,
|
|
23
23
|
> SARIF + OWASP MCP Top 10 + compliance report for EU AI Act /
|
|
24
24
|
> SOC 2 / ISO 27001 / HIPAA / NIST AI RMF. No auth, no cloud. MIT.
|
|
25
25
|
>
|
|
@@ -54,7 +54,7 @@ the #1 channel for this repo.
|
|
|
54
54
|
> `pip install agent-audit-kit && agent-audit-kit scan .`
|
|
55
55
|
> Finds misconfigured hooks (CVE-2025-59536 was the catalyst), MCP
|
|
56
56
|
> servers without auth, skill poisoning in SKILL.md files, supply-chain
|
|
57
|
-
> risks in marketplace manifests, missing OAuth 2.1 PKCE.
|
|
57
|
+
> risks in marketplace manifests, missing OAuth 2.1 PKCE. 232 rules.
|
|
58
58
|
> Outputs SARIF for GitHub Security tab.
|
|
59
59
|
>
|
|
60
60
|
> Repo: https://github.com/sattyamjjain/agent-audit-kit
|
|
@@ -78,7 +78,7 @@ the #1 channel for this repo.
|
|
|
78
78
|
> OWASP MCP Top 10 reference scanner — 10/10 coverage, SARIF, EU AI Act evidence
|
|
79
79
|
|
|
80
80
|
**Body:** developer-audience, technical:
|
|
81
|
-
> If you maintain an MCP server, this is the linter.
|
|
81
|
+
> If you maintain an MCP server, this is the linter. 232 rules mapped
|
|
82
82
|
> to OWASP MCP Top 10 and OWASP Agentic 2026 (ASI01–ASI10). GitHub
|
|
83
83
|
> Action that surfaces findings in the Security tab via SARIF. Docker
|
|
84
84
|
> image at ghcr.io. VS Code extension with on-save diagnostics.
|
|
@@ -22,7 +22,7 @@ Post same Tuesday as HN, ~1h after HN submission.
|
|
|
22
22
|
|
|
23
23
|
> agent-audit-kit — OSS static scanner for MCP-connected AI agents.
|
|
24
24
|
>
|
|
25
|
-
>
|
|
25
|
+
> 232 deterministic rules. SARIF → GitHub Security tab.
|
|
26
26
|
> Compliance evidence for EU AI Act Article 15, SOC 2, ISO 27001/42001,
|
|
27
27
|
> HIPAA, NIST AI RMF.
|
|
28
28
|
>
|
|
@@ -92,7 +92,7 @@ Post same Tuesday as HN, ~1h after HN submission.
|
|
|
92
92
|
> • Repo: github.com/sattyamjjain/agent-audit-kit
|
|
93
93
|
> • Leaderboard: mcp-security-index.com
|
|
94
94
|
> • VS Code Marketplace: agent-audit-kit
|
|
95
|
-
> • GitHub Action: uses: sattyamjjain/agent-audit-kit@v0.3.
|
|
95
|
+
> • GitHub Action: uses: sattyamjjain/agent-audit-kit@v0.3.47
|
|
96
96
|
>
|
|
97
97
|
> MIT. No strings.
|
|
98
98
|
|