agent-audit-kit 0.3.76__tar.gz → 0.3.78__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.
Potentially problematic release.
This version of agent-audit-kit might be problematic. Click here for more details.
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/workflows/codeql.yml +3 -3
- agent_audit_kit-0.3.78/.github/workflows/link-check.yml +70 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/workflows/scorecard.yml +1 -1
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/CHANGELOG.cves.md +18 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/CHANGELOG.md +28 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/CLAUDE.md +4 -4
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/CLAUDE_PROMPT.md +3 -3
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/PKG-INFO +24 -16
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/README.md +17 -14
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/action.yml +1 -1
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/__init__.py +3 -3
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/engine.py +1 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/rules/builtin.py +190 -11
- agent_audit_kit-0.3.78/agent_audit_kit/scanners/_ssrf_reach.py +247 -0
- agent_audit_kit-0.3.78/agent_audit_kit/scanners/_ts_stdio_taint.py +217 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_cve_pins_2026_07.py +29 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_stdio_params.py +39 -3
- agent_audit_kit-0.3.78/agent_audit_kit/scanners/policy_truncation.py +195 -0
- agent_audit_kit-0.3.78/agent_audit_kit/scanners/ssrf_patterns.py +154 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/supply_chain.py +109 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/determinism/RESULTS.md +2 -2
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/STATE-OF-MCP-SECURITY-2026.md +1 -1
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/ci-cd.md +2 -2
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/comparison-gitlab-agentic-sast.md +1 -1
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/comparison.md +1 -1
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/coverage/owasp-agentic-top10.md +4 -4
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/coverage/owasp-mcp-top10.md +3 -3
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/coverage.json +144 -26
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/crosswalk/nsa-csi-owasp-agentic.md +1 -1
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/cve-latency.md +17 -3
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/data/cve-published.json +6 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/getting-started.md +2 -2
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/index.md +1 -1
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/launch/CHECKLIST.md +1 -1
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/launch/hn.md +3 -3
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/launch/press.md +2 -2
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/launch/reddit.md +5 -5
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/launch/x-thread.md +4 -4
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/owasp-agentic-coverage.md +4 -4
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/presets/mcp-ox-2026-04.md +2 -2
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/roadmap/ox-mcp-2026-05-01-batch.md +1 -1
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/AAK-MCP-STDIO-CMD-INJ-001.md +1 -1
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/AAK-SPLUNK-MCP-TOKEN-LEAK-001.md +1 -1
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules.md +3 -3
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/launch/awesome-list-prs/awesome-opensource-security.md +2 -2
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/launch/awesome-list-prs/awesome-security.md +2 -2
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/launch/owasp-outreach.md +3 -3
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/public/owasp-agentic-coverage.json +57 -7
- agent_audit_kit-0.3.78/pyproject.toml +107 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/research/state-of-mcp-2026/blackhat-arsenal-abstract.md +2 -2
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/rules.json +133 -2
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scanners.json +5 -1
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/cve_latency.py +25 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/cve_watcher.py +56 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/site/coverage/index.html +2 -2
- agent_audit_kit-0.3.78/tests/fixtures/cves/cve-2026-30624-agent-zero/negative/package.json +9 -0
- agent_audit_kit-0.3.78/tests/fixtures/cves/cve-2026-30624-agent-zero/negative/requirements.txt +2 -0
- agent_audit_kit-0.3.78/tests/fixtures/cves/cve-2026-30624-agent-zero/vulnerable/package.json +9 -0
- agent_audit_kit-0.3.78/tests/fixtures/cves/cve-2026-30624-agent-zero/vulnerable/requirements.txt +3 -0
- agent_audit_kit-0.3.78/tests/fixtures/cves/cve-2026-49986-neuro-cortex/negative/requirements.txt +2 -0
- agent_audit_kit-0.3.78/tests/fixtures/cves/cve-2026-49986-neuro-cortex/vulnerable/requirements.txt +4 -0
- agent_audit_kit-0.3.78/tests/fixtures/cves/cve-2026-50027-mcp-memory-service/negative/requirements.txt +2 -0
- agent_audit_kit-0.3.78/tests/fixtures/cves/cve-2026-50027-mcp-memory-service/vulnerable/requirements.txt +3 -0
- agent_audit_kit-0.3.78/tests/fixtures/cves/cve-2026-73614-policy-truncation/negative/hook_bridge.js +27 -0
- agent_audit_kit-0.3.78/tests/fixtures/cves/cve-2026-73614-policy-truncation/vulnerable/hook_bridge.js +27 -0
- agent_audit_kit-0.3.78/tests/fixtures/cves/cve-2026-73846-ckan-mcp/negative/package.json +9 -0
- agent_audit_kit-0.3.78/tests/fixtures/cves/cve-2026-73846-ckan-mcp/vulnerable/package.json +9 -0
- agent_audit_kit-0.3.78/tests/fixtures/cves/ox-mcp-stdio-class/unconnected_ts.ts +26 -0
- agent_audit_kit-0.3.78/tests/test_agent_zero_pin.py +137 -0
- agent_audit_kit-0.3.78/tests/test_console_scripts.py +83 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_latency.py +40 -5
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_watcher_dedup.py +6 -1
- agent_audit_kit-0.3.78/tests/test_cve_watcher_relevance.py +116 -0
- agent_audit_kit-0.3.78/tests/test_docs_links.py +61 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_cve_pins_2026_07.py +86 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_phase5.py +1 -1
- agent_audit_kit-0.3.78/tests/test_policy_truncation.py +183 -0
- agent_audit_kit-0.3.78/tests/test_ssrf_reachability.py +174 -0
- agent_audit_kit-0.3.78/tests/test_transport_flip_remediation.py +121 -0
- agent_audit_kit-0.3.78/tests/test_ts_stdio_taint.py +211 -0
- agent_audit_kit-0.3.76/.github/workflows/link-check.yml +0 -47
- agent_audit_kit-0.3.76/agent_audit_kit/scanners/ssrf_patterns.py +0 -153
- agent_audit_kit-0.3.76/pyproject.toml +0 -70
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.agent-audit-kit.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.claude/auto-memory/config.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.editorconfig +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/FUNDING.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/dependabot.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/repo-metadata.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/workflows/badge-ox-coverage.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/workflows/ci.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/workflows/coverage-page.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/workflows/cve-watcher.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/workflows/docker-nightly.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/workflows/mcp-security-index.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/workflows/release.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/workflows/self-scan.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/workflows/sync-repo-metadata.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/workflows/sync-rule-count.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.gitignore +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.pre-commit-config.yaml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.pre-commit-hooks.yaml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/CODE_OF_CONDUCT.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/CONTRIBUTING.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/DEEP_ANALYSIS.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/Dockerfile +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/LICENSE +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/Makefile +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/ROADMAP_2026.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/SECURITY.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/advisories.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/autofix/__init__.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/autofix/langgraph_toolnode.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/bundle.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/checks/__init__.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/checks/economic_drift.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/checks/openclaw.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/cli.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/cli_modules/__init__.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/cli_modules/rule_lint.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/corpus/__init__.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/corpus/manifest.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/coverage.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/data/aivss-v08-defaults.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/data/composition_boundaries.yaml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/data/fhi_universal_suffixes.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/data/ipi_wild_payloads_2026_04.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/data/ox-cve-manifest.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/data/prisma-airs-aak-map.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/data/prisma-airs-catalog.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/data/toxic_flow_pairs.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/data/vuln_db.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/diff.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/discovery.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/feeds/__init__.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/fix.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/ide/__init__.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/ide/lsp_diag.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/integrations/__init__.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/integrations/notify.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/llm_scan.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/models.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/output/__init__.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/output/aicm.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/output/compliance.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/output/console.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/output/coverage_map.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/output/crosswalk.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/output/json_report.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/output/owasp_report.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/output/pdf_report.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/output/pr_summary.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/output/sarif.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/output/sbom.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/parity/__init__.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/pinning.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/presets/__init__.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/presets/mcp-2026-07-28.yaml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/presets/mcp-ox-2026-04.yaml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/proxy/__init__.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/proxy/interceptor.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/remediation/__init__.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/remediation/engine.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/rules/__init__.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/sanitizers/__init__.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/sanitizers/crewai.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/sanitizers/deepseek.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/sarif/__init__.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/sarif/diff.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/__init__.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/_helpers.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/a2a_protocol.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/agent_config.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/agent_harness_shared_state.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/agent_trust_surface.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/argv_toctou.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/crewai_rce_chain.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/deepseek_v4_tool_injection.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/dns_rebind.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/docsgpt_transport_flip.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/eu_ai_act_art15_locale.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/gha_hardening.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/gpt_researcher_transport_flip.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/healthcare_ai.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/hook_injection.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/hook_rce.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/ide_task_rce.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/india_pii.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/ipi_wild_corpus.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/langchain_prompt_loader.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/langchain_vuln.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/langgraph_toolnode.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/legal_compliance.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/llm_sql_rce.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/log_injection.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/log_token_leak.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/marketplace_manifest.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_apps_ui.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_atlassian.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_auth_pathtraversal.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_auth_patterns.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_config.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_deprecated_features.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_env_placeholder_exfil.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_fhi.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_http_noauth_server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_inspector_cve.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_marketplace_fetch.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_middleware.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_noauth_default.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_routing_desync.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_sampling_capability.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_sdk_hardening.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_server_auth.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_server_card.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_ssrf_toolarg.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_stateless_migration.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_stdio_launcher.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_tasks.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_tool_unsafe_eval.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_toolgate_asymmetry.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_tunnel.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/metis_pomdp.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/neo4j_cve.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/oauth_misconfig.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/oauth_surface.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/openapi_smells.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/openclaw_privesc.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/pin_drift.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/project_deal_drift.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/prtitle_ipi.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/routines.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/rust_pattern_scan.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/rust_scan.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/sandbox_self_disable.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/secret_exposure.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/session_splice.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/shared_resource_authz.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/skill_composition.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/skill_lifecycle_attribution.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/skill_poisoning.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/skill_untrusted_exec_path.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/social_agent_hijack.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/splunk_mcp_config.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/ssrf_redirect.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/ssrf_toctou.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/stainless_lineage.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/state_privacy.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/stdio_injection.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/taint_analysis.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/tool_poisoning.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/toxic_flow.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/transport_limits.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/transport_security.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/trust_boundary.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/typescript_pattern_scan.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/typescript_scan.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/ufo_mobile_mcp.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scoring/__init__.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scoring/aivss.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scoring/aivss_schema.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/sessions/__init__.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/sessions/adapters.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/translators/__init__.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/translators/pipelock.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/translators/prisma_airs.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/verification.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/vuln_db.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/watch.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/README.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/crawler.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/determinism/run.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/false_positive/RESULTS.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/false_positive/corpus.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/false_positive/results.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/false_positive/run.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/false_positive/stats.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/false_positive/triage.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/index_builder.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/results-2026-06-13.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/run_benchmark.sh +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/sample_configs/sample_01_clean.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/sample_configs/sample_02_secrets.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/sample_configs/sample_03_no_auth.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/sample_configs/sample_04_shell_injection.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/sample_configs/sample_05_mixed.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/sources.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/ci/gitlab/agent-audit-kit.gitlab-ci.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/DISTRIBUTION-CHECKLIST.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/RELEASING.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/azure-pipelines.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/benchmarks/third-party-grading.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/changelog/archive/CHANGELOG.cves.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/changelog/archive/CHANGELOG.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/circleci.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/comparisons.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/disclosure-policy.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/gitlab-ci.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/metrics.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/notes/adjudicator-pattern.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/owasp-mapping.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/presets/mcp-2026-07-28.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/reports/mcp-2026-07-28-readiness.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/research/mcp-security-baseline-v1.0.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/research-log.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rule-schema.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/AAK-AZURE-MCP-001.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/AAK-AZURE-MCP-NOAUTH-001.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/AAK-LANGCHAIN-SSRF-REDIR-001.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/AAK-LMDEPLOY-VL-SSRF-001.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/AAK-MCP-AUTH-PATHTRAVERSAL-001.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/AAK-MCP-MARKETPLACE-CONFIG-FETCH-001.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/AAK-MCP-STDIO-CMD-INJ-002.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/AAK-MCP-STDIO-CMD-INJ-003.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/AAK-MCP-STDIO-CMD-INJ-004.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/AAK-SSRF-TOCTOU-001.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/AAK-TOXICFLOW-001.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/index.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/skill-composition.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/session-transcripts.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/editors/zed/README.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/editors/zed/extension.toml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/entrypoint.sh +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/README.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/case-studies/damn-vulnerable-mcp/README.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/case-studies/damn-vulnerable-mcp/configs/dvmcp-inspired.mcp.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/case-studies/damn-vulnerable-mcp/configs/dvmcp-settings.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/case-studies/damn-vulnerable-mcp/scan-results.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/case-studies/damn-vulnerable-mcp/scan-results.sarif +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/ci-integration/README.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/ci-integration/docker-one-liner.sh +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/ci-integration/github-actions-sarif.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/ci-integration/gitlab-ci-scan.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/ci-integration/pre-commit-config.yaml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/run-all-examples.sh +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/01-no-auth-remote/.mcp.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/01-no-auth-remote/expected-findings.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/02-shell-injection/.mcp.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/02-shell-injection/expected-findings.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/03-hardcoded-secrets/.gitignore +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/03-hardcoded-secrets/.mcp.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/03-hardcoded-secrets/expected-findings.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/04-hook-exfiltration/.claude/settings.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/04-hook-exfiltration/expected-findings.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/05-trust-boundary-violations/.claude/settings.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/05-trust-boundary-violations/.mcp.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/05-trust-boundary-violations/expected-findings.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/06-tool-poisoning/.mcp.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/06-tool-poisoning/expected-findings.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/07-tainted-tool-function/expected-findings.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/07-tainted-tool-function/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/08-transport-insecurity/.mcp.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/08-transport-insecurity/expected-findings.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/09-a2a-insecure-agent/agent-card.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/09-a2a-insecure-agent/expected-findings.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/10-supply-chain-risks/.mcp.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/10-supply-chain-risks/expected-findings.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/10-supply-chain-risks/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/11-legal-compliance/expected-findings.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/11-legal-compliance/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/11-legal-compliance/subproject/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/README.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/launch/MARKET-RESEARCH-2026-04-12.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/launch/blog-50-mcp-servers.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/launch/demo.cast +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/launch/state-of-mcp-security-2026.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/mkdocs.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/openai-cybersecurity-grant-agent-audit-kit.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/openai-cybersecurity-grant-agent-audit-kit.pdf +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/public/badges/ox-coverage.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/public/corpora/manifest.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/releases/v0.3.10.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/releases/v0.3.5.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/releases/v0.3.6.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/releases/v0.3.7.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/releases/v0.3.8.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/releases/v0.3.9.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/requirements-lock.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/research/state-of-mcp-2026/.gitignore +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/research/state-of-mcp-2026/PREVALENCE.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/research/state-of-mcp-2026/REPORT.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/research/state-of-mcp-2026/baseline/mcp-security-baseline-v1.0-2026-07-27.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/research/state-of-mcp-2026/baseline/mcp-security-baseline-v1.0-2026-07-27.json.sha256 +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/research/state-of-mcp-2026/baseline.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/research/state-of-mcp-2026/blackhat-briefings-abstract.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/research/state-of-mcp-2026/corpus/registry-manifest.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/research/state-of-mcp-2026/fetch_registry.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/research/state-of-mcp-2026/results.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/research/state-of-mcp-2026/run_report.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/research/state-of-mcp-2026/state-of-mcp-security-2026.pdf +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/schema/ox-cve-manifest.schema.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/backfill_cve_property.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/build_coverage_page.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/check_counts.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/close_duplicate_cve_issues.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/gen_coverage.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/gen_owasp_coverage.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/generate_lockfile.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/install-pre-commit.sh +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/mcp_2026_07_28_readiness.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/render_repo_metadata.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/sync_repo_metadata.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/sync_rule_count.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/sync_scanner_count.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/watch_csa_mcp_baseline.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/site/coverage/ox.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/site/coverage/prisma-airs.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/conftest.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/LICENSES.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/agent_trust/clean/.claude/settings.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/agent_trust/clean/.github/workflows/ci.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/agent_trust/clean/GEMINI.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/agent_trust/gemini_shell/GEMINI.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/agent_trust/headless_ci/.github/workflows/agent.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/agent_trust/headless_ci/.mcp.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/agent_trust/pwn_request/.github/workflows/review.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/agent_trust/settings_bypass/.claude/settings.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/clean_mcp.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/clean_settings.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/crewai/safe/full_chain.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/crewai/vulnerable/full_chain.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/a2a_2026/vulnerable_card.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/comment-and-control-2026-04-25/patched/review_agent.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/comment-and-control-2026-04-25/vulnerable/review_agent.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2025-65720-gpt-researcher/config-safe-rejected/.mcp.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2025-65720-gpt-researcher/config-unsafe/.mcp.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2025-65720-gpt-researcher/pin-vulnerable-git/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2025-65720-gpt-researcher/pin-vulnerable-pypi/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2025-66335/patched/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2025-66335/vulnerable/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-19337-mcp-google-search/negative/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-19337-mcp-google-search/vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-19516-mcp-grafana/patched/.mcp.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-19516-mcp-grafana/vulnerable/.mcp.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-20205/patched-splunk-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-20205/redacted-token-log/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-20205/vulnerable-splunk-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-20205/vulnerable-token-log/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-20205-config/patched-yaml/splunk-mcp.yaml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-20205-config/vulnerable-inputs/inputs.conf +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-20205-config/vulnerable-yaml/splunk-mcp.yaml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-23744-mcp-inspector/vendored-fork/vendor/mcpjam-inspector/server.ts +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-26015-docsgpt/config-safe-no-override/.mcp.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-26015-docsgpt/config-safe-rejected/.mcp.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-26015-docsgpt/config-unsafe/.mcp.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-26015-docsgpt/pin-safe/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-26015-docsgpt/pin-vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-26015-docsgpt/pin-vulnerable-git/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-26030-semantic-kernel/pin-safe/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-26030-semantic-kernel/pin-safe-floor/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-26030-semantic-kernel/pin-vulnerable/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-27825-atlassian/patched-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-27825-atlassian/vulnerable/agent.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-30615/patched/py_argv_allowlist.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-30615/vulnerable/py_os_system_stdin.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-30615/vulnerable/py_subprocess_shell.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-30615/vulnerable/ts_execa_shell.ts +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-30623-litellm/patched/requirements-floor.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-30623-litellm/patched/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-30623-litellm/vulnerable/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-32211/patched-with-auth/.mcp.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-32211/vulnerable-no-auth/.mcp.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-32211-server/pyproject.toml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-32211-server/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-33032/patched/router.go +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-33032/vulnerable/router.go +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-33032/vulnerable/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-33032/vulnerable/server.ts +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-33626/patched-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-33626/vulnerable/pipeline.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-39313/length-capped/http.ts +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-39313/patched/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-39313/vulnerable/http.ts +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-39313/vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-40068-claudecode/pin-safe/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-40068-claudecode/pin-vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-40933/vulnerable/flow.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-41481/patched-no-redirect/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-41481/patched-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-41481/vulnerable-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-41481/vulnerable-redirect/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-41488/patched-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-41488/patched-pinned/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-41488/vulnerable-pin/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-41488/vulnerable-toctou/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-44717-mcp-calculate-server/pin-safe/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-44717-mcp-calculate-server/pin-safe-floor/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-44717-mcp-calculate-server/pin-vulnerable/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-49856-jshook/negative/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-49856-jshook/vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-49857-auth-fetch-mcp/negative/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-49857-auth-fetch-mcp/vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-7061-chatgpt-mcp/safe/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-7061-chatgpt-mcp/vulnerable-git/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-7061-chatgpt-mcp/vulnerable-shorthand/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-72768-n8n/negative/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-72768-n8n/vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-73222-claude-code-templates/negative/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-73222-claude-code-templates/vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-73296-ufo/negative/mobile_mcp_server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-73296-ufo/negative/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-73296-ufo/vulnerable/mobile_mcp_server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-73296-ufo/vulnerable/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-73498-mcp-atlassian/negative/attachments.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-73498-mcp-atlassian/negative/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-73498-mcp-atlassian/vulnerable/attachments.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-73498-mcp-atlassian/vulnerable/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-7591-astro-mcp/source-safe/no_import.ts +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-7591-astro-mcp/source-safe/parametrized.ts +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-7591-astro-mcp/source-safe/tagged_template.ts +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-7591-astro-mcp/source-unsafe/index.ts +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-7591-astro-mcp/vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/dns-rebind-sdk-class/apollo-patched/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/dns-rebind-sdk-class/apollo-vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/dns-rebind-sdk-class/java-patched/pom.xml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/dns-rebind-sdk-class/java-vulnerable/pom.xml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/dns-rebind-sdk-class/python-patched/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/dns-rebind-sdk-class/python-pattern-guarded/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/dns-rebind-sdk-class/python-pattern-guarded/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/dns-rebind-sdk-class/python-pattern-unguarded/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/dns-rebind-sdk-class/python-pattern-unguarded/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/dns-rebind-sdk-class/python-vulnerable/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/healthcare_ai/safe_skill.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/healthcare_ai/vulnerable_skill.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/hook_rce/safe_settings.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/hook_rce/vulnerable_settings.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/india_pii/safe.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/india_pii/vulnerable.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/langchain/safe_requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/langchain/vulnerable_prompt.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/langchain/vulnerable_requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/marketplace/safe.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/marketplace/vulnerable.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/mcp_auth/safe_server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/mcp_auth/vulnerable_server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/oauth/safe.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/oauth/vulnerable.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/ox-mcp-stdio-class/patched_java.java +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/ox-mcp-stdio-class/patched_py.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/ox-mcp-stdio-class/patched_rust.rs +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/ox-mcp-stdio-class/patched_ts.ts +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/ox-mcp-stdio-class/vulnerable_java.java +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/ox-mcp-stdio-class/vulnerable_py.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/ox-mcp-stdio-class/vulnerable_rust.rs +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/ox-mcp-stdio-class/vulnerable_ts.ts +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/routines/safe.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/routines/vulnerable.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/skills/safe.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/skills/vulnerable.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/ssrf/safe.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/ssrf/vulnerable.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/state_privacy/safe_privacy.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/state_privacy/vulnerable_privacy.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/tasks/safe.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/tasks/vulnerable.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/deepseek/safe/agent.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/deepseek/vulnerable/agent.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/env_with_secrets +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/eu_ai_act_art15_locale/documented_risk/.agent-audit-kit.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/eu_ai_act_art15_locale/documented_risk/agent.yaml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/eu_ai_act_art15_locale/multilingual_en_only/agent.yaml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/eu_ai_act_art15_locale/multilingual_en_only/evals/welcome.en.yaml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/eu_ai_act_art15_locale/multilingual_internal_only/agent.yaml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/eu_ai_act_art15_locale/multilingual_with_coverage/agent.yaml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/eu_ai_act_art15_locale/multilingual_with_coverage/evals/welcome.de.yaml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/eu_ai_act_art15_locale/multilingual_with_coverage/evals/welcome.en.yaml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/eu_ai_act_art15_locale/multilingual_with_coverage/evals/welcome.fr.yaml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/eu_ai_act_art15_locale/single_locale/agent.yaml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/harness_shared_state/safe_multi_agent.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/harness_shared_state/unsafe_multi_agent.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/ide_task_rce/clean/.vscode/tasks.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/ide_task_rce/jsonc/.vscode/tasks.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/ide_task_rce/worm/.vscode/launch.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/ide_task_rce/worm/.vscode/tasks.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ipi-wild-2026-04-24/poisoned_template.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/mcp-fhi/clean/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/mcp-fhi/vulnerable/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-2026-04-15/documented-risk/.agent-audit-kit.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-2026-04-15/documented-risk/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-2026-04-15/documented-risk/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-2026-04-15/python/sanitized/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-2026-04-15/python/sanitized/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-2026-04-15/python/vulnerable/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-2026-04-15/python/vulnerable/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-2026-04-15/typescript/sanitized/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-2026-04-15/typescript/sanitized/server.ts +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-2026-04-15/typescript/vulnerable/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-2026-04-15/typescript/vulnerable/server.ts +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-marketplace-fetch/patched.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-marketplace-fetch/vulnerable.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-marketplace-fetch/vulnerable.ts +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/vercel-2026-04-19/app.yaml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/kong_konnect/.mcp.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/langchain_prompt_loader/constant_safe.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/langchain_prompt_loader/user_path_unsafe.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/langchain_prompt_loader/validated_safe.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/langgraph/safe/graph.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/langgraph/vulnerable/graph.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_deprecated/clean_migrated/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_deprecated/config_all/.mcp.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_deprecated/logging_py/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_deprecated/roots_py/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_deprecated/sampling_py/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_deprecated/stdlib_logging_fp/util.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_sampling/clean_python/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_sampling/clean_python/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_sampling/config_clean/.mcp.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_sampling/config_vulnerable/.mcp.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_sampling/documented_risk/.agent-audit-kit.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_sampling/documented_risk/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_sampling/documented_risk/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_sampling/vulnerable_python/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_sampling/vulnerable_python/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_sampling/vulnerable_typescript/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_sampling/vulnerable_typescript/server.ts +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_ssrf/safe_tool.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_ssrf/vulnerable_tool.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/clean_py/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/clean_py/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/documented_risk/.agent-audit-kit.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/documented_risk/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/documented_risk/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/vulnerable_001_py/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/vulnerable_001_py/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/vulnerable_001_ts/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/vulnerable_001_ts/server.ts +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/vulnerable_002_py/client.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/vulnerable_002_py/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/vulnerable_003_k8s/service.yaml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/vulnerable_003_nginx/nginx.conf +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/vulnerable_003_store_py/handlers.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/vulnerable_003_store_py/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/vulnerable_004_client/client.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/vulnerable_004_client/requirements.txt +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_tool_unsafe_eval/eval_safe.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_tool_unsafe_eval/eval_unsafe.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_tool_unsafe_eval/no_tool_decorator.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/metis_pomdp/refusal_refeed_safe.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/metis_pomdp/refusal_refeed_unsafe.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/metis_pomdp/scoring_sink_unsafe.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/nvd/nvd_2_0_mcp_sample.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/openapi_smells/clean.openapi.yaml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/openapi_smells/smelly.openapi.yaml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/openclaw/role_default_admin_unsafe.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/openclaw/role_explicit_safe.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/package_with_risks.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/pipelock/policy_invalid.yaml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/pipelock/policy_minimal.yaml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/pipelock/policy_with_parity.yaml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/project_deal/safe/pricer.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/project_deal/vulnerable/pricer.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/server_cards/clean.server-card.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/server_cards/poisoned.server-card.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/session_splice/benign/benign.session.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/session_splice/path/path_splice.session.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/session_splice/single/single_call_full.session.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/session_splice/url/url_splice.session.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/sessions/langgraph-checkpoint.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/sessions/openai-agents-trace.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/sessions/raw-calls.jsonl +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/skill_composition/benign/skills/code-formatter/SKILL.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/skill_composition/benign/skills/doc-writer/SKILL.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/skill_composition/benign/skills/project-reader/SKILL.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/skill_composition/collude/skills/credential-loader/SKILL.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/skill_composition/collude/skills/metrics-reporter/SKILL.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/skill_composition/collude/skills/project-reader/SKILL.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/skill_lifecycle/safe_skill.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/skill_lifecycle/unsafe_skill.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/social_agents/tiktok_human_in_loop.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/social_agents/tiktok_unsafe.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/stainless_lineage/config_root/stainless.yml +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/stainless_lineage/generated_python_sdk/client.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/stainless_lineage/generated_typescript_sdk/client.ts +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/stainless_lineage/handwritten/server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/vulnerable_hooks.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/vulnerable_mcp.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/vulnerable_settings.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_a2a_2026.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_a2a_protocol.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_action.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_agent_config.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_agent_trust_surface.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_aicm.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_anthropic_sdk_hardening.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_argv_toctou.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cli.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_compliance_output.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_compliance_v2.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_corpus_n_single_source.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_corpus_target_consistency.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_coverage_map.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_coverage_tables.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_crewai_nvd_and_evasion.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_crosswalk.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_csa_baseline_watcher.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2025_66335.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2025_66414_python_sdk.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2026_20205_config.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2026_20205_splunk.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2026_32211.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2026_32211_server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2026_33626.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2026_35568_java.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2026_35577_apollo.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2026_39313.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2026_40576_excel.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2026_40608_next_ai_draw.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2026_41481.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2026_41488.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_fix_and_watch_and_advisories.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cves_2026.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cyclonedx_aibom.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_determinism_benchmark.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_diff.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_discovery.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_engine.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_engine_ignore_paths.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_eu_ai_act_art15_locale.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_examples.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_false_positive_harness.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_fix.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_flowise.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_gha_immutable.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_healthcare_ai_and_state_privacy.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_hook_injection.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_ide_task_rce.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_index_builder.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_india_pii.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_integrations_notify.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_kong_konnect_cve_2026_13341.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_legal_compliance.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_llm_scan.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_llm_scan_mod.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_llm_sql_rce.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_marketplace_manifest.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_marketplace_sources.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_apps_ui.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_atlassian_cve_2026_73498.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_attestation.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_auth_pathtraversal.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_config.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_deprecated_features.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_env_placeholder_exfil.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_gateway_registry_cve_2026_14471.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_http_noauth_server.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_marketplace_fetch.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_noauth_default.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_routing_desync.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_sampling_capability.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_security_baseline.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_server_card.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_ssrf_toolarg.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_stateless_migration.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_stdio_cmd_inj_java.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_stdio_cmd_inj_python.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_stdio_cmd_inj_rust.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_stdio_cmd_inj_typescript.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_stdio_launcher.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_toolgate_asymmetry.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_tunnel.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcpwn.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_no_placeholder_cves.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_nsa_mcp_csi.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_oauth_resource_indicators.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_oauth_surface.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_owasp_agentic_coverage.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_owasp_public_json.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_owasp_report.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_owasp_report_output.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_parity_region_drift.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_phase3.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_pin_drift.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_pinning.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_pinning_mod.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_pr_summary.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_preset_mcp_2026_07_28.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_preset_mcp_ox_2026_04.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_proxy.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_repo_metadata_matches_code.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_repo_metadata_sync.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_rule_count_sync.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_sandbox_self_disable.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_sarif_fingerprints.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_sarif_github_upload.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_sarif_output.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_scanner_manifest.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_scoring.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_secret_exposure.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_serena_cve_2026_49471.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_session_adapters.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_session_splice.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_shared_resource_authz.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_skill_composition.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_skill_poisoning.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_skill_untrusted_exec_path.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_state_of_mcp_report.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_stdio_injection.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_supply_chain.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_taint_analysis.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_tool_poisoning.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_toxic_flow.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_transport_security.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_trust_boundary.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_typescript_pattern_scan_sql.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_ufo_mobile_mcp.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_10_features.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_10_rules.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_11_rules.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_13_rules.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_14_rules.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_15_rules.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_16_rules.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_17_rules.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_18_rules.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_19_rules.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_1_cve_rules.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_20_rules.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_21_rules.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_22_rules.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_8_features.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_8_rules.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_9_features.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_9_features_p1.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_9_rules.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_verification.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_verification_mod.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_version_consistency.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_vuln_db.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_watch_cve_feeds.py +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/vscode-extension/.vscodeignore +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/vscode-extension/CLAUDE.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/vscode-extension/README.md +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/vscode-extension/package.json +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/vscode-extension/src/extension.ts +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/vscode-extension/src/sarifReader.ts +0 -0
- {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/vscode-extension/tsconfig.json +0 -0
|
@@ -27,14 +27,14 @@ jobs:
|
|
|
27
27
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
28
28
|
|
|
29
29
|
- name: Initialize CodeQL
|
|
30
|
-
uses: github/codeql-action/init@
|
|
30
|
+
uses: github/codeql-action/init@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6
|
|
31
31
|
with:
|
|
32
32
|
languages: ${{ matrix.language }}
|
|
33
33
|
|
|
34
34
|
- name: Autobuild
|
|
35
|
-
uses: github/codeql-action/autobuild@
|
|
35
|
+
uses: github/codeql-action/autobuild@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6
|
|
36
36
|
|
|
37
37
|
- name: Perform CodeQL Analysis
|
|
38
|
-
uses: github/codeql-action/analyze@
|
|
38
|
+
uses: github/codeql-action/analyze@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6
|
|
39
39
|
with:
|
|
40
40
|
category: "/language:${{ matrix.language }}"
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
name: Link check
|
|
2
|
+
|
|
3
|
+
# Catch a dead docs domain (the reason docs/CNAME -> docs.agentauditkit.io sat
|
|
4
|
+
# broken for months) at build time instead of after the fact. Runs on doc
|
|
5
|
+
# changes, on push to main, and weekly so a link that dies after merge still
|
|
6
|
+
# fails a build. `mailto:` links are excluded on purpose: security@agentauditkit.io
|
|
7
|
+
# is an aspirational contact whose domain is not registered yet, and we do not
|
|
8
|
+
# want the contact address to block docs builds.
|
|
9
|
+
|
|
10
|
+
on:
|
|
11
|
+
pull_request:
|
|
12
|
+
paths:
|
|
13
|
+
- '**/*.md'
|
|
14
|
+
- 'docs/**'
|
|
15
|
+
- 'mkdocs.yml'
|
|
16
|
+
- '.github/workflows/link-check.yml'
|
|
17
|
+
push:
|
|
18
|
+
branches: [main]
|
|
19
|
+
paths:
|
|
20
|
+
- '**/*.md'
|
|
21
|
+
- 'docs/**'
|
|
22
|
+
- 'mkdocs.yml'
|
|
23
|
+
schedule:
|
|
24
|
+
- cron: '23 6 * * 1' # Mondays 06:23 UTC
|
|
25
|
+
|
|
26
|
+
permissions:
|
|
27
|
+
contents: read
|
|
28
|
+
|
|
29
|
+
jobs:
|
|
30
|
+
links:
|
|
31
|
+
name: Check README + docs links
|
|
32
|
+
runs-on: ubuntu-latest
|
|
33
|
+
steps:
|
|
34
|
+
- uses: actions/checkout@v7.0.1
|
|
35
|
+
|
|
36
|
+
- name: Check links with lychee
|
|
37
|
+
uses: lycheeverse/lychee-action@v2
|
|
38
|
+
with:
|
|
39
|
+
args: >-
|
|
40
|
+
--no-progress
|
|
41
|
+
--exclude 'mailto:|agentauditkit\.io|globenewswire\.com|asciinema\.org'
|
|
42
|
+
--exclude-path 'docs/changelog/archive'
|
|
43
|
+
--max-retries 3
|
|
44
|
+
--retry-wait-time 5
|
|
45
|
+
--timeout 30
|
|
46
|
+
'README.md'
|
|
47
|
+
'docs/**/*.md'
|
|
48
|
+
fail: true
|
|
49
|
+
|
|
50
|
+
# globenewswire.com is excluded above because lychee fails its HTTP/2
|
|
51
|
+
# negotiation from the runner ("HTTP/2 protocol error. Server may not
|
|
52
|
+
# support HTTP/2 properly") while the URL itself is alive — verified 200
|
|
53
|
+
# over both HTTP/1.1 and HTTP/2 from outside CI. Excluding a live host is
|
|
54
|
+
# normally the wrong call, so this is the narrow trade: one press-release
|
|
55
|
+
# citation stays unchecked rather than the whole job staying red and
|
|
56
|
+
# hiding real breakage. Revisit if lychee gains a per-host HTTP/1.1 flag.
|
|
57
|
+
#
|
|
58
|
+
# The deterministic half of this job — relative links to files in this
|
|
59
|
+
# repo — is also covered by tests/test_docs_links.py, which fails fast and
|
|
60
|
+
# locally and does not depend on the network at all.
|
|
61
|
+
#
|
|
62
|
+
# asciinema.org is excluded for the same reason, after the gentler fix was
|
|
63
|
+
# tried and did not work: the README's demo embed times out from the runner
|
|
64
|
+
# while answering 200 in ~0.9s from elsewhere, and raising --timeout from
|
|
65
|
+
# 20s to 30s did not change it — so it is being throttled or blocked by
|
|
66
|
+
# IP range, not merely slow. A timeout exits 2 exactly like a dead link, so
|
|
67
|
+
# leaving it in makes the job permanently red.
|
|
68
|
+
#
|
|
69
|
+
# --timeout stays at 30 regardless: it is a reasonable default for the
|
|
70
|
+
# remaining hosts and costs nothing.
|
|
@@ -31,6 +31,6 @@ jobs:
|
|
|
31
31
|
publish_results: true
|
|
32
32
|
|
|
33
33
|
- name: Upload SARIF results
|
|
34
|
-
uses: github/codeql-action/upload-sarif@
|
|
34
|
+
uses: github/codeql-action/upload-sarif@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6
|
|
35
35
|
with:
|
|
36
36
|
sarif_file: results.sarif
|
|
@@ -16,6 +16,24 @@ open.
|
|
|
16
16
|
> issue. The per-CVE latency figures in the tables are **measurements recorded at
|
|
17
17
|
> the time**, kept as dated facts, not a standing promise.
|
|
18
18
|
|
|
19
|
+
## 2026-08-15 (v0.3.77)
|
|
20
|
+
|
|
21
|
+
Five `cve-response` issues from the 2026-08-14 watcher wave. All five in scope and pinned, as three rules — the three CKAN defects share one package and one fix version. Two of the five had a fix version in the NVD text that the vendor advisory contradicts; both are pinned to the advisory.
|
|
22
|
+
|
|
23
|
+
| CVE | Reference | AAK rule / disposition | Triaged |
|
|
24
|
+
|---|---|---|---|
|
|
25
|
+
| CVE-2026-50027 (mcp-memory-service < 10.67.1 — every HTTP route under `/api/documents/*` is served with no authentication dependency attached, even when the server is configured with an API key (`MCP_API_KEY`) or OAuth, so an unauthenticated remote caller can write arbitrary content into the memory store, read stored documents back, and permanently delete other users' memories; the sibling `/api/memories` routes do enforce auth, which is what makes this an inconsistent boundary rather than an obviously-open server; CRITICAL, CVSS 9.8) | [NVD](https://nvd.nist.gov/vuln/detail/CVE-2026-50027) | **In scope, pinned** `AAK-MCP-MEMSERVICE-CVE-2026-50027-001` (SUPPLY_CHAIN, CRITICAL): floor `mcp-memory-service >= 10.67.1`. Resolves on PyPI (10.67.1 published; 11.8.0 latest). [GHSA-84hp-mqvj-3p8h](https://github.com/advisories/GHSA-84hp-mqvj-3p8h) confirms `< 10.67.1`. (#589) | 2026-08-15 |
|
|
26
|
+
| CVE-2026-49986 (Cortex / `neuro-cortex-memory` <= 3.17.0 — `_find_dev_source()` treats the `CLAUDE_PROJECT_DIR` environment variable, which Claude Code sets to whatever project is currently open, as a candidate Cortex developer checkout; `_is_cortex_root()` validates it by checking only for an `mcp_server/` subdirectory and a `ui/unified-viz.html` file, so an attacker who ships those two marker paths in a repository gets `mcp_server/server/visualize_bootstrap.py` executed from it via `subprocess.run([sys.executable, ...])` with the victim's privileges, merely because the victim opened the repo; HIGH) | [NVD](https://nvd.nist.gov/vuln/detail/CVE-2026-49986) | **In scope, pinned** `AAK-MCP-CORTEX-CVE-2026-49986-001` (SUPPLY_CHAIN, HIGH): floor `neuro-cortex-memory >= 3.18.0`. **Not the 3.17.1 the NVD text names as the fix** — [GHSA-gvpp-v77h-5w8g](https://github.com/advisories/GHSA-gvpp-v77h-5w8g) records `<= 3.17.0` affected with `3.18.0` first patched, and 3.17.1 was never published to PyPI at all, so a floor taken from the prose would point at a version that does not exist. The distribution was later renamed to `hypermnesia-mcp`, whose earliest release is 3.24.0 and is therefore always above this floor — no second pin needed. The npm package of the same name is the same project (`cdeust/Cortex`) on a separate 2.x train that GHSA does not cover. (#585) | 2026-08-15 |
|
|
27
|
+
| CVE-2026-73846, CVE-2026-73845, CVE-2026-73844 (`@aborruso/ckan-mcp-server` < 0.4.112 — `canonicalizeParams` in `src/utils/cache.ts` serialises request parameters without escaping `&`, `=` or `\|`, so distinct logical parameter sets collide in `buildCacheKey` and an attacker can prime the shared cache with a response another user's query then receives (6.5); `isValidMqaServer` in `src/tools/quality.ts` validates the `server_url` parameter with a prefix-only regex for `dati.gov.it`, which suffix-host and URL-userinfo forms defeat, letting a caller point the tool at an attacker-controlled host (5.3); and error paths reflect raw upstream bodies and internal exception text — hostnames, internal IPs, DB errors, stack fragments — back to the caller (3.7)) | [NVD](https://nvd.nist.gov/vuln/detail/CVE-2026-73846) | **In scope, pinned** `AAK-MCP-CKAN-CVE-2026-73846-001` (SUPPLY_CHAIN, MEDIUM): floor `@aborruso/ckan-mcp-server >= 0.4.112`, one pin carrying all three CVEs since they share a package and a fix version. The package name is not in any advisory — no GHSA exists for these three — and had to be identified from the `dati.gov.it` detail in the description; `ckan-mcp-server` on PyPI is an unrelated 0.0.1 placeholder and nothing resolves under the obvious npm spellings. Resolves on npm (0.4.112 published; 0.4.118 latest). (#586, #587, #588) | 2026-08-15 |
|
|
28
|
+
|
|
29
|
+
## 2026-08-15 (unreleased)
|
|
30
|
+
|
|
31
|
+
Backlog item, not a watcher issue: the Agent-Zero row deferred from the 2026-05-01 OX MCP batch (#160). Re-verified against NVD and the registries before authoring, which turned up three stale assumptions in the roadmap row.
|
|
32
|
+
|
|
33
|
+
| CVE | Reference | AAK rule / disposition | Triaged |
|
|
34
|
+
|---|---|---|---|
|
|
35
|
+
| CVE-2026-30624 (Agent Zero 0.9.8 — the External MCP Servers feature accepts a JSON config carrying arbitrary `command` and `args` and executes them when the config is applied, with no validation or restriction, so a malicious MCP config is remote code execution with the Agent Zero process's privileges; HIGH, CVSS 8.6) | [NVD](https://nvd.nist.gov/vuln/detail/CVE-2026-30624) | **In scope, pinned** `AAK-AGENT-ZERO-CVE-2026-30624-PIN-001` (SUPPLY_CHAIN, HIGH), git-reference-only, floor at the 1.x line. NVD's CPE scopes the CVE to exactly `agent-zero:0.9.8` with no `versionEndExcluding` and names no fixed release; the only reference is the OX advisory. Three corrections to the roadmap row: the repository moved `frdel/agent-zero` → `agent0ai/agent-zero` (both spellings matched, since existing manifests carry the old one); `agent-zero` now **does** resolve on PyPI but as an unrelated "AI outbound voice agent framework" (0.1.2, different author), so the rule matches git references only and never the bare distribution name; and the version scheme jumped 0.9.8 → 0.9.8.1/.2/.3 → v1.1 (2026-03-26) → v2.9, so the floor sits at 1.0 rather than a named fix. `_semver3` collapses 0.9.8.3 to (0, 9, 8), so the whole 0.9.8 patch line is treated as affected — the conservative reading, since no advisory says which patch carries a fix. (#160) | 2026-08-15 |
|
|
36
|
+
|
|
19
37
|
## 2026-08-14 (v0.3.76, second wave)
|
|
20
38
|
|
|
21
39
|
Eight `cve-response` issues from the 2026-08-13 NVD wave. Three in scope (two new pins, one carried by a rule that already floors the same version); five adjudicated out of scope after a registry check — four because no resolvable artifact exists to pin, one because it is a web-application XSS with no MCP surface for a static config scan to see.
|
|
@@ -7,14 +7,42 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.3.78] - 2026-08-15
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- The CVE watcher no longer files CVEs from outside the ecosystem it tracks. NVD's `keywordSearch` matches indexed fields rather than only the description, and two of the watcher's keywords are short enough to hit unrelated CVEs: `mcp` (NVIDIA nForce parts are literally "MCP", so kernel CVEs match) and `claude` (increasingly appears in commit messages crediting the model for writing a patch). CVE-2026-68456 arrived via both at once — a `ueagle-atm` USB driver race whose description contains "mcp" zero times and ends "(The latter two were written by Claude...)". Every filed CVE opens a `cve-response` issue and the release gate blocks any tag while one is open, so an unrelated kernel CVE stopped a publish. Results are now corroborated against the description before filing.
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- `AAK-MCP-STDIO-CMD-INJ-002` now decides by data flow instead of proximity (#22). It previously fired when a network-controlled marker appeared anywhere in the 1024 characters before a `new StdioClientTransport({...})`, which both over-fires (an unrelated source that happens to sit nearby) and under-fires (a real source reaching the sink from beyond the window). A tree-sitter pass now traces the `command`/`args` value back to its source through assignment, destructuring, template literals and single-hop helper returns. **What the rule reports is unchanged** — same rule_id, severity and framework mappings; only the decision moved. `tree-sitter` and `tree-sitter-typescript` are a new **optional** extra (`pip install "agent-audit-kit[taint]"`), lazy-imported, with the proximity heuristic retained as the fallback when the grammar is absent — so the default install stays dependency-light and fully offline.
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- Corrected the remediation on `AAK-DOCSGPT-MCP-STDIO-MITM-001` and `AAK-GPTRESEARCHER-MCP-STDIO-MITM-001`. Both told users to set `"deny_stdio_transport": true` or `"allowed_transports": ["sse"]` "so a MITM cannot flip the transport mid-session". Those keys are AgentAuditKit conventions, not MCP specification fields — they appear in **0 of the 748** public MCP configs in `benchmarks/data`, and searching the repo finds them only in AAK's own `rules.json`, tests and fixtures. Following that advice added a key the user's MCP client ignores, silenced the rule, and left them believing they were protected. The remediation now leads with the controls that work (the vendor version pin; TLS with certificate verification so the handshake cannot be rewritten) and states plainly what those keys are. Found while running the empirical false-positive study #162 asks for.
|
|
23
|
+
|
|
24
|
+
### Fixed
|
|
25
|
+
|
|
26
|
+
- `ssrf_patterns` (AAK-SSRF-001..005) now requires reachability instead of deciding file-wide. It previously reported CRITICAL when the word `fetch` appeared anywhere in a file and a user-input marker appeared anywhere else — neither had to be code, related, or nearby — so a match inside a comment, a rule title or a regex literal counted. Against AAK's own source that produced three findings, all prose, including one where the SSRF scanner flagged **its own detection pattern**. Each rule now hangs off a real outbound call site whose URL argument is traced: Python via `ast`, TS/JS via comment-stripped def-use. String literals are deliberately kept, since a genuine metadata URL lives in one. Measured across `agent_audit_kit/`, `tests/fixtures`, `benchmarks/data`, `examples` and `vscode-extension`: **3 false positives removed, all 4 true positives preserved**. Closes #593.
|
|
27
|
+
|
|
28
|
+
## [0.3.77] - 2026-08-15
|
|
29
|
+
|
|
10
30
|
### Added
|
|
11
31
|
|
|
32
|
+
- `AAK-MCP-MEMSERVICE-CVE-2026-50027-001` (SUPPLY_CHAIN, CRITICAL) — mcp-memory-service < 10.67.1 serves every `/api/documents/*` route with no auth dependency even when `MCP_API_KEY` or OAuth is configured; the sibling `/api/memories` routes do enforce it, making this an inconsistent boundary. Floor `>= 10.67.1`. Closes #589.
|
|
33
|
+
- `AAK-MCP-CORTEX-CVE-2026-49986-001` (SUPPLY_CHAIN, HIGH) — Cortex `<= 3.17.0` treats `CLAUDE_PROJECT_DIR` as a trusted source root, validated only by two marker files, then executes `visualize_bootstrap.py` from it. Floor `>= 3.18.0` per GHSA — **not** the 3.17.1 the NVD text names, which was never published. Closes #585.
|
|
34
|
+
- `AAK-MCP-CKAN-CVE-2026-73846-001` (SUPPLY_CHAIN, MEDIUM) — `@aborruso/ckan-mcp-server` < 0.4.112: cache-key collision, prefix-only host validation, and verbose error reflection. One pin, three CVEs. Closes #586, #587, #588.
|
|
35
|
+
- `aak` is now an installed console script, aliasing `agent-audit-kit`. The docs, changelogs and release notes have used `aak scan` / `aak score` / `aak watch-cve` as shorthand for many releases, but it was never declared in `[project.scripts]`, so every one of those snippets exited 127 when copied. Both names share a single entry point, and `tests/test_console_scripts.py` asserts they stay in step — plus that every `` `aak <cmd>` `` in the docs names a command that actually exists.
|
|
36
|
+
- `AAK-AGENT-ZERO-CVE-2026-30624-PIN-001` (SUPPLY_CHAIN, HIGH) — Agent Zero 0.9.8 executes the `command`/`args` of a user-supplied MCP server config without validation (CVE-2026-30624, CVSS 8.6). Git-reference-only pin with the floor at 1.0: `agent-zero` on PyPI is an unrelated voice-agent framework, and the repo moved `frdel/` → `agent0ai/`. Closes #160.
|
|
37
|
+
- `AAK-POLICY-TRUNCATION-001` (TRUST_BOUNDARY, HIGH) — a deny policy evaluated against a truncated copy of the value the executor receives, so anything past the cut point bypasses the deny list. CVE-2026-73614 (ClaudeHookBridge, CVSS 8.8) is the disclosed instance — truncation to 500 chars before `denyPatterns` while Claude Code ran the full command — but that package resolves on neither npm, PyPI nor GitHub, so the rule is written against the shape rather than the vendor. Fires only when the untruncated source is still used elsewhere in the file, which is what separates a policy/executor split from ordinary display truncation. Covers JS/TS `slice`/`substring`/`substr` and Python slicing. Zero findings against AAK's own source, the VS Code extension, and the benchmark corpus.
|
|
12
38
|
- `AAK-MCP-AUTHFETCH-CVE-2026-49857-001` (SUPPLY_CHAIN, HIGH) — auth-fetch-mcp `<= 3.0.1`: `isPrivateV6()` misses IPv4-mapped IPv6 loopback in hex-normalised form, so `http://[::ffff:127.0.0.1]/` normalises to `[::ffff:7f00:1]`, `net.isIPv4('7f00:1')` is false, and the SSRF guard passes the URL through to loopback. Floor `>= 3.0.2` per GHSA-pvrj-8cg3-j5f8 — **not** the 3.0.1 the NVD prose names as the fix, which is inside the affected range. (#578)
|
|
13
39
|
- `AAK-MCP-JSHOOK-CVE-2026-49856-001` (SUPPLY_CHAIN, MEDIUM) — @jshookmcp/jshook 0.3.1 enforces its SSRF authorization policy only on the raw HTTP/TCP/TLS tools; ICMP probe and traceroute call the native sink directly, giving internal reachability mapping with private-network access disabled. Floor `>= 0.3.2`. (#577)
|
|
14
40
|
- `CVE-2026-73601` added to `AAK-FLOWISE-001` — the Custom MCP node stdio RCE shares Flowise's 3.1.3 fix floor, which that rule's detector already enforces, so it is a reference addition rather than a duplicate pin. (#575)
|
|
15
41
|
|
|
16
42
|
### Changed
|
|
17
43
|
|
|
44
|
+
- Fixed four dangling relative links in `docs/`: one written a directory level too shallow, two pointing at per-rule pages that were never authored (for rules that do exist in the registry), and one to a doc explicitly marked "queued for v0.4.0". `tests/test_docs_links.py` now asserts every relative link under `docs/` resolves — the deterministic half of the link check, without the network flakiness.
|
|
45
|
+
- Launch copy and `CLAUDE_PROMPT.md` now point at `https://sattyamjjain.github.io/agent-audit-kit/` instead of `mcp-security-index.com`, which never resolved and had been failing the docs link check on every PR (6 files).
|
|
18
46
|
- Adjudicated out of scope after a registry check, with reasons recorded in `CHANGELOG.cves.md`: CVE-2026-73614 (ClaudeHookBridge — absent from npm, PyPI and GitHub, so nothing to key a detector on), CVE-2026-19751 / CVE-2026-19752 (mcp-dominican-layer — rolling release, NVD states version details cannot be specified), CVE-2026-19753 (mcp-rdf-explorer — unresolvable, no published fix), CVE-2026-73037 (Next AI Draw.io — reflected XSS in a web app, no MCP surface and no XSS detector here). (#576, #579, #580, #581, #582)
|
|
19
47
|
|
|
20
48
|
- `AAK-MCP-UFO-CVE-2026-73296-001` (MCP_CONFIG, CRITICAL) — Microsoft UFO < 3.0.8 serves its mobile MCP data-collection (8020) and action (8021) Streamable-HTTP endpoints without inbound auth, handing an unauthenticated caller the ADB device-control tools. New `ufo_mobile_mcp` scanner over vendored source, MCP config, and git dependency; a detection rule rather than a pin, because UFO ships as a git checkout and `ufo` on npm is an unrelated package. (#573)
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
|
|
6
6
|
**AgentAuditKit** (version tracked in `pyproject.toml` / `agent_audit_kit.__version__`) — Security scanner for MCP-connected AI agent pipelines. The "npm audit" for AI agents.
|
|
7
7
|
|
|
8
|
-
- **
|
|
9
|
-
- **
|
|
8
|
+
- **303 rules** across 12 security categories
|
|
9
|
+
- **90 scanner modules** including AST-based Python taint analysis plus regex dangerous-sink pattern scanners for TypeScript/JavaScript and Rust (pattern matching, not taint flow)
|
|
10
10
|
- **26 CLI commands**: `scan`, `discover`, `pin`, `verify`, `fix`, `score`, `update`, `proxy`, `kill`, `diff`, `suggest`, `watch`, `watch-cve`, `notify`, `install-precommit`, `export-rules`, `verify-bundle`, `sbom`, `report`, `coverage`, `inspect-ide`, `parity`, `corpus`, `pipelock`, `rule`, `scanners`
|
|
11
11
|
- **OWASP coverage**: Agentic Top 10 (10/10), MCP Top 10 (10/10), Adversa AI Top 25
|
|
12
12
|
- **Compliance mapping** (12 frameworks): EU AI Act, SOC 2, ISO 27001/42001, HIPAA, NIST AI RMF, NSA MCP CSI, + regional (India DPDP, Singapore, Alabama, Tennessee)
|
|
@@ -79,7 +79,7 @@ agent_audit_kit/
|
|
|
79
79
|
vuln_db.py, advisories.py, feeds/, watch.py # CVE DB, advisories, live feeds, watch/watch-cve
|
|
80
80
|
coverage.py, bundle.py # Framework coverage; signed rule-bundle export/verify
|
|
81
81
|
rules/
|
|
82
|
-
builtin.py #
|
|
82
|
+
builtin.py # 303 RuleDefinition entries (rule registry)
|
|
83
83
|
scanners/ # 89 registered scanners, each exports scan() -> (list[Finding], set[str])
|
|
84
84
|
mcp_config.py # MCP configuration checks
|
|
85
85
|
hook_injection.py # Hook injection detection
|
|
@@ -138,7 +138,7 @@ benchmarks/ # Benchmark crawler
|
|
|
138
138
|
## Detected Patterns
|
|
139
139
|
|
|
140
140
|
- **Scanner registry**: `engine.py` lazy-builds a list of `ScannerRegistration` dataclasses; each wraps a `scan_fn` callable. New scanners are registered via try/except ImportError blocks for backward compatibility.
|
|
141
|
-
- **Rule registry**: `rules/builtin.py` defines all
|
|
141
|
+
- **Rule registry**: `rules/builtin.py` defines all 303 rules as `RuleDefinition` dataclasses in a global `RULES` dict, populated by `_r()` helper.
|
|
142
142
|
- **Counts are generated, never hand-typed**: `agent_audit_kit/__init__.py` holds `RULE_COUNT` / `SCANNER_COUNT`; `scripts/sync_rule_count.py` and `scripts/sync_scanner_count.py` regenerate them. `scripts/check_counts.py` (`make count-check`) fails if any tracked `*.md` — **including this file** — carries a stale count. Regenerate; do not hand-fix. Dated/historical docs are exempted via the exclusion list in `check_counts.py`.
|
|
143
143
|
- **Count invariants under test**: `tests/test_repo_metadata_sync.py` asserts `SCANNER_COUNT` equals the real `engine._build_registry()` size, so the scanner constant tracks the registry, not the file count in `scanners/`.
|
|
144
144
|
- **Finding model**: All scanners produce `Finding` dataclasses with rule_id, severity, category, evidence, remediation, and framework references (OWASP, CVE, Adversa).
|
|
@@ -22,8 +22,8 @@ Read in order:
|
|
|
22
22
|
2. `../agent-airlock/ECOSYSTEM_STATE_2026-04.md` — shared ecosystem brief
|
|
23
23
|
3. `ROADMAP_2026.md` — 90-day plan for this repo
|
|
24
24
|
4. `../agent-airlock/LAUNCH_PLAYBOOK_2026.md` — shared growth tactics
|
|
25
|
-
5. `agent_audit_kit/rules/builtin.py` — understand the
|
|
26
|
-
6. `agent_audit_kit/scanners/*.py` — understand the
|
|
25
|
+
5. `agent_audit_kit/rules/builtin.py` — understand the 303 existing rules
|
|
26
|
+
6. `agent_audit_kit/scanners/*.py` — understand the 90 scanner modules
|
|
27
27
|
7. `tests/conftest.py` — fixture patterns
|
|
28
28
|
8. Run `pytest -v` and `agent-audit-kit scan .` on the repo's own fixtures to confirm baseline
|
|
29
29
|
|
|
@@ -81,7 +81,7 @@ This is the leaderboard-ownership growth play.
|
|
|
81
81
|
|
|
82
82
|
1. **Crawler**: discovers MCP servers from `anthropics/claude-plugins-official`, `claudemarketplaces.com`, `aitmpl.com`, `buildwithclaude.com`, and the top 500 GitHub results for `topic:mcp-server`. Store in `benchmarks/crawler/`.
|
|
83
83
|
2. **Scanner runner**: runs the full agent-audit-kit rule catalog against each MCP server weekly.
|
|
84
|
-
3. **Index site**: publish `
|
|
84
|
+
3. **Index site**: publish `sattyamjjain.github.io/agent-audit-kit` (or `index.agentauditkit.dev`) as a static site with per-server grades A–F, rule-hit breakdown, and week-over-week trends. Hosted on Cloudflare Pages.
|
|
85
85
|
4. **Disclosure policy**: every discovered vuln goes to the maintainer first with a 90-day disclosure window. Publish the policy at `docs/disclosure-policy.md` before crawling.
|
|
86
86
|
5. **Weekly State of MCP Security** blog post summarizing new findings, trends, and the worst-graded servers. This is the Aider-leaderboard play.
|
|
87
87
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: agent-audit-kit
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.78
|
|
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
|
|
@@ -28,8 +28,13 @@ Provides-Extra: dev
|
|
|
28
28
|
Requires-Dist: mypy>=1.0; extra == 'dev'
|
|
29
29
|
Requires-Dist: pytest-cov>=4.0; extra == 'dev'
|
|
30
30
|
Requires-Dist: pytest>=7.0; extra == 'dev'
|
|
31
|
-
Requires-Dist: ruff<0.
|
|
31
|
+
Requires-Dist: ruff<0.17,>=0.15; extra == 'dev'
|
|
32
|
+
Requires-Dist: tree-sitter-typescript>=0.21; extra == 'dev'
|
|
33
|
+
Requires-Dist: tree-sitter>=0.21; extra == 'dev'
|
|
32
34
|
Requires-Dist: types-pyyaml>=6.0; extra == 'dev'
|
|
35
|
+
Provides-Extra: taint
|
|
36
|
+
Requires-Dist: tree-sitter-typescript>=0.21; extra == 'taint'
|
|
37
|
+
Requires-Dist: tree-sitter>=0.21; extra == 'taint'
|
|
33
38
|
Description-Content-Type: text/markdown
|
|
34
39
|
|
|
35
40
|
<p align="center">
|
|
@@ -45,7 +50,7 @@ Description-Content-Type: text/markdown
|
|
|
45
50
|
<a href="benchmarks/determinism/RESULTS.md"><img src="https://img.shields.io/badge/determinism-0%25%20variance%20(20%2F20)-brightgreen.svg" alt="Determinism: 0% variance across 20/20 runs"></a>
|
|
46
51
|
<a href="benchmarks/false_positive/RESULTS.md"><img src="https://img.shields.io/badge/benign--slice%20HIGH%2FCRIT%20FP-0%2F1%20(n%3D1)-blue.svg" alt="Benign-slice HIGH/CRITICAL false-positive rate: 0/1, n=1"></a>
|
|
47
52
|
<a href="docs/benchmarks/third-party-grading.md"><img src="https://img.shields.io/badge/third--party%20grade-see%20notes-lightgrey.svg" alt="Third-party grading notes"></a>
|
|
48
|
-
<a href="#what-it-scans"><img src="https://img.shields.io/badge/rules-
|
|
53
|
+
<a href="#what-it-scans"><img src="https://img.shields.io/badge/rules-303-blue.svg" alt="Rules: 303"></a>
|
|
49
54
|
<a href="#frameworks--standards"><img src="https://img.shields.io/badge/OWASP_Agentic-10%2F10-green.svg" alt="OWASP Agentic: 10/10"></a>
|
|
50
55
|
<a href="#frameworks--standards"><img src="https://img.shields.io/badge/OWASP_MCP-10%2F10-green.svg" alt="OWASP MCP: 10/10"></a>
|
|
51
56
|
<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>
|
|
@@ -64,9 +69,9 @@ Security scanner for MCP-connected AI agent pipelines. Finds misconfigurations,
|
|
|
64
69
|
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. Precision is measured the same way, not asserted: we publish a reproducible, hand-adjudicated [benign-slice HIGH/CRITICAL false-positive rate](benchmarks/false_positive/RESULTS.md) — with a Wilson confidence interval and any offending rule filed as an issue.
|
|
65
70
|
2. **Produces auditor-ready compliance-evidence packs.** SARIF for the GitHub Security tab plus PDF evidence reports mapped to 12 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.
|
|
66
71
|
|
|
67
|
-
- **<!-- rule-count:total -->
|
|
72
|
+
- **<!-- rule-count:total -->303<!-- /rule-count --> rules** across 12 security categories, covering the 2026 CVE wave
|
|
68
73
|
- Rule count is computed from the registry and verified in CI (`test_rule_count_is_canonical`).
|
|
69
|
-
- **<!-- scanner-count:total -->
|
|
74
|
+
- **<!-- scanner-count:total -->90<!-- /scanner-count --> scanner modules** including AST-based Python taint analysis and regex pattern scanners for TypeScript/JavaScript and Rust
|
|
70
75
|
- **26 CLI commands**: `scan`, `discover`, `pin`, `verify`, `fix`, `score`, `update`, `proxy`, `kill`, `diff`, `suggest`, `watch`, `watch-cve`, `notify`, `install-precommit`, `export-rules`, `verify-bundle`, `sbom`, `report`, `coverage`, `inspect-ide`, `parity`, `corpus`, `pipelock`, `rule`, `scanners`
|
|
71
76
|
- **OWASP coverage**: Agentic Top 10 (10/10), MCP Top 10 (10/10), Adversa AI Top 25
|
|
72
77
|
- **Compliance mapping** (12 frameworks): EU AI Act Art. 15 + 55, SOC 2, ISO 27001, ISO/IEC 42001, HIPAA, NIST AI RMF, **NSA MCP Security CSI (U/OO/6030316-26, May 2026)**, Singapore Agentic AI, India DPDP 2023, **Alabama Personal Data Protection Act (HB 351, 2026)**, **Tennessee SB 1580 Health Care AI (PRA)** — PDF reports via `agent-audit-kit report --format pdf --framework <name>`; plus `agent-audit-kit scan . --compliance mcp-2026-roadmap` for **MCP 2026 Roadmap (May 2026)** conformance (a scan-time mapping, not a PDF evidence pack)
|
|
@@ -105,7 +110,7 @@ jobs:
|
|
|
105
110
|
runs-on: ubuntu-latest
|
|
106
111
|
steps:
|
|
107
112
|
- uses: actions/checkout@v4
|
|
108
|
-
- uses: sattyamjjain/agent-audit-kit@v0.3.
|
|
113
|
+
- uses: sattyamjjain/agent-audit-kit@v0.3.78
|
|
109
114
|
id: scan
|
|
110
115
|
with:
|
|
111
116
|
fail-on: high
|
|
@@ -124,6 +129,9 @@ appear as **inline PR annotations** and in the **Security tab**. See
|
|
|
124
129
|
```bash
|
|
125
130
|
pip install agent-audit-kit
|
|
126
131
|
agent-audit-kit scan .
|
|
132
|
+
|
|
133
|
+
# `aak` is installed as a shorthand for the same command
|
|
134
|
+
aak scan .
|
|
127
135
|
```
|
|
128
136
|
|
|
129
137
|
### Pre-commit Hook
|
|
@@ -132,7 +140,7 @@ agent-audit-kit scan .
|
|
|
132
140
|
# .pre-commit-config.yaml
|
|
133
141
|
repos:
|
|
134
142
|
- repo: https://github.com/sattyamjjain/agent-audit-kit
|
|
135
|
-
rev: v0.3.
|
|
143
|
+
rev: v0.3.78
|
|
136
144
|
hooks:
|
|
137
145
|
- id: agent-audit-kit
|
|
138
146
|
```
|
|
@@ -157,7 +165,7 @@ agent-audit-kit scan examples/vulnerable-configs/04-hook-exfiltration/
|
|
|
157
165
|
| Category | Rules | What It Detects |
|
|
158
166
|
|----------|:-----:|-----------------|
|
|
159
167
|
| **MCP Configuration** | <!-- category-count:MCP_CONFIG -->63<!-- /category-count --> | Missing auth middleware (CVE-2026-33032 class), empty IP allowlists, wildcard CORS, path traversal in resource handlers, SSRF (CWE-918), OAuth 2.1 misconfig (PKCE/S256/DPoP), Tasks primitive leakage (SEP-1686), shell injection, MCPwn middleware-asymmetry, Azure MCP no-auth (CVE-2026-32211), MCP Inspector vendored fork (CVE-2026-23744), 2026-07-28 stateless-MCP migration (`Mcp-Session-Id` reliance, removed `tasks/list`, sticky-session deployment, un-cached client `tools/list`), deny-by-default attested admission (signed clearance / `/.well-known/mcp-clearance` / pinned trust root — arXiv:2605.24248), Anthropic MCP Tunnels gateway (SSRF defense disabled / `upstream.disable_ip_validation`, HTTPS upstream missing `upstream.tls.ca_file` trust anchor, tunnel token + TLS private keys hardcoded in CI / committed Kubernetes Secrets — research preview 2026-05-19), stdio launcher injection (`npx`/`node`/`bash`/`sh`/`python` with `-c`/`-e`/`--eval`, or non-pinned interpolated argv — CVE-2026-40933), tool-gate enforcement asymmetry (allowlist / read-only / non-destructive check applied in `tools/list` but not `tools/call` — CVE-2026-46519), unauthenticated MCP HTTP/SSE server on `0.0.0.0` / wildcard CORS (GitLab/Nocturne/AgenticMail no-auth class — CVE-2026-44895/44830/50287), plus the non-loopback no-auth **launch surface** — `mcp.json`/`claude_desktop_config.json`/`*.mcp.yaml` `command`/`args`, Docker `--host 0.0.0.0`/`-p 0.0.0.0:`, and MCP Inspector / FastMCP startup binding `0.0.0.0`/`::`/a routable IP with no token or `DANGEROUSLY_OMIT_AUTH` set (CWE-306; MCP Inspector exemplar CVE-2026-23744; mcp-pinot `0.0.0.0:8080` no-auth CVE-2026-49257; Windows-MCP wildcard-CORS no-auth CVE-2026-48989; ~12,520 exposed services per Censys), argv-rebuild-after-allowlist command-injection TOCTOU (a command/argv approved against an allow/deny list is re-split / re-joined / extended before `subprocess`/`os.exec*` / Node `child_process.spawn`/`execa` with no re-check — `AAK-MCP-ARGV-TOCTOU-001`, **CWE-77 + CWE-367 / CVE-2026-53822**), MCP server unauthenticated-by-default / fail-open auth (an auth function returning truthy on an empty/unset secret, a placeholder/empty secret literal — `""`/`changeme`/`os.environ.get(...,"")` — or a warning-only secret gate on a `0.0.0.0` bind — `AAK-MCP-NOAUTH-DEFAULT`, **CWE-306 + CWE-862 / CVE-2026-48814** (incomplete fix of CVE-2026-46701)), bearer-token → session-file path traversal (an untrusted token / `Authorization` header joined into a session file path used for an existence/read check with no separator-reject or resolve-and-contain guard — `AAK-MCP-AUTH-PATHTRAVERSAL-001`, **CWE-22 / CVE-2026-52830**, fast-mcp-telegram < 0.19.1), MCP tool-argument URL SSRF (an MCP tool handler passing a caller-supplied `url`/`endpoint`/`target` argument straight into an outbound `requests`/`httpx`/`urllib`/`aiohttp` fetch with no host/scheme allow-list — `ast` parameter→fetch taint for Python, regex fallback for TS/JS/Rust — `AAK-MCP-SSRF-001`, **CWE-918 / CVE-2026-14748**, AIAnytime Awesome-MCP-Server `mcp-wiki/wiki-summary`), Serena MCP toolkit unauthenticated-dashboard RCE (`serena-agent` < 1.5.2 — an unauthenticated Flask dashboard on a fixed port reachable via DNS rebinding writes the agent's persistent memory, chained with `execute_shell_command` `shell=True` to remote code execution — `AAK-MCP-SERENA-CVE-2026-49471-001`, **CWE-306 + CWE-352 / CVE-2026-49471**, HIGH 8.3), MCP 2026-07-28 deprecated features (the `roots` / `sampling` / `logging` capabilities annotation-deprecated under the RC's new 12-month deprecation policy — flagged across config + server source so authors migrate before removal — `AAK-MCP-DEPRECATED-001..003`, **SEP-2577 / SEP-2596**), OAuth `iss`-validation gap (an authorization-code client that handles the auth response but never validates the RFC 9207 `iss` parameter, the RC's actual new OAuth requirement — `AAK-OAUTH-006`, **RFC 9207 / SEP-2468**), RFC 8707 Resource-Indicator absence (an OAuth 2.1 flow / MCP client config that never sets the `resource` parameter, so issued tokens aren't audience-bound and a token minted for one MCP server can be replayed at another — the confused-deputy / audience-confusion class; mandatory in the **ratified** MCP 2025-11-25 auth spec, independent of the 2026-07-28 RC — `AAK-OAUTH-007`, **RFC 8707 / RFC 9728 §7.4**), RFC 9728 Protected-Resource-Metadata discovery gap (a remote MCP server config that embeds a static `Authorization`/`Bearer`/`auth` credential with no `/.well-known/oauth-protected-resource` discovery path, or server source enforcing bearer auth without serving PRM — the resource-discovery arm of the 2026-07-28 auth profile — `AAK-OAUTH-008`, **RFC 9728**) |
|
|
160
|
-
| **Supply Chain** | <!-- category-count:SUPPLY_CHAIN -->
|
|
168
|
+
| **Supply Chain** | <!-- category-count:SUPPLY_CHAIN -->89<!-- /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**), and the **2026-07 MCP/agent CVE disclosure wave** — verified PyPI/npm version-pins for `litellm` < 1.84.0 (MCP auth bypass + skills-archive traversal, **CVE-2026-59822/59820**), `cline` < 3.0.30 (Hub-dashboard WS origin bypass → RCE, **CVE-2026-59723**), `mcp-text-editor` ≤ 1.0.2 (path traversal, **CVE-2026-15138**), `n8n` < 2.27.4/2.28.1 (MCP tool credential-domain bypass, **CVE-2026-59207**), `ruflo` < 3.16.3 (unauth MCP bridge RCE, **CVE-2026-59726**, CVSS 10), `@arikusi/deepseek-mcp-server` < 1.8.0 (unbound session IDs + unauth HTTP transport, **CVE-2026-55604/55605**), `mcp-server-kubernetes` < 3.9.0 (kubectl `--server` argument injection, **CVE-2026-61459**, CVSS 9.8), and `astrbot` ≤ 4.25.2 (MCP-test-endpoint SSRF, **CVE-2026-15501**) |
|
|
161
169
|
| **Tool Poisoning** | <!-- category-count:TOOL_POISONING -->29<!-- /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 |
|
|
162
170
|
| **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) |
|
|
163
171
|
| **Agent Config** | <!-- category-count:AGENT_CONFIG -->18<!-- /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 |
|
|
@@ -166,10 +174,10 @@ agent-audit-kit scan examples/vulnerable-configs/04-hook-exfiltration/
|
|
|
166
174
|
| **Taint Analysis** | <!-- category-count:TAINT_ANALYSIS -->13<!-- /category-count --> | `@tool` param flows to shell/eval/SQL/SSRF/file/deserialization sinks (Python AST), `load_prompt()` user-path reachability, transport-flip MITM (DocsGPT + GPT-Researcher). SQL-injection sinks (`AAK-TAINT-005`) now detected in TypeScript/JS MCP servers too — interpolated/concatenated `.query()`/`.execute()`, `knex.raw`, Prisma `$queryRawUnsafe` — matching the Python + Rust scanners (OX MCP-SDK disclosure class). LLM-generated SQL executed on an RCE-capable DB role (`AAK-LLM-SQL-RCE-001`, **CVE-2026-25879**) — model output reaching `cursor.execute`/`text(...)`/`.query()` as the query itself with no allow-list, plus superuser/`COPY ... FROM PROGRAM`/`xp_cmdshell`/`FILE`-privilege connection roles that turn SQL injection into shell |
|
|
167
175
|
| **Transport Security** | <!-- category-count:TRANSPORT_SECURITY -->12<!-- /category-count --> | HTTP endpoints, TLS disabled, deprecated SSE, tokens in URL query strings, transport body-size limits (CVE-2026-39313), SSRF redirect bypass (CVE-2026-41481), DNS-rebinding (CVE-2025-66414/66416, CVE-2026-35568/35577) |
|
|
168
176
|
| **Legal Compliance** | <!-- category-count:LEGAL_COMPLIANCE -->12<!-- /category-count --> | Copyleft licenses (AGPL/SSPL), missing licenses, DMCA-flagged packages, India PII surface, US-state consumer privacy (Alabama HB 351, Tennessee SB 1580), Singapore Agentic AI, healthcare AI triggers, EU AI Act Article 15 multilingual-eval coverage advisory (Annex III high-risk binding 2027-12-02, Annex I 2028-08-02 — AI Omnibus) |
|
|
169
|
-
| **Trust Boundaries** | <!-- category-count:TRUST_BOUNDARY -->
|
|
177
|
+
| **Trust Boundaries** | <!-- category-count:TRUST_BOUNDARY -->15<!-- /category-count --> | `enableAllProjectMcpServers`, API URL redirects, wildcard permissions, missing deny rules, missing allowlists, Claude Code folder-trust bypass (CVE-2026-40068) |
|
|
170
178
|
| **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`) |
|
|
171
179
|
|
|
172
|
-
**<!-- rule-count:total -->
|
|
180
|
+
**<!-- rule-count:total -->303<!-- /rule-count --> rules total.** Every finding includes severity, evidence, remediation, OWASP references, Adversa references, and CVE links where applicable.
|
|
173
181
|
|
|
174
182
|
### MCP Server Card scanning (SEP-1649)
|
|
175
183
|
|
|
@@ -320,7 +328,7 @@ permissions:
|
|
|
320
328
|
|
|
321
329
|
steps:
|
|
322
330
|
- uses: actions/checkout@v4
|
|
323
|
-
- uses: sattyamjjain/agent-audit-kit@v0.3.
|
|
331
|
+
- uses: sattyamjjain/agent-audit-kit@v0.3.78
|
|
324
332
|
id: scan
|
|
325
333
|
with:
|
|
326
334
|
fail-on: high
|
|
@@ -408,15 +416,15 @@ cross-reference, not a head-to-head benchmark.
|
|
|
408
416
|
| ASI | Title | # rules |
|
|
409
417
|
| --- | --- | --- |
|
|
410
418
|
| **ASI01** | Goal Hijack | 13 |
|
|
411
|
-
| **ASI02** | Tool Misuse |
|
|
419
|
+
| **ASI02** | Tool Misuse | 42 |
|
|
412
420
|
| **ASI03** | Memory Poisoning | 68 |
|
|
413
|
-
| **ASI04** | Identity & Privilege Abuse |
|
|
421
|
+
| **ASI04** | Identity & Privilege Abuse | 64 |
|
|
414
422
|
| **ASI05** | Cascading Failures | 42 |
|
|
415
|
-
| **ASI06** | Unauthorized Capability Acquisition |
|
|
423
|
+
| **ASI06** | Unauthorized Capability Acquisition | 44 |
|
|
416
424
|
| **ASI07** | Plan Injection | 9 |
|
|
417
425
|
| **ASI08** | Agent Communication Poisoning | 5 |
|
|
418
426
|
| **ASI09** | Resource Abuse | 18 |
|
|
419
|
-
| **ASI10** | Supply-Chain |
|
|
427
|
+
| **ASI10** | Supply-Chain | 21 |
|
|
420
428
|
<!-- owasp-coverage:end -->
|
|
421
429
|
|
|
422
430
|
</details>
|
|
@@ -454,7 +462,7 @@ See [`docs/comparisons.md`](docs/comparisons.md) for a fully-sourced version. Ve
|
|
|
454
462
|
| Feature | AgentAuditKit | Microsoft AGT | Snyk Agent Scan | Semgrep Multimodal |
|
|
455
463
|
|---------|:---:|:---:|:---:|:---:|
|
|
456
464
|
| Scope | Static scanner + compliance PDFs | Runtime governance | Static + runtime | Multimodal SAST |
|
|
457
|
-
| Detection rules (static) | **<!-- rule-count:total -->
|
|
465
|
+
| Detection rules (static) | **<!-- rule-count:total -->303<!-- /rule-count -->** | Runtime policies, not rules | ~30 | LLM-assisted |
|
|
458
466
|
| OWASP Agentic 10/10 | **Yes** | Yes | Partial | Partial |
|
|
459
467
|
| OWASP MCP 10/10 | **Yes** | No (runtime-focused) | No | No |
|
|
460
468
|
| Auditor-ready PDF compliance | **12 frameworks** | No | 0 | 0 |
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
<a href="benchmarks/determinism/RESULTS.md"><img src="https://img.shields.io/badge/determinism-0%25%20variance%20(20%2F20)-brightgreen.svg" alt="Determinism: 0% variance across 20/20 runs"></a>
|
|
12
12
|
<a href="benchmarks/false_positive/RESULTS.md"><img src="https://img.shields.io/badge/benign--slice%20HIGH%2FCRIT%20FP-0%2F1%20(n%3D1)-blue.svg" alt="Benign-slice HIGH/CRITICAL false-positive rate: 0/1, n=1"></a>
|
|
13
13
|
<a href="docs/benchmarks/third-party-grading.md"><img src="https://img.shields.io/badge/third--party%20grade-see%20notes-lightgrey.svg" alt="Third-party grading notes"></a>
|
|
14
|
-
<a href="#what-it-scans"><img src="https://img.shields.io/badge/rules-
|
|
14
|
+
<a href="#what-it-scans"><img src="https://img.shields.io/badge/rules-303-blue.svg" alt="Rules: 303"></a>
|
|
15
15
|
<a href="#frameworks--standards"><img src="https://img.shields.io/badge/OWASP_Agentic-10%2F10-green.svg" alt="OWASP Agentic: 10/10"></a>
|
|
16
16
|
<a href="#frameworks--standards"><img src="https://img.shields.io/badge/OWASP_MCP-10%2F10-green.svg" alt="OWASP MCP: 10/10"></a>
|
|
17
17
|
<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>
|
|
@@ -30,9 +30,9 @@ Security scanner for MCP-connected AI agent pipelines. Finds misconfigurations,
|
|
|
30
30
|
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. Precision is measured the same way, not asserted: we publish a reproducible, hand-adjudicated [benign-slice HIGH/CRITICAL false-positive rate](benchmarks/false_positive/RESULTS.md) — with a Wilson confidence interval and any offending rule filed as an issue.
|
|
31
31
|
2. **Produces auditor-ready compliance-evidence packs.** SARIF for the GitHub Security tab plus PDF evidence reports mapped to 12 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.
|
|
32
32
|
|
|
33
|
-
- **<!-- rule-count:total -->
|
|
33
|
+
- **<!-- rule-count:total -->303<!-- /rule-count --> rules** across 12 security categories, covering the 2026 CVE wave
|
|
34
34
|
- Rule count is computed from the registry and verified in CI (`test_rule_count_is_canonical`).
|
|
35
|
-
- **<!-- scanner-count:total -->
|
|
35
|
+
- **<!-- scanner-count:total -->90<!-- /scanner-count --> scanner modules** including AST-based Python taint analysis and regex pattern scanners for TypeScript/JavaScript and Rust
|
|
36
36
|
- **26 CLI commands**: `scan`, `discover`, `pin`, `verify`, `fix`, `score`, `update`, `proxy`, `kill`, `diff`, `suggest`, `watch`, `watch-cve`, `notify`, `install-precommit`, `export-rules`, `verify-bundle`, `sbom`, `report`, `coverage`, `inspect-ide`, `parity`, `corpus`, `pipelock`, `rule`, `scanners`
|
|
37
37
|
- **OWASP coverage**: Agentic Top 10 (10/10), MCP Top 10 (10/10), Adversa AI Top 25
|
|
38
38
|
- **Compliance mapping** (12 frameworks): EU AI Act Art. 15 + 55, SOC 2, ISO 27001, ISO/IEC 42001, HIPAA, NIST AI RMF, **NSA MCP Security CSI (U/OO/6030316-26, May 2026)**, Singapore Agentic AI, India DPDP 2023, **Alabama Personal Data Protection Act (HB 351, 2026)**, **Tennessee SB 1580 Health Care AI (PRA)** — PDF reports via `agent-audit-kit report --format pdf --framework <name>`; plus `agent-audit-kit scan . --compliance mcp-2026-roadmap` for **MCP 2026 Roadmap (May 2026)** conformance (a scan-time mapping, not a PDF evidence pack)
|
|
@@ -71,7 +71,7 @@ jobs:
|
|
|
71
71
|
runs-on: ubuntu-latest
|
|
72
72
|
steps:
|
|
73
73
|
- uses: actions/checkout@v4
|
|
74
|
-
- uses: sattyamjjain/agent-audit-kit@v0.3.
|
|
74
|
+
- uses: sattyamjjain/agent-audit-kit@v0.3.78
|
|
75
75
|
id: scan
|
|
76
76
|
with:
|
|
77
77
|
fail-on: high
|
|
@@ -90,6 +90,9 @@ appear as **inline PR annotations** and in the **Security tab**. See
|
|
|
90
90
|
```bash
|
|
91
91
|
pip install agent-audit-kit
|
|
92
92
|
agent-audit-kit scan .
|
|
93
|
+
|
|
94
|
+
# `aak` is installed as a shorthand for the same command
|
|
95
|
+
aak scan .
|
|
93
96
|
```
|
|
94
97
|
|
|
95
98
|
### Pre-commit Hook
|
|
@@ -98,7 +101,7 @@ agent-audit-kit scan .
|
|
|
98
101
|
# .pre-commit-config.yaml
|
|
99
102
|
repos:
|
|
100
103
|
- repo: https://github.com/sattyamjjain/agent-audit-kit
|
|
101
|
-
rev: v0.3.
|
|
104
|
+
rev: v0.3.78
|
|
102
105
|
hooks:
|
|
103
106
|
- id: agent-audit-kit
|
|
104
107
|
```
|
|
@@ -123,7 +126,7 @@ agent-audit-kit scan examples/vulnerable-configs/04-hook-exfiltration/
|
|
|
123
126
|
| Category | Rules | What It Detects |
|
|
124
127
|
|----------|:-----:|-----------------|
|
|
125
128
|
| **MCP Configuration** | <!-- category-count:MCP_CONFIG -->63<!-- /category-count --> | Missing auth middleware (CVE-2026-33032 class), empty IP allowlists, wildcard CORS, path traversal in resource handlers, SSRF (CWE-918), OAuth 2.1 misconfig (PKCE/S256/DPoP), Tasks primitive leakage (SEP-1686), shell injection, MCPwn middleware-asymmetry, Azure MCP no-auth (CVE-2026-32211), MCP Inspector vendored fork (CVE-2026-23744), 2026-07-28 stateless-MCP migration (`Mcp-Session-Id` reliance, removed `tasks/list`, sticky-session deployment, un-cached client `tools/list`), deny-by-default attested admission (signed clearance / `/.well-known/mcp-clearance` / pinned trust root — arXiv:2605.24248), Anthropic MCP Tunnels gateway (SSRF defense disabled / `upstream.disable_ip_validation`, HTTPS upstream missing `upstream.tls.ca_file` trust anchor, tunnel token + TLS private keys hardcoded in CI / committed Kubernetes Secrets — research preview 2026-05-19), stdio launcher injection (`npx`/`node`/`bash`/`sh`/`python` with `-c`/`-e`/`--eval`, or non-pinned interpolated argv — CVE-2026-40933), tool-gate enforcement asymmetry (allowlist / read-only / non-destructive check applied in `tools/list` but not `tools/call` — CVE-2026-46519), unauthenticated MCP HTTP/SSE server on `0.0.0.0` / wildcard CORS (GitLab/Nocturne/AgenticMail no-auth class — CVE-2026-44895/44830/50287), plus the non-loopback no-auth **launch surface** — `mcp.json`/`claude_desktop_config.json`/`*.mcp.yaml` `command`/`args`, Docker `--host 0.0.0.0`/`-p 0.0.0.0:`, and MCP Inspector / FastMCP startup binding `0.0.0.0`/`::`/a routable IP with no token or `DANGEROUSLY_OMIT_AUTH` set (CWE-306; MCP Inspector exemplar CVE-2026-23744; mcp-pinot `0.0.0.0:8080` no-auth CVE-2026-49257; Windows-MCP wildcard-CORS no-auth CVE-2026-48989; ~12,520 exposed services per Censys), argv-rebuild-after-allowlist command-injection TOCTOU (a command/argv approved against an allow/deny list is re-split / re-joined / extended before `subprocess`/`os.exec*` / Node `child_process.spawn`/`execa` with no re-check — `AAK-MCP-ARGV-TOCTOU-001`, **CWE-77 + CWE-367 / CVE-2026-53822**), MCP server unauthenticated-by-default / fail-open auth (an auth function returning truthy on an empty/unset secret, a placeholder/empty secret literal — `""`/`changeme`/`os.environ.get(...,"")` — or a warning-only secret gate on a `0.0.0.0` bind — `AAK-MCP-NOAUTH-DEFAULT`, **CWE-306 + CWE-862 / CVE-2026-48814** (incomplete fix of CVE-2026-46701)), bearer-token → session-file path traversal (an untrusted token / `Authorization` header joined into a session file path used for an existence/read check with no separator-reject or resolve-and-contain guard — `AAK-MCP-AUTH-PATHTRAVERSAL-001`, **CWE-22 / CVE-2026-52830**, fast-mcp-telegram < 0.19.1), MCP tool-argument URL SSRF (an MCP tool handler passing a caller-supplied `url`/`endpoint`/`target` argument straight into an outbound `requests`/`httpx`/`urllib`/`aiohttp` fetch with no host/scheme allow-list — `ast` parameter→fetch taint for Python, regex fallback for TS/JS/Rust — `AAK-MCP-SSRF-001`, **CWE-918 / CVE-2026-14748**, AIAnytime Awesome-MCP-Server `mcp-wiki/wiki-summary`), Serena MCP toolkit unauthenticated-dashboard RCE (`serena-agent` < 1.5.2 — an unauthenticated Flask dashboard on a fixed port reachable via DNS rebinding writes the agent's persistent memory, chained with `execute_shell_command` `shell=True` to remote code execution — `AAK-MCP-SERENA-CVE-2026-49471-001`, **CWE-306 + CWE-352 / CVE-2026-49471**, HIGH 8.3), MCP 2026-07-28 deprecated features (the `roots` / `sampling` / `logging` capabilities annotation-deprecated under the RC's new 12-month deprecation policy — flagged across config + server source so authors migrate before removal — `AAK-MCP-DEPRECATED-001..003`, **SEP-2577 / SEP-2596**), OAuth `iss`-validation gap (an authorization-code client that handles the auth response but never validates the RFC 9207 `iss` parameter, the RC's actual new OAuth requirement — `AAK-OAUTH-006`, **RFC 9207 / SEP-2468**), RFC 8707 Resource-Indicator absence (an OAuth 2.1 flow / MCP client config that never sets the `resource` parameter, so issued tokens aren't audience-bound and a token minted for one MCP server can be replayed at another — the confused-deputy / audience-confusion class; mandatory in the **ratified** MCP 2025-11-25 auth spec, independent of the 2026-07-28 RC — `AAK-OAUTH-007`, **RFC 8707 / RFC 9728 §7.4**), RFC 9728 Protected-Resource-Metadata discovery gap (a remote MCP server config that embeds a static `Authorization`/`Bearer`/`auth` credential with no `/.well-known/oauth-protected-resource` discovery path, or server source enforcing bearer auth without serving PRM — the resource-discovery arm of the 2026-07-28 auth profile — `AAK-OAUTH-008`, **RFC 9728**) |
|
|
126
|
-
| **Supply Chain** | <!-- category-count:SUPPLY_CHAIN -->
|
|
129
|
+
| **Supply Chain** | <!-- category-count:SUPPLY_CHAIN -->89<!-- /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**), and the **2026-07 MCP/agent CVE disclosure wave** — verified PyPI/npm version-pins for `litellm` < 1.84.0 (MCP auth bypass + skills-archive traversal, **CVE-2026-59822/59820**), `cline` < 3.0.30 (Hub-dashboard WS origin bypass → RCE, **CVE-2026-59723**), `mcp-text-editor` ≤ 1.0.2 (path traversal, **CVE-2026-15138**), `n8n` < 2.27.4/2.28.1 (MCP tool credential-domain bypass, **CVE-2026-59207**), `ruflo` < 3.16.3 (unauth MCP bridge RCE, **CVE-2026-59726**, CVSS 10), `@arikusi/deepseek-mcp-server` < 1.8.0 (unbound session IDs + unauth HTTP transport, **CVE-2026-55604/55605**), `mcp-server-kubernetes` < 3.9.0 (kubectl `--server` argument injection, **CVE-2026-61459**, CVSS 9.8), and `astrbot` ≤ 4.25.2 (MCP-test-endpoint SSRF, **CVE-2026-15501**) |
|
|
127
130
|
| **Tool Poisoning** | <!-- category-count:TOOL_POISONING -->29<!-- /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 |
|
|
128
131
|
| **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) |
|
|
129
132
|
| **Agent Config** | <!-- category-count:AGENT_CONFIG -->18<!-- /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 |
|
|
@@ -132,10 +135,10 @@ agent-audit-kit scan examples/vulnerable-configs/04-hook-exfiltration/
|
|
|
132
135
|
| **Taint Analysis** | <!-- category-count:TAINT_ANALYSIS -->13<!-- /category-count --> | `@tool` param flows to shell/eval/SQL/SSRF/file/deserialization sinks (Python AST), `load_prompt()` user-path reachability, transport-flip MITM (DocsGPT + GPT-Researcher). SQL-injection sinks (`AAK-TAINT-005`) now detected in TypeScript/JS MCP servers too — interpolated/concatenated `.query()`/`.execute()`, `knex.raw`, Prisma `$queryRawUnsafe` — matching the Python + Rust scanners (OX MCP-SDK disclosure class). LLM-generated SQL executed on an RCE-capable DB role (`AAK-LLM-SQL-RCE-001`, **CVE-2026-25879**) — model output reaching `cursor.execute`/`text(...)`/`.query()` as the query itself with no allow-list, plus superuser/`COPY ... FROM PROGRAM`/`xp_cmdshell`/`FILE`-privilege connection roles that turn SQL injection into shell |
|
|
133
136
|
| **Transport Security** | <!-- category-count:TRANSPORT_SECURITY -->12<!-- /category-count --> | HTTP endpoints, TLS disabled, deprecated SSE, tokens in URL query strings, transport body-size limits (CVE-2026-39313), SSRF redirect bypass (CVE-2026-41481), DNS-rebinding (CVE-2025-66414/66416, CVE-2026-35568/35577) |
|
|
134
137
|
| **Legal Compliance** | <!-- category-count:LEGAL_COMPLIANCE -->12<!-- /category-count --> | Copyleft licenses (AGPL/SSPL), missing licenses, DMCA-flagged packages, India PII surface, US-state consumer privacy (Alabama HB 351, Tennessee SB 1580), Singapore Agentic AI, healthcare AI triggers, EU AI Act Article 15 multilingual-eval coverage advisory (Annex III high-risk binding 2027-12-02, Annex I 2028-08-02 — AI Omnibus) |
|
|
135
|
-
| **Trust Boundaries** | <!-- category-count:TRUST_BOUNDARY -->
|
|
138
|
+
| **Trust Boundaries** | <!-- category-count:TRUST_BOUNDARY -->15<!-- /category-count --> | `enableAllProjectMcpServers`, API URL redirects, wildcard permissions, missing deny rules, missing allowlists, Claude Code folder-trust bypass (CVE-2026-40068) |
|
|
136
139
|
| **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`) |
|
|
137
140
|
|
|
138
|
-
**<!-- rule-count:total -->
|
|
141
|
+
**<!-- rule-count:total -->303<!-- /rule-count --> rules total.** Every finding includes severity, evidence, remediation, OWASP references, Adversa references, and CVE links where applicable.
|
|
139
142
|
|
|
140
143
|
### MCP Server Card scanning (SEP-1649)
|
|
141
144
|
|
|
@@ -286,7 +289,7 @@ permissions:
|
|
|
286
289
|
|
|
287
290
|
steps:
|
|
288
291
|
- uses: actions/checkout@v4
|
|
289
|
-
- uses: sattyamjjain/agent-audit-kit@v0.3.
|
|
292
|
+
- uses: sattyamjjain/agent-audit-kit@v0.3.78
|
|
290
293
|
id: scan
|
|
291
294
|
with:
|
|
292
295
|
fail-on: high
|
|
@@ -374,15 +377,15 @@ cross-reference, not a head-to-head benchmark.
|
|
|
374
377
|
| ASI | Title | # rules |
|
|
375
378
|
| --- | --- | --- |
|
|
376
379
|
| **ASI01** | Goal Hijack | 13 |
|
|
377
|
-
| **ASI02** | Tool Misuse |
|
|
380
|
+
| **ASI02** | Tool Misuse | 42 |
|
|
378
381
|
| **ASI03** | Memory Poisoning | 68 |
|
|
379
|
-
| **ASI04** | Identity & Privilege Abuse |
|
|
382
|
+
| **ASI04** | Identity & Privilege Abuse | 64 |
|
|
380
383
|
| **ASI05** | Cascading Failures | 42 |
|
|
381
|
-
| **ASI06** | Unauthorized Capability Acquisition |
|
|
384
|
+
| **ASI06** | Unauthorized Capability Acquisition | 44 |
|
|
382
385
|
| **ASI07** | Plan Injection | 9 |
|
|
383
386
|
| **ASI08** | Agent Communication Poisoning | 5 |
|
|
384
387
|
| **ASI09** | Resource Abuse | 18 |
|
|
385
|
-
| **ASI10** | Supply-Chain |
|
|
388
|
+
| **ASI10** | Supply-Chain | 21 |
|
|
386
389
|
<!-- owasp-coverage:end -->
|
|
387
390
|
|
|
388
391
|
</details>
|
|
@@ -420,7 +423,7 @@ See [`docs/comparisons.md`](docs/comparisons.md) for a fully-sourced version. Ve
|
|
|
420
423
|
| Feature | AgentAuditKit | Microsoft AGT | Snyk Agent Scan | Semgrep Multimodal |
|
|
421
424
|
|---------|:---:|:---:|:---:|:---:|
|
|
422
425
|
| Scope | Static scanner + compliance PDFs | Runtime governance | Static + runtime | Multimodal SAST |
|
|
423
|
-
| Detection rules (static) | **<!-- rule-count:total -->
|
|
426
|
+
| Detection rules (static) | **<!-- rule-count:total -->303<!-- /rule-count -->** | Runtime policies, not rules | ~30 | LLM-assisted |
|
|
424
427
|
| OWASP Agentic 10/10 | **Yes** | Yes | Partial | Partial |
|
|
425
428
|
| OWASP MCP 10/10 | **Yes** | No (runtime-focused) | No | No |
|
|
426
429
|
| 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 (303 rules, OWASP Agentic Top 10 + MCP Top 10)'
|
|
3
3
|
author: 'sattyamjjain'
|
|
4
4
|
|
|
5
5
|
branding:
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"""AgentAuditKit — Security scanner for MCP-connected AI agent pipelines."""
|
|
2
2
|
from __future__ import annotations
|
|
3
3
|
|
|
4
|
-
__version__ = "0.3.
|
|
5
|
-
RULE_COUNT =
|
|
6
|
-
SCANNER_COUNT =
|
|
4
|
+
__version__ = "0.3.78"
|
|
5
|
+
RULE_COUNT = 303
|
|
6
|
+
SCANNER_COUNT = 90
|
|
7
7
|
# Distinct public MCP server configs in the State-of-MCP-2026 corpus, measured from
|
|
8
8
|
# research/state-of-mcp-2026/results.json (distinct_configs_scanned), fetched
|
|
9
9
|
# 2026-07-26. Published in REPORT.md/PREVALENCE.md/etc.; guarded by
|
|
@@ -98,6 +98,7 @@ _OPTIONAL_SCANNERS: list[tuple[str, str, list[str]]] = [
|
|
|
98
98
|
("mcp_env_placeholder_exfil", "MCP ${VAR} env-placeholder secret exfiltration (CVE-2026-32625)", []),
|
|
99
99
|
("mcp_http_noauth_server", "Unauthenticated MCP HTTP/SSE server on 0.0.0.0 / wildcard CORS", []),
|
|
100
100
|
("ufo_mobile_mcp", "Microsoft UFO mobile MCP servers unauthenticated on 8020/8021 (CVE-2026-73296)", []),
|
|
101
|
+
("policy_truncation", "Deny policy evaluated on a truncated copy of the executed value (CVE-2026-73614 class)", []),
|
|
101
102
|
("llm_sql_rce", "LLM-generated SQL on an RCE-capable DB role (CVE-2026-25879)", []),
|
|
102
103
|
("skill_untrusted_exec_path", "Untrusted-search-path exec override in skill/install flow (CVE-2026-53819)", []),
|
|
103
104
|
("argv_toctou", "Argv rebuilt after allowlist approval before spawn (CVE-2026-53822)", []),
|