agent-audit-kit 0.3.41__tar.gz → 0.3.46__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (682) hide show
  1. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/workflows/badge-ox-coverage.yml +1 -1
  2. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/workflows/ci.yml +1 -1
  3. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/workflows/codeql.yml +3 -3
  4. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/workflows/coverage-page.yml +1 -1
  5. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/workflows/cve-watcher.yml +1 -1
  6. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/workflows/mcp-security-index.yml +1 -1
  7. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/workflows/release.yml +2 -2
  8. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/workflows/scorecard.yml +1 -1
  9. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/workflows/sync-repo-metadata.yml +1 -1
  10. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/workflows/sync-rule-count.yml +1 -1
  11. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/CHANGELOG.cves.md +6 -0
  12. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/CHANGELOG.md +167 -0
  13. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/CLAUDE.md +6 -6
  14. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/PKG-INFO +83 -15
  15. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/README.md +82 -14
  16. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/action.yml +1 -1
  17. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/__init__.py +3 -3
  18. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/engine.py +2 -0
  19. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/models.py +1 -0
  20. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/rules/builtin.py +167 -6
  21. agent_audit_kit-0.3.46/agent_audit_kit/scanners/mcp_auth_pathtraversal.py +347 -0
  22. agent_audit_kit-0.3.46/agent_audit_kit/scanners/mcp_server_card.py +298 -0
  23. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/stdio_injection.py +6 -4
  24. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/supply_chain.py +64 -0
  25. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/benchmarks/crawler.py +119 -20
  26. agent_audit_kit-0.3.46/benchmarks/determinism/RESULTS.md +27 -0
  27. agent_audit_kit-0.3.46/benchmarks/determinism/run.py +208 -0
  28. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/benchmarks/sources.py +34 -0
  29. agent_audit_kit-0.3.46/docs/DISTRIBUTION-CHECKLIST.md +133 -0
  30. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/ci-cd.md +2 -2
  31. agent_audit_kit-0.3.46/docs/coverage/owasp-agentic-top10.md +26 -0
  32. agent_audit_kit-0.3.46/docs/coverage/owasp-mcp-top10.md +22 -0
  33. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/getting-started.md +2 -2
  34. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/index.md +1 -1
  35. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/launch/hn.md +2 -2
  36. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/launch/reddit.md +3 -3
  37. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/launch/x-thread.md +2 -2
  38. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/owasp-agentic-coverage.md +4 -4
  39. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/presets/mcp-ox-2026-04.md +1 -1
  40. agent_audit_kit-0.3.46/docs/rules/AAK-MCP-AUTH-PATHTRAVERSAL-001.md +98 -0
  41. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules/index.md +6 -0
  42. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/launch/awesome-list-prs/awesome-opensource-security.md +2 -2
  43. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/launch/awesome-list-prs/awesome-security.md +2 -2
  44. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/launch/blog-50-mcp-servers.md +2 -2
  45. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/launch/owasp-outreach.md +4 -4
  46. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/launch/state-of-mcp-security-2026.md +13 -9
  47. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/public/owasp-agentic-coverage.json +55 -8
  48. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/pyproject.toml +1 -1
  49. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/requirements-lock.txt +3 -3
  50. agent_audit_kit-0.3.46/research/state-of-mcp-2026/PREVALENCE.md +204 -0
  51. agent_audit_kit-0.3.46/research/state-of-mcp-2026/REPORT.md +36 -0
  52. agent_audit_kit-0.3.46/research/state-of-mcp-2026/results.json +166 -0
  53. agent_audit_kit-0.3.46/research/state-of-mcp-2026/run_report.py +218 -0
  54. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/rules.json +146 -3
  55. agent_audit_kit-0.3.46/scripts/gen_coverage.py +187 -0
  56. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/site/coverage/index.html +2 -2
  57. agent_audit_kit-0.3.46/tests/fixtures/kong_konnect/.mcp.json +9 -0
  58. agent_audit_kit-0.3.46/tests/fixtures/server_cards/clean.server-card.json +14 -0
  59. agent_audit_kit-0.3.46/tests/fixtures/server_cards/poisoned.server-card.json +18 -0
  60. agent_audit_kit-0.3.46/tests/test_coverage_tables.py +56 -0
  61. agent_audit_kit-0.3.46/tests/test_determinism_benchmark.py +38 -0
  62. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_flowise.py +15 -1
  63. agent_audit_kit-0.3.46/tests/test_kong_konnect_cve_2026_13341.py +68 -0
  64. agent_audit_kit-0.3.46/tests/test_mcp_auth_pathtraversal.py +208 -0
  65. agent_audit_kit-0.3.46/tests/test_mcp_server_card.py +132 -0
  66. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_phase5.py +1 -1
  67. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.agent-audit-kit.yml +0 -0
  68. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.claude/auto-memory/config.json +0 -0
  69. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.editorconfig +0 -0
  70. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/FUNDING.yml +0 -0
  71. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  72. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  73. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  74. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/dependabot.yml +0 -0
  75. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/workflows/docker-nightly.yml +0 -0
  76. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.github/workflows/self-scan.yml +0 -0
  77. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.gitignore +0 -0
  78. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.pre-commit-config.yaml +0 -0
  79. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/.pre-commit-hooks.yaml +0 -0
  80. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/CLAUDE_PROMPT.md +0 -0
  81. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/CODE_OF_CONDUCT.md +0 -0
  82. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/CONTRIBUTING.md +0 -0
  83. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/DEEP_ANALYSIS.md +0 -0
  84. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/Dockerfile +0 -0
  85. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/LICENSE +0 -0
  86. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/ROADMAP_2026.md +0 -0
  87. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/SECURITY.md +0 -0
  88. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/advisories.py +0 -0
  89. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/autofix/__init__.py +0 -0
  90. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/autofix/langgraph_toolnode.py +0 -0
  91. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/bundle.py +0 -0
  92. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/checks/__init__.py +0 -0
  93. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/checks/economic_drift.py +0 -0
  94. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/checks/openclaw.py +0 -0
  95. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/cli.py +0 -0
  96. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/cli_modules/__init__.py +0 -0
  97. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/cli_modules/rule_lint.py +0 -0
  98. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/corpus/__init__.py +0 -0
  99. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/corpus/manifest.py +0 -0
  100. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/coverage.py +0 -0
  101. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/data/aivss-v08-defaults.json +0 -0
  102. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/data/fhi_universal_suffixes.txt +0 -0
  103. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/data/ipi_wild_payloads_2026_04.json +0 -0
  104. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/data/ox-cve-manifest.json +0 -0
  105. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/data/prisma-airs-aak-map.json +0 -0
  106. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/data/prisma-airs-catalog.json +0 -0
  107. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/data/toxic_flow_pairs.yml +0 -0
  108. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/data/vuln_db.json +0 -0
  109. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/diff.py +0 -0
  110. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/discovery.py +0 -0
  111. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/feeds/__init__.py +0 -0
  112. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/fix.py +0 -0
  113. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/ide/__init__.py +0 -0
  114. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/ide/lsp_diag.py +0 -0
  115. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/integrations/__init__.py +0 -0
  116. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/integrations/notify.py +0 -0
  117. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/llm_scan.py +0 -0
  118. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/output/__init__.py +0 -0
  119. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/output/aicm.py +0 -0
  120. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/output/compliance.py +0 -0
  121. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/output/console.py +0 -0
  122. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/output/json_report.py +0 -0
  123. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/output/owasp_report.py +0 -0
  124. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/output/pdf_report.py +0 -0
  125. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/output/pr_summary.py +0 -0
  126. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/output/sarif.py +0 -0
  127. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/output/sbom.py +0 -0
  128. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/parity/__init__.py +0 -0
  129. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/pinning.py +0 -0
  130. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/presets/__init__.py +0 -0
  131. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/presets/mcp-ox-2026-04.yaml +0 -0
  132. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/proxy/__init__.py +0 -0
  133. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/proxy/interceptor.py +0 -0
  134. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/remediation/__init__.py +0 -0
  135. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/remediation/engine.py +0 -0
  136. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/rules/__init__.py +0 -0
  137. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/sanitizers/__init__.py +0 -0
  138. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/sanitizers/crewai.py +0 -0
  139. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/sanitizers/deepseek.py +0 -0
  140. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/sarif/__init__.py +0 -0
  141. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/sarif/diff.py +0 -0
  142. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/__init__.py +0 -0
  143. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/_helpers.py +0 -0
  144. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/a2a_protocol.py +0 -0
  145. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/agent_config.py +0 -0
  146. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/agent_harness_shared_state.py +0 -0
  147. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/argv_toctou.py +0 -0
  148. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/crewai_rce_chain.py +0 -0
  149. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/deepseek_v4_tool_injection.py +0 -0
  150. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/dns_rebind.py +0 -0
  151. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/docsgpt_transport_flip.py +0 -0
  152. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/eu_ai_act_art15_locale.py +0 -0
  153. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/gha_hardening.py +0 -0
  154. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/gpt_researcher_transport_flip.py +0 -0
  155. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/healthcare_ai.py +0 -0
  156. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/hook_injection.py +0 -0
  157. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/hook_rce.py +0 -0
  158. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/india_pii.py +0 -0
  159. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/ipi_wild_corpus.py +0 -0
  160. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/langchain_prompt_loader.py +0 -0
  161. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/langchain_vuln.py +0 -0
  162. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/langgraph_toolnode.py +0 -0
  163. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/legal_compliance.py +0 -0
  164. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/llm_sql_rce.py +0 -0
  165. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/log_injection.py +0 -0
  166. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/log_token_leak.py +0 -0
  167. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/marketplace_manifest.py +0 -0
  168. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_atlassian.py +0 -0
  169. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_auth_patterns.py +0 -0
  170. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_config.py +0 -0
  171. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_env_placeholder_exfil.py +0 -0
  172. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_fhi.py +0 -0
  173. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_http_noauth_server.py +0 -0
  174. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_inspector_cve.py +0 -0
  175. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_marketplace_fetch.py +0 -0
  176. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_middleware.py +0 -0
  177. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_noauth_default.py +0 -0
  178. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_sampling_capability.py +0 -0
  179. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_sdk_hardening.py +0 -0
  180. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_server_auth.py +0 -0
  181. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_stateless_migration.py +0 -0
  182. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_stdio_launcher.py +0 -0
  183. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_stdio_params.py +0 -0
  184. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_tasks.py +0 -0
  185. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_tool_unsafe_eval.py +0 -0
  186. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_toolgate_asymmetry.py +0 -0
  187. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/mcp_tunnel.py +0 -0
  188. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/metis_pomdp.py +0 -0
  189. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/neo4j_cve.py +0 -0
  190. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/oauth_misconfig.py +0 -0
  191. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/oauth_surface.py +0 -0
  192. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/openapi_smells.py +0 -0
  193. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/openclaw_privesc.py +0 -0
  194. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/pin_drift.py +0 -0
  195. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/project_deal_drift.py +0 -0
  196. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/prtitle_ipi.py +0 -0
  197. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/routines.py +0 -0
  198. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/rust_pattern_scan.py +0 -0
  199. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/rust_scan.py +0 -0
  200. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/sandbox_self_disable.py +0 -0
  201. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/secret_exposure.py +0 -0
  202. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/shared_resource_authz.py +0 -0
  203. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/skill_lifecycle_attribution.py +0 -0
  204. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/skill_poisoning.py +0 -0
  205. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/skill_untrusted_exec_path.py +0 -0
  206. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/social_agent_hijack.py +0 -0
  207. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/splunk_mcp_config.py +0 -0
  208. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/ssrf_patterns.py +0 -0
  209. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/ssrf_redirect.py +0 -0
  210. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/ssrf_toctou.py +0 -0
  211. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/stainless_lineage.py +0 -0
  212. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/state_privacy.py +0 -0
  213. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/taint_analysis.py +0 -0
  214. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/tool_poisoning.py +0 -0
  215. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/toxic_flow.py +0 -0
  216. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/transport_limits.py +0 -0
  217. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/transport_security.py +0 -0
  218. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/trust_boundary.py +0 -0
  219. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/typescript_pattern_scan.py +0 -0
  220. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scanners/typescript_scan.py +0 -0
  221. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scoring/__init__.py +0 -0
  222. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scoring/aivss.py +0 -0
  223. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/scoring/aivss_schema.py +0 -0
  224. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/translators/__init__.py +0 -0
  225. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/translators/pipelock.py +0 -0
  226. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/translators/prisma_airs.py +0 -0
  227. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/verification.py +0 -0
  228. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/vuln_db.py +0 -0
  229. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/agent_audit_kit/watch.py +0 -0
  230. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/benchmarks/README.md +0 -0
  231. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/benchmarks/index_builder.py +0 -0
  232. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/benchmarks/results-2026-06-13.json +0 -0
  233. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/benchmarks/run_benchmark.sh +0 -0
  234. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/benchmarks/sample_configs/sample_01_clean.json +0 -0
  235. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/benchmarks/sample_configs/sample_02_secrets.json +0 -0
  236. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/benchmarks/sample_configs/sample_03_no_auth.json +0 -0
  237. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/benchmarks/sample_configs/sample_04_shell_injection.json +0 -0
  238. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/benchmarks/sample_configs/sample_05_mixed.json +0 -0
  239. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/ci/gitlab/agent-audit-kit.gitlab-ci.yml +0 -0
  240. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/CNAME +0 -0
  241. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/RELEASING.md +0 -0
  242. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/azure-pipelines.md +0 -0
  243. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/blog/state-of-mcp-security-template.md +0 -0
  244. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/circleci.md +0 -0
  245. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/comparison-gitlab-agentic-sast.md +0 -0
  246. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/comparison.md +0 -0
  247. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/comparisons.md +0 -0
  248. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/disclosure-policy.md +0 -0
  249. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/gitlab-ci.md +0 -0
  250. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/launch/CHECKLIST.md +0 -0
  251. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/launch/github-verified-creator-application.md +0 -0
  252. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/launch/owasp-reference-tool-submission.md +0 -0
  253. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/launch/press.md +0 -0
  254. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/launch/release-notes-v0.3.0.md +0 -0
  255. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/metrics.md +0 -0
  256. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/notes/adjudicator-pattern.md +0 -0
  257. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/owasp-mapping.md +0 -0
  258. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/plans/2026-04-21-v0.3.3-design.md +0 -0
  259. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/research-log.md +0 -0
  260. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/roadmap/ox-mcp-2026-05-01-batch.md +0 -0
  261. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rule-schema.md +0 -0
  262. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules/AAK-AZURE-MCP-001.md +0 -0
  263. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules/AAK-AZURE-MCP-NOAUTH-001.md +0 -0
  264. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules/AAK-LANGCHAIN-SSRF-REDIR-001.md +0 -0
  265. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules/AAK-LMDEPLOY-VL-SSRF-001.md +0 -0
  266. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules/AAK-MCP-MARKETPLACE-CONFIG-FETCH-001.md +0 -0
  267. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules/AAK-MCP-STDIO-CMD-INJ-001.md +0 -0
  268. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules/AAK-MCP-STDIO-CMD-INJ-002.md +0 -0
  269. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules/AAK-MCP-STDIO-CMD-INJ-003.md +0 -0
  270. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules/AAK-MCP-STDIO-CMD-INJ-004.md +0 -0
  271. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules/AAK-SPLUNK-MCP-TOKEN-LEAK-001.md +0 -0
  272. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules/AAK-SSRF-TOCTOU-001.md +0 -0
  273. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules/AAK-TOXICFLOW-001.md +0 -0
  274. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/rules.md +0 -0
  275. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/docs/spec/sarif-runtime-context.md +0 -0
  276. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/editors/zed/README.md +0 -0
  277. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/editors/zed/extension.toml +0 -0
  278. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/entrypoint.sh +0 -0
  279. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/README.md +0 -0
  280. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/case-studies/damn-vulnerable-mcp/README.md +0 -0
  281. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/case-studies/damn-vulnerable-mcp/configs/dvmcp-inspired.mcp.json +0 -0
  282. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/case-studies/damn-vulnerable-mcp/configs/dvmcp-settings.json +0 -0
  283. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/case-studies/damn-vulnerable-mcp/scan-results.json +0 -0
  284. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/case-studies/damn-vulnerable-mcp/scan-results.sarif +0 -0
  285. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/ci-integration/README.md +0 -0
  286. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/ci-integration/docker-one-liner.sh +0 -0
  287. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/ci-integration/github-actions-sarif.yml +0 -0
  288. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/ci-integration/gitlab-ci-scan.yml +0 -0
  289. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/ci-integration/pre-commit-config.yaml +0 -0
  290. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/run-all-examples.sh +0 -0
  291. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/01-no-auth-remote/.mcp.json +0 -0
  292. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/01-no-auth-remote/expected-findings.json +0 -0
  293. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/02-shell-injection/.mcp.json +0 -0
  294. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/02-shell-injection/expected-findings.json +0 -0
  295. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/03-hardcoded-secrets/.gitignore +0 -0
  296. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/03-hardcoded-secrets/.mcp.json +0 -0
  297. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/03-hardcoded-secrets/expected-findings.json +0 -0
  298. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/04-hook-exfiltration/.claude/settings.json +0 -0
  299. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/04-hook-exfiltration/expected-findings.json +0 -0
  300. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/05-trust-boundary-violations/.claude/settings.json +0 -0
  301. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/05-trust-boundary-violations/.mcp.json +0 -0
  302. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/05-trust-boundary-violations/expected-findings.json +0 -0
  303. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/06-tool-poisoning/.mcp.json +0 -0
  304. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/06-tool-poisoning/expected-findings.json +0 -0
  305. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/07-tainted-tool-function/expected-findings.json +0 -0
  306. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/07-tainted-tool-function/server.py +0 -0
  307. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/08-transport-insecurity/.mcp.json +0 -0
  308. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/08-transport-insecurity/expected-findings.json +0 -0
  309. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/09-a2a-insecure-agent/agent-card.json +0 -0
  310. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/09-a2a-insecure-agent/expected-findings.json +0 -0
  311. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/10-supply-chain-risks/.mcp.json +0 -0
  312. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/10-supply-chain-risks/expected-findings.json +0 -0
  313. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/10-supply-chain-risks/package.json +0 -0
  314. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/11-legal-compliance/expected-findings.json +0 -0
  315. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/11-legal-compliance/package.json +0 -0
  316. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/11-legal-compliance/subproject/package.json +0 -0
  317. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/examples/vulnerable-configs/README.md +0 -0
  318. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/launch/MARKET-RESEARCH-2026-04-12.md +0 -0
  319. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/launch/demo.cast +0 -0
  320. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/mkdocs.yml +0 -0
  321. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/public/badges/ox-coverage.json +0 -0
  322. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/public/corpora/manifest.json +0 -0
  323. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/releases/v0.3.10.md +0 -0
  324. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/releases/v0.3.5.md +0 -0
  325. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/releases/v0.3.6.md +0 -0
  326. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/releases/v0.3.7.md +0 -0
  327. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/releases/v0.3.8.md +0 -0
  328. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/releases/v0.3.9.md +0 -0
  329. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/schema/ox-cve-manifest.schema.json +0 -0
  330. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/scripts/backfill_cve_property.py +0 -0
  331. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/scripts/build_coverage_page.py +0 -0
  332. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/scripts/close_duplicate_cve_issues.py +0 -0
  333. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/scripts/cve_watcher.py +0 -0
  334. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/scripts/gen_owasp_coverage.py +0 -0
  335. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/scripts/generate_lockfile.py +0 -0
  336. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/scripts/install-pre-commit.sh +0 -0
  337. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/scripts/sync_repo_metadata.py +0 -0
  338. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/scripts/sync_rule_count.py +0 -0
  339. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/scripts/sync_scanner_count.py +0 -0
  340. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/scripts/watch_csa_mcp_baseline.py +0 -0
  341. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/site/coverage/ox.json +0 -0
  342. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/site/coverage/prisma-airs.json +0 -0
  343. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/conftest.py +0 -0
  344. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/LICENSES.md +0 -0
  345. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/clean_mcp.json +0 -0
  346. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/clean_settings.json +0 -0
  347. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/crewai/safe/full_chain.py +0 -0
  348. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/crewai/vulnerable/full_chain.py +0 -0
  349. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/a2a_2026/vulnerable_card.json +0 -0
  350. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/comment-and-control-2026-04-25/patched/review_agent.py +0 -0
  351. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/comment-and-control-2026-04-25/vulnerable/review_agent.py +0 -0
  352. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2025-65720-gpt-researcher/config-safe-rejected/.mcp.json +0 -0
  353. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2025-65720-gpt-researcher/config-unsafe/.mcp.json +0 -0
  354. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2025-65720-gpt-researcher/pin-vulnerable-git/package.json +0 -0
  355. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2025-65720-gpt-researcher/pin-vulnerable-pypi/requirements.txt +0 -0
  356. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2025-66335/patched/requirements.txt +0 -0
  357. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2025-66335/vulnerable/requirements.txt +0 -0
  358. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-20205/patched-splunk-pin/requirements.txt +0 -0
  359. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-20205/redacted-token-log/server.py +0 -0
  360. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-20205/vulnerable-splunk-pin/requirements.txt +0 -0
  361. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-20205/vulnerable-token-log/server.py +0 -0
  362. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-20205-config/patched-yaml/splunk-mcp.yaml +0 -0
  363. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-20205-config/vulnerable-inputs/inputs.conf +0 -0
  364. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-20205-config/vulnerable-yaml/splunk-mcp.yaml +0 -0
  365. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-23744-mcp-inspector/vendored-fork/vendor/mcpjam-inspector/server.ts +0 -0
  366. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-26015-docsgpt/config-safe-no-override/.mcp.json +0 -0
  367. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-26015-docsgpt/config-safe-rejected/.mcp.json +0 -0
  368. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-26015-docsgpt/config-unsafe/.mcp.json +0 -0
  369. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-26015-docsgpt/pin-safe/package.json +0 -0
  370. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-26015-docsgpt/pin-vulnerable/package.json +0 -0
  371. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-26015-docsgpt/pin-vulnerable-git/package.json +0 -0
  372. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-26030-semantic-kernel/pin-safe/requirements.txt +0 -0
  373. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-26030-semantic-kernel/pin-safe-floor/requirements.txt +0 -0
  374. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-26030-semantic-kernel/pin-vulnerable/requirements.txt +0 -0
  375. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-27825-atlassian/patched-pin/requirements.txt +0 -0
  376. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-27825-atlassian/vulnerable/agent.py +0 -0
  377. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-30615/patched/py_argv_allowlist.py +0 -0
  378. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-30615/vulnerable/py_os_system_stdin.py +0 -0
  379. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-30615/vulnerable/py_subprocess_shell.py +0 -0
  380. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-30615/vulnerable/ts_execa_shell.ts +0 -0
  381. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-30623-litellm/patched/requirements-floor.txt +0 -0
  382. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-30623-litellm/patched/requirements.txt +0 -0
  383. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-30623-litellm/vulnerable/requirements.txt +0 -0
  384. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-32211/patched-with-auth/.mcp.json +0 -0
  385. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-32211/vulnerable-no-auth/.mcp.json +0 -0
  386. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-32211-server/pyproject.toml +0 -0
  387. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-32211-server/server.py +0 -0
  388. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-33032/patched/router.go +0 -0
  389. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-33032/vulnerable/router.go +0 -0
  390. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-33032/vulnerable/server.py +0 -0
  391. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-33032/vulnerable/server.ts +0 -0
  392. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-33626/patched-pin/requirements.txt +0 -0
  393. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-33626/vulnerable/pipeline.py +0 -0
  394. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-39313/length-capped/http.ts +0 -0
  395. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-39313/patched/package.json +0 -0
  396. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-39313/vulnerable/http.ts +0 -0
  397. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-39313/vulnerable/package.json +0 -0
  398. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-40068-claudecode/pin-safe/package.json +0 -0
  399. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-40068-claudecode/pin-vulnerable/package.json +0 -0
  400. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-40933/vulnerable/flow.json +0 -0
  401. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-41481/patched-no-redirect/server.py +0 -0
  402. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-41481/patched-pin/requirements.txt +0 -0
  403. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-41481/vulnerable-pin/requirements.txt +0 -0
  404. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-41481/vulnerable-redirect/server.py +0 -0
  405. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-41488/patched-pin/requirements.txt +0 -0
  406. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-41488/patched-pinned/server.py +0 -0
  407. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-41488/vulnerable-pin/requirements.txt +0 -0
  408. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-41488/vulnerable-toctou/server.py +0 -0
  409. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-44717-mcp-calculate-server/pin-safe/requirements.txt +0 -0
  410. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-44717-mcp-calculate-server/pin-safe-floor/requirements.txt +0 -0
  411. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-44717-mcp-calculate-server/pin-vulnerable/requirements.txt +0 -0
  412. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-7061-chatgpt-mcp/safe/package.json +0 -0
  413. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-7061-chatgpt-mcp/vulnerable-git/package.json +0 -0
  414. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-7061-chatgpt-mcp/vulnerable-shorthand/package.json +0 -0
  415. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-7591-astro-mcp/source-safe/no_import.ts +0 -0
  416. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-7591-astro-mcp/source-safe/parametrized.ts +0 -0
  417. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-7591-astro-mcp/source-safe/tagged_template.ts +0 -0
  418. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-7591-astro-mcp/source-unsafe/index.ts +0 -0
  419. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/cve-2026-7591-astro-mcp/vulnerable/package.json +0 -0
  420. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/dns-rebind-sdk-class/apollo-patched/package.json +0 -0
  421. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/dns-rebind-sdk-class/apollo-vulnerable/package.json +0 -0
  422. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/dns-rebind-sdk-class/java-patched/pom.xml +0 -0
  423. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/dns-rebind-sdk-class/java-vulnerable/pom.xml +0 -0
  424. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/dns-rebind-sdk-class/python-patched/requirements.txt +0 -0
  425. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/dns-rebind-sdk-class/python-pattern-guarded/requirements.txt +0 -0
  426. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/dns-rebind-sdk-class/python-pattern-guarded/server.py +0 -0
  427. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/dns-rebind-sdk-class/python-pattern-unguarded/requirements.txt +0 -0
  428. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/dns-rebind-sdk-class/python-pattern-unguarded/server.py +0 -0
  429. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/dns-rebind-sdk-class/python-vulnerable/requirements.txt +0 -0
  430. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/healthcare_ai/safe_skill.md +0 -0
  431. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/healthcare_ai/vulnerable_skill.md +0 -0
  432. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/hook_rce/safe_settings.json +0 -0
  433. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/hook_rce/vulnerable_settings.json +0 -0
  434. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/india_pii/safe.txt +0 -0
  435. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/india_pii/vulnerable.txt +0 -0
  436. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/langchain/safe_requirements.txt +0 -0
  437. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/langchain/vulnerable_prompt.py +0 -0
  438. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/langchain/vulnerable_requirements.txt +0 -0
  439. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/marketplace/safe.json +0 -0
  440. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/marketplace/vulnerable.json +0 -0
  441. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/mcp_auth/safe_server.py +0 -0
  442. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/mcp_auth/vulnerable_server.py +0 -0
  443. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/oauth/safe.py +0 -0
  444. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/oauth/vulnerable.py +0 -0
  445. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/ox-mcp-stdio-class/patched_java.java +0 -0
  446. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/ox-mcp-stdio-class/patched_py.py +0 -0
  447. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/ox-mcp-stdio-class/patched_rust.rs +0 -0
  448. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/ox-mcp-stdio-class/patched_ts.ts +0 -0
  449. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/ox-mcp-stdio-class/vulnerable_java.java +0 -0
  450. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/ox-mcp-stdio-class/vulnerable_py.py +0 -0
  451. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/ox-mcp-stdio-class/vulnerable_rust.rs +0 -0
  452. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/ox-mcp-stdio-class/vulnerable_ts.ts +0 -0
  453. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/routines/safe.json +0 -0
  454. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/routines/vulnerable.json +0 -0
  455. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/skills/safe.md +0 -0
  456. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/skills/vulnerable.md +0 -0
  457. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/ssrf/safe.py +0 -0
  458. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/ssrf/vulnerable.py +0 -0
  459. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/state_privacy/safe_privacy.md +0 -0
  460. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/state_privacy/vulnerable_privacy.md +0 -0
  461. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/tasks/safe.py +0 -0
  462. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/cves/tasks/vulnerable.py +0 -0
  463. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/deepseek/safe/agent.py +0 -0
  464. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/deepseek/vulnerable/agent.py +0 -0
  465. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/env_with_secrets +0 -0
  466. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/eu_ai_act_art15_locale/documented_risk/.agent-audit-kit.yml +0 -0
  467. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/eu_ai_act_art15_locale/documented_risk/agent.yaml +0 -0
  468. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/eu_ai_act_art15_locale/multilingual_en_only/agent.yaml +0 -0
  469. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/eu_ai_act_art15_locale/multilingual_en_only/evals/welcome.en.yaml +0 -0
  470. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/eu_ai_act_art15_locale/multilingual_internal_only/agent.yaml +0 -0
  471. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/eu_ai_act_art15_locale/multilingual_with_coverage/agent.yaml +0 -0
  472. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/eu_ai_act_art15_locale/multilingual_with_coverage/evals/welcome.de.yaml +0 -0
  473. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/eu_ai_act_art15_locale/multilingual_with_coverage/evals/welcome.en.yaml +0 -0
  474. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/eu_ai_act_art15_locale/multilingual_with_coverage/evals/welcome.fr.yaml +0 -0
  475. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/eu_ai_act_art15_locale/single_locale/agent.yaml +0 -0
  476. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/harness_shared_state/safe_multi_agent.py +0 -0
  477. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/harness_shared_state/unsafe_multi_agent.py +0 -0
  478. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ipi-wild-2026-04-24/poisoned_template.md +0 -0
  479. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/mcp-fhi/clean/server.py +0 -0
  480. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/mcp-fhi/vulnerable/server.py +0 -0
  481. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-2026-04-15/documented-risk/.agent-audit-kit.yml +0 -0
  482. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-2026-04-15/documented-risk/requirements.txt +0 -0
  483. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-2026-04-15/documented-risk/server.py +0 -0
  484. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-2026-04-15/python/sanitized/requirements.txt +0 -0
  485. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-2026-04-15/python/sanitized/server.py +0 -0
  486. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-2026-04-15/python/vulnerable/requirements.txt +0 -0
  487. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-2026-04-15/python/vulnerable/server.py +0 -0
  488. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-2026-04-15/typescript/sanitized/package.json +0 -0
  489. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-2026-04-15/typescript/sanitized/server.ts +0 -0
  490. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-2026-04-15/typescript/vulnerable/package.json +0 -0
  491. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-2026-04-15/typescript/vulnerable/server.ts +0 -0
  492. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-marketplace-fetch/patched.py +0 -0
  493. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-marketplace-fetch/vulnerable.py +0 -0
  494. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/ox-mcp-marketplace-fetch/vulnerable.ts +0 -0
  495. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/incidents/vercel-2026-04-19/app.yaml +0 -0
  496. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/langchain_prompt_loader/constant_safe.py +0 -0
  497. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/langchain_prompt_loader/user_path_unsafe.py +0 -0
  498. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/langchain_prompt_loader/validated_safe.py +0 -0
  499. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/langgraph/safe/graph.py +0 -0
  500. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/langgraph/vulnerable/graph.py +0 -0
  501. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_sampling/clean_python/requirements.txt +0 -0
  502. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_sampling/clean_python/server.py +0 -0
  503. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_sampling/config_clean/.mcp.json +0 -0
  504. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_sampling/config_vulnerable/.mcp.json +0 -0
  505. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_sampling/documented_risk/.agent-audit-kit.yml +0 -0
  506. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_sampling/documented_risk/requirements.txt +0 -0
  507. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_sampling/documented_risk/server.py +0 -0
  508. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_sampling/vulnerable_python/requirements.txt +0 -0
  509. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_sampling/vulnerable_python/server.py +0 -0
  510. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_sampling/vulnerable_typescript/package.json +0 -0
  511. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_sampling/vulnerable_typescript/server.ts +0 -0
  512. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/clean_py/requirements.txt +0 -0
  513. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/clean_py/server.py +0 -0
  514. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/documented_risk/.agent-audit-kit.yml +0 -0
  515. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/documented_risk/requirements.txt +0 -0
  516. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/documented_risk/server.py +0 -0
  517. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/vulnerable_001_py/requirements.txt +0 -0
  518. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/vulnerable_001_py/server.py +0 -0
  519. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/vulnerable_001_ts/package.json +0 -0
  520. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/vulnerable_001_ts/server.ts +0 -0
  521. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/vulnerable_002_py/client.py +0 -0
  522. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/vulnerable_002_py/requirements.txt +0 -0
  523. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/vulnerable_003_k8s/service.yaml +0 -0
  524. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/vulnerable_003_nginx/nginx.conf +0 -0
  525. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/vulnerable_003_store_py/handlers.py +0 -0
  526. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/vulnerable_003_store_py/requirements.txt +0 -0
  527. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/vulnerable_004_client/client.py +0 -0
  528. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_stateless/vulnerable_004_client/requirements.txt +0 -0
  529. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_tool_unsafe_eval/eval_safe.py +0 -0
  530. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_tool_unsafe_eval/eval_unsafe.py +0 -0
  531. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/mcp_tool_unsafe_eval/no_tool_decorator.py +0 -0
  532. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/metis_pomdp/refusal_refeed_safe.py +0 -0
  533. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/metis_pomdp/refusal_refeed_unsafe.py +0 -0
  534. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/metis_pomdp/scoring_sink_unsafe.py +0 -0
  535. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/openapi_smells/clean.openapi.yaml +0 -0
  536. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/openapi_smells/smelly.openapi.yaml +0 -0
  537. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/openclaw/role_default_admin_unsafe.py +0 -0
  538. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/openclaw/role_explicit_safe.py +0 -0
  539. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/package_with_risks.json +0 -0
  540. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/pipelock/policy_invalid.yaml +0 -0
  541. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/pipelock/policy_minimal.yaml +0 -0
  542. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/pipelock/policy_with_parity.yaml +0 -0
  543. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/project_deal/safe/pricer.py +0 -0
  544. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/project_deal/vulnerable/pricer.py +0 -0
  545. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/skill_lifecycle/safe_skill.py +0 -0
  546. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/skill_lifecycle/unsafe_skill.py +0 -0
  547. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/social_agents/tiktok_human_in_loop.py +0 -0
  548. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/social_agents/tiktok_unsafe.py +0 -0
  549. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/stainless_lineage/config_root/stainless.yml +0 -0
  550. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/stainless_lineage/generated_python_sdk/client.py +0 -0
  551. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/stainless_lineage/generated_typescript_sdk/client.ts +0 -0
  552. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/stainless_lineage/handwritten/server.py +0 -0
  553. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/vulnerable_hooks.json +0 -0
  554. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/vulnerable_mcp.json +0 -0
  555. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/fixtures/vulnerable_settings.json +0 -0
  556. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_a2a_2026.py +0 -0
  557. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_a2a_protocol.py +0 -0
  558. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_action.py +0 -0
  559. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_agent_config.py +0 -0
  560. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_aicm.py +0 -0
  561. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_anthropic_sdk_hardening.py +0 -0
  562. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_argv_toctou.py +0 -0
  563. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cli.py +0 -0
  564. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_compliance_output.py +0 -0
  565. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_compliance_v2.py +0 -0
  566. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_crewai_nvd_and_evasion.py +0 -0
  567. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_csa_baseline_watcher.py +0 -0
  568. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2025_66335.py +0 -0
  569. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2025_66414_python_sdk.py +0 -0
  570. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2026_20205_config.py +0 -0
  571. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2026_20205_splunk.py +0 -0
  572. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2026_32211.py +0 -0
  573. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2026_32211_server.py +0 -0
  574. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2026_33626.py +0 -0
  575. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2026_35568_java.py +0 -0
  576. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2026_35577_apollo.py +0 -0
  577. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2026_39313.py +0 -0
  578. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2026_40576_excel.py +0 -0
  579. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2026_40608_next_ai_draw.py +0 -0
  580. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2026_41481.py +0 -0
  581. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_2026_41488.py +0 -0
  582. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_fix_and_watch_and_advisories.py +0 -0
  583. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cve_watcher_dedup.py +0 -0
  584. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cves_2026.py +0 -0
  585. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_cyclonedx_aibom.py +0 -0
  586. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_diff.py +0 -0
  587. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_discovery.py +0 -0
  588. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_engine.py +0 -0
  589. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_engine_ignore_paths.py +0 -0
  590. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_eu_ai_act_art15_locale.py +0 -0
  591. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_examples.py +0 -0
  592. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_fix.py +0 -0
  593. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_gha_immutable.py +0 -0
  594. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_healthcare_ai_and_state_privacy.py +0 -0
  595. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_hook_injection.py +0 -0
  596. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_index_builder.py +0 -0
  597. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_india_pii.py +0 -0
  598. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_integrations_notify.py +0 -0
  599. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_legal_compliance.py +0 -0
  600. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_llm_scan.py +0 -0
  601. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_llm_scan_mod.py +0 -0
  602. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_llm_sql_rce.py +0 -0
  603. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_marketplace_manifest.py +0 -0
  604. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_marketplace_sources.py +0 -0
  605. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_attestation.py +0 -0
  606. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_config.py +0 -0
  607. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_env_placeholder_exfil.py +0 -0
  608. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_http_noauth_server.py +0 -0
  609. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_marketplace_fetch.py +0 -0
  610. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_noauth_default.py +0 -0
  611. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_sampling_capability.py +0 -0
  612. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_stateless_migration.py +0 -0
  613. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_stdio_cmd_inj_java.py +0 -0
  614. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_stdio_cmd_inj_python.py +0 -0
  615. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_stdio_cmd_inj_rust.py +0 -0
  616. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_stdio_cmd_inj_typescript.py +0 -0
  617. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_stdio_launcher.py +0 -0
  618. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_toolgate_asymmetry.py +0 -0
  619. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcp_tunnel.py +0 -0
  620. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_mcpwn.py +0 -0
  621. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_nsa_mcp_csi.py +0 -0
  622. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_oauth_surface.py +0 -0
  623. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_owasp_agentic_coverage.py +0 -0
  624. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_owasp_public_json.py +0 -0
  625. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_owasp_report.py +0 -0
  626. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_owasp_report_output.py +0 -0
  627. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_parity_region_drift.py +0 -0
  628. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_phase3.py +0 -0
  629. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_pin_drift.py +0 -0
  630. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_pinning.py +0 -0
  631. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_pinning_mod.py +0 -0
  632. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_pr_summary.py +0 -0
  633. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_preset_mcp_ox_2026_04.py +0 -0
  634. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_proxy.py +0 -0
  635. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_repo_metadata_sync.py +0 -0
  636. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_rule_count_sync.py +0 -0
  637. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_sandbox_self_disable.py +0 -0
  638. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_sarif_fingerprints.py +0 -0
  639. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_sarif_github_upload.py +0 -0
  640. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_sarif_output.py +0 -0
  641. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_scoring.py +0 -0
  642. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_secret_exposure.py +0 -0
  643. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_shared_resource_authz.py +0 -0
  644. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_skill_poisoning.py +0 -0
  645. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_skill_untrusted_exec_path.py +0 -0
  646. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_stdio_injection.py +0 -0
  647. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_supply_chain.py +0 -0
  648. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_taint_analysis.py +0 -0
  649. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_tool_poisoning.py +0 -0
  650. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_toxic_flow.py +0 -0
  651. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_transport_security.py +0 -0
  652. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_trust_boundary.py +0 -0
  653. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_typescript_pattern_scan_sql.py +0 -0
  654. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_10_features.py +0 -0
  655. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_10_rules.py +0 -0
  656. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_11_rules.py +0 -0
  657. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_13_rules.py +0 -0
  658. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_14_rules.py +0 -0
  659. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_15_rules.py +0 -0
  660. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_16_rules.py +0 -0
  661. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_17_rules.py +0 -0
  662. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_18_rules.py +0 -0
  663. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_19_rules.py +0 -0
  664. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_1_cve_rules.py +0 -0
  665. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_20_rules.py +0 -0
  666. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_21_rules.py +0 -0
  667. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_22_rules.py +0 -0
  668. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_8_features.py +0 -0
  669. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_8_rules.py +0 -0
  670. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_9_features.py +0 -0
  671. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_9_features_p1.py +0 -0
  672. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_v0_3_9_rules.py +0 -0
  673. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_verification.py +0 -0
  674. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_verification_mod.py +0 -0
  675. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/tests/test_vuln_db.py +0 -0
  676. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/vscode-extension/.vscodeignore +0 -0
  677. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/vscode-extension/CLAUDE.md +0 -0
  678. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/vscode-extension/README.md +0 -0
  679. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/vscode-extension/package.json +0 -0
  680. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/vscode-extension/src/extension.ts +0 -0
  681. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/vscode-extension/src/sarifReader.ts +0 -0
  682. {agent_audit_kit-0.3.41 → agent_audit_kit-0.3.46}/vscode-extension/tsconfig.json +0 -0
@@ -17,7 +17,7 @@ jobs:
17
17
  runs-on: ubuntu-latest
18
18
  steps:
19
19
  - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
20
- - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
20
+ - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
21
21
  with:
22
22
  python-version: "3.12"
23
23
 
@@ -17,7 +17,7 @@ jobs:
17
17
  - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
18
18
 
19
19
  - name: Set up Python ${{ matrix.python-version }}
20
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
20
+ uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
21
21
  with:
22
22
  python-version: ${{ matrix.python-version }}
23
23
 
@@ -27,14 +27,14 @@ jobs:
27
27
  uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
28
28
 
29
29
  - name: Initialize CodeQL
30
- uses: github/codeql-action/init@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4.35.2
30
+ uses: github/codeql-action/init@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
31
31
  with:
32
32
  languages: ${{ matrix.language }}
33
33
 
34
34
  - name: Autobuild
35
- uses: github/codeql-action/autobuild@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4.35.2
35
+ uses: github/codeql-action/autobuild@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
36
36
 
37
37
  - name: Perform CodeQL Analysis
38
- uses: github/codeql-action/analyze@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4.35.2
38
+ uses: github/codeql-action/analyze@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
39
39
  with:
40
40
  category: "/language:${{ matrix.language }}"
@@ -22,7 +22,7 @@ jobs:
22
22
  runs-on: ubuntu-latest
23
23
  steps:
24
24
  - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
25
- - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
25
+ - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
26
26
  with:
27
27
  python-version: "3.12"
28
28
  - name: Install AAK
@@ -21,7 +21,7 @@ jobs:
21
21
  - uses: actions/checkout@v7.0.0
22
22
 
23
23
  - name: Set up Python
24
- uses: actions/setup-python@v6.2.0
24
+ uses: actions/setup-python@v6.3.0
25
25
  with:
26
26
  python-version: "3.11"
27
27
 
@@ -27,7 +27,7 @@ jobs:
27
27
  fetch-depth: 0
28
28
 
29
29
  - name: Set up Python
30
- uses: actions/setup-python@v6.2.0
30
+ uses: actions/setup-python@v6.3.0
31
31
  with:
32
32
  python-version: "3.11"
33
33
 
@@ -53,7 +53,7 @@ jobs:
53
53
  - uses: actions/checkout@v7.0.0
54
54
 
55
55
  - name: Set up Python
56
- uses: actions/setup-python@v6.2.0
56
+ uses: actions/setup-python@v6.3.0
57
57
  with:
58
58
  python-version: '3.11'
59
59
 
@@ -149,7 +149,7 @@ jobs:
149
149
  - uses: actions/checkout@v7.0.0
150
150
 
151
151
  - name: Set up Python
152
- uses: actions/setup-python@v6.2.0
152
+ uses: actions/setup-python@v6.3.0
153
153
  with:
154
154
  python-version: '3.11'
155
155
 
@@ -31,6 +31,6 @@ jobs:
31
31
  publish_results: true
32
32
 
33
33
  - name: Upload SARIF results
34
- uses: github/codeql-action/upload-sarif@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4.35.2
34
+ uses: github/codeql-action/upload-sarif@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
35
35
  with:
36
36
  sarif_file: results.sarif
@@ -17,7 +17,7 @@ jobs:
17
17
  with:
18
18
  fetch-depth: 0
19
19
  token: ${{ secrets.METADATA_SYNC_TOKEN || secrets.GITHUB_TOKEN }}
20
- - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
20
+ - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
21
21
  with:
22
22
  python-version: '3.12'
23
23
  - name: Rewrite README + docs pins
@@ -31,7 +31,7 @@ jobs:
31
31
  token: ${{ secrets.GITHUB_TOKEN }}
32
32
 
33
33
  - name: Set up Python
34
- uses: actions/setup-python@v6.2.0
34
+ uses: actions/setup-python@v6.3.0
35
35
  with:
36
36
  python-version: "3.11"
37
37
 
@@ -8,6 +8,12 @@ shipped-at timestamp. The GitHub Action `.github/workflows/cve-watcher.yml`
8
8
  diffs NVD's MCP keyword feed against this file and opens an
9
9
  `sla-48h`-labelled issue for anything new.
10
10
 
11
+ ## Shipped in v0.3.46 (2026-07-06)
12
+
13
+ | Incident / Anchor | Reference | AAK rule(s) | Shipped | Latency |
14
+ |---|---|---|---|---|
15
+ | CVE-2026-58057 (Flowise < 3.1.3 — case-sensitive NODE_OPTIONS denylist bypass → `node_options` on Windows → `NODE_OPTIONS --require` RCE) | [NVD CVE-2026-58057](https://nvd.nist.gov/vuln/detail/CVE-2026-58057) (CVSS 5.0, published 2026-06-28) | **AAK-FLOWISE-001** (pin floor bumped 3.1.2 → 3.1.3; 3.1.2 configs now flag) | 2026-07-06 | version-pin extension |
16
+
11
17
  ## Shipped in v0.3.22 (2026-05-20)
12
18
 
13
19
  | Incident / Anchor | Reference | AAK rule(s) | Shipped | Latency |
@@ -7,6 +7,173 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ### Security — Flowise CVE-2026-58057 (closes #372)
11
+
12
+ Bumped `AAK-FLOWISE-001`'s pin floor **3.1.2 → 3.1.3** and added
13
+ [CVE-2026-58057](https://nvd.nist.gov/vuln/detail/CVE-2026-58057) (Flowise
14
+ before 3.1.3 validates Custom-MCP stdio env vars against a *case-sensitive*
15
+ denylist, so on Windows `node_options` bypasses the `NODE_OPTIONS` entry and
16
+ reaches `NODE_OPTIONS --require` RCE). Flowise 3.1.2 configs now flag; test +
17
+ ledger updated. Clears the last open `sla-48h` gate item.
18
+
19
+ ### Added — bench: determinism head-to-head
20
+
21
+ New `benchmarks/determinism/` proves AAK yields a **byte-identical finding set
22
+ across 20 runs** (single shared SHA-256, 0% variance) over a fixed committed
23
+ corpus, using the real `engine.run_scan` entrypoint — contrasted, **cited (from
24
+ their own docs), not re-run**, against LLM-judge tools (Snyk Agent Scan +
25
+ [Cisco DefenseClaw](https://github.com/cisco-ai-defense/defenseclaw)). No
26
+ competitor number is fabricated; the LLM-as-judge variance concern is cited to
27
+ [arXiv:2606.13685](https://arxiv.org/abs/2606.13685) ("The Coin Flip Judge?").
28
+ `tests/test_determinism_benchmark.py` enforces the single-digest invariant in
29
+ CI; README's determinism bullet + comparison table link
30
+ `benchmarks/determinism/RESULTS.md`. Version **0.3.45 → 0.3.46**.
31
+
32
+ ### Added — Public OWASP coverage leaderboard (issue #67) + Kong Konnect MCP CVE
33
+
34
+ **OWASP coverage leaderboard (#67).** New generator `scripts/gen_coverage.py`
35
+ emits two Markdown tables from the **live rule registry** so they cannot drift:
36
+ `docs/coverage/owasp-agentic-top10.md` (ASI01–ASI10) and
37
+ `docs/coverage/owasp-mcp-top10.md` (MCP01:2025–MCP10:2025). Each OWASP slot maps
38
+ to the exact AAK rule IDs that cover it, with a **published, reproducible**
39
+ coverage label (Full = ≥3 rules, Partial = 1–2, None = 0) — not a self-scored
40
+ grade. Includes an honest "coverage vs. named toolkits" note: the Microsoft
41
+ Agent Governance Toolkit (2026-04-02, MIT) states 10/10 Agentic coverage as a
42
+ *runtime* enforcer; AAK reports its per-category *static* rule counts next to it
43
+ (a cross-reference, not a head-to-head benchmark). CI fails on staleness via
44
+ `tests/test_coverage_tables.py` (runs `gen_coverage.check()` in every test job).
45
+ README links the leaderboard from the Frameworks section and the State-of-MCP
46
+ report. Fully offline/deterministic — no account, cloud call, or signup.
47
+
48
+ **AAK-MCP-KONG-CVE-2026-13341-001** (HIGH). Kong Konnect MCP server before 1.0.0
49
+ is vulnerable to **indirect prompt injection** — untrusted content the server
50
+ relays can carry instructions the agent acts on, issuing unintended
51
+ Konnect/Admin API requests ([CVE-2026-13341](https://nvd.nist.gov/vuln/detail/CVE-2026-13341),
52
+ CVSS 7.4, published 2026-07-03; fixed in 1.0.0). Detected as a version pin in
53
+ `supply_chain.py` across dependency manifests **and** MCP config files (fires on
54
+ `< 1.0.0` or an unpinned reference). Category TOOL_POISONING, OWASP MCP05:2025 +
55
+ ASI01.
56
+
57
+ Rule count **230 → 231**. Version **0.3.44 → 0.3.45**.
58
+
59
+ ### Added — AAK-MCP-CARD-* : MCP Server Card (SEP-1649) static audit + discovery crawler
60
+
61
+ New **MCP Server Card** rule category (`Category.MCP_SERVER_CARD`) + scanner
62
+ (`scanners/mcp_server_card.py`) that statically audits SEP-1649 discovery cards
63
+ (`/.well-known/mcp/server-card.json`) — a client fetches and trusts a card
64
+ *before* connecting, so the card is an attack surface. Four deterministic rules:
65
+
66
+ - **AAK-MCP-CARD-001** (CRITICAL) — tool-description poisoning / imperative
67
+ injection in `tools[].description`. **Reuses** the AAK-POISON-001..006
68
+ detectors (invisible Unicode, prompt-injection, cross-tool reference, encoded
69
+ payloads) — nothing duplicated.
70
+ - **AAK-MCP-CARD-002** (HIGH) — declared-transport vs advertised-capability
71
+ mismatch (remote transport with `authentication.required: false`, or a
72
+ `stdio`/local card advertising a remote `endpoint`).
73
+ - **AAK-MCP-CARD-003** (HIGH) — missing / placeholder signature / provenance;
74
+ the card's self-declared tools + endpoint are trusted with no origin proof.
75
+ - **AAK-MCP-CARD-004** (MEDIUM) — over-broad capability claims (wildcard scopes,
76
+ all-capabilities, `required: true` with empty `schemes`).
77
+
78
+ SARIF 2.1.0 emitter (fingerprint + `fixes[]` + security-severity) is reused
79
+ unchanged. Emits are stdlib-only and **offline by default** — card fetching is
80
+ opt-in (`AAK_FETCH_SERVER_CARD_URL`, or the crawler's `--server-cards` pass).
81
+
82
+ **Discovery crawler:** `benchmarks/sources.py` gains `well_known_server_cards()`
83
+ and `benchmarks/crawler.py` a `--server-cards` network pass that enumerates
84
+ servers, probes `/.well-known/mcp/server-card.json`, audits each card, and writes
85
+ a **dated** `benchmarks/results-<date>.json` (never overwrites
86
+ `results-2026-06-13.json`). New test + poisoned/clean card fixtures under
87
+ `tests/fixtures/server_cards/`.
88
+
89
+ Rule count **226 → 230**; scanner modules **80 → 81**; categories **11 → 12**.
90
+ Version **0.3.43 → 0.3.44**.
91
+
92
+ ### Added — AAK-MCP-AUTH-PATHTRAVERSAL-001: bearer-token → session-file path traversal ([CVE-2026-52830](https://nvd.nist.gov/vuln/detail/CVE-2026-52830))
93
+
94
+ CVE-response cycle item (closes #394). New **CRITICAL** rule + scanner
95
+ (`scanners/mcp_auth_pathtraversal.py`) flagging MCP auth code that concatenates
96
+ or `os.path.join`-es an untrusted token / bearer credential into a session file
97
+ path used for an existence/read check — without rejecting path separators / `..`
98
+ or resolving-and-containing the result. The caller controls the token, so they
99
+ control the path (`../../etc/passwd`, `../<other-session>`): an auth check becomes
100
+ arbitrary-file access + cross-session takeover. Anchor: **CVE-2026-52830**
101
+ (CVSS 9.4, CWE-22) — `fast-mcp-telegram` before 0.19.1 joined the caller-supplied
102
+ bearer token straight into the session path; fixed in 0.19.1.
103
+
104
+ Python detection reuses the repo's stdlib-`ast` taint mechanism (token source →
105
+ path construction → `exists`/`open` sink, suppressed by a separator/`..` reject
106
+ or a resolve-and-contain guard — no new taint engine; the #22 tree-sitter
107
+ migration is separate); TS/JS/Rust use the analogous concat-into-path regex.
108
+ Category **MCP_CONFIG** (matching the nearest auth rules), OWASP **MCP07:2025**,
109
+ **ASI03**. Distinct from `AAK-MCP-015` (resource-handler path traversal on a
110
+ request *path* param). FP guards: separator-rejected + resolved-and-contained
111
+ flows, constant paths, and non-auth code all pass; SARIF carries the fingerprint,
112
+ the remediation, and the critical-band security-severity.
113
+
114
+ Rule count **225 → 226**; scanner modules **79 → 80**. Version **0.3.42 → 0.3.43**.
115
+
116
+ ### Added — MCP prevalence scan (664 configs) + score calibration (issue #23)
117
+
118
+ Empirical sequel to the State-of-MCP-Security harness. Widened the corpus by
119
+ sweeping five MCP-config filename queries in `benchmarks/crawler.py` (was a
120
+ single `.mcp.json` query capped at GitHub Code Search's 1,000-result ceiling ≈
121
+ 571 distinct) → **664 distinct public configs**. Re-ran the #373 harness (reuses
122
+ `engine.run_scan` + `scoring.compute_score`; extended to emit `owasp_mcp_hit_rate`
123
+ and top-10). New report `research/state-of-mcp-2026/PREVALENCE.md`: the score
124
+ distribution (A 30% / B 36% / C 13% / D 7% / F 13%; **median grade B, top 10%
125
+ A** — the empirical anchor #23 asked for), 26.1% critical, 24.2% no-auth,
126
+ OWASP-MCP hit rate (MCP07 99.4%), top-10 findings, methodology, honest
127
+ limitations, and manual distribution drafts. `REPORT.md` now redirects to
128
+ PREVALENCE.md (canonical); README + `docs/DISTRIBUTION-CHECKLIST.md` updated to
129
+ 664. Aggregate-only, no per-server list published and no CVEs filed (90-day
130
+ coordinated-disclosure policy). No package code touched — version stays 0.3.42.
131
+
132
+ ### Changed — finish the State of MCP Security 2026 report (launch-ready)
133
+
134
+ Promoted the data-report harness (shipped in #373) into a finished, launch-ready
135
+ report. `research/state-of-mcp-2026/REPORT.md` gains an executive summary, an
136
+ OWASP-MCP-Top-10 hit-rate table, three anonymized CVE-class case studies, a
137
+ "how we scan (offline, reproducible)" section leading with the two wedges, and a
138
+ `pip install` self-scan block so the report doubles as a distribution funnel.
139
+ Every figure is sourced to `results.json` — the harness was re-run against the
140
+ current corpus (571 distinct configs; 25.7% critical; 28.9% grade A; 99.3% trip
141
+ OWASP MCP07). The harness now also aggregates `owasp_mcp_hit_rate` (no scanner
142
+ change — it reads `owasp_mcp_references` off the existing rules). Filled
143
+ `docs/DISTRIBUTION-CHECKLIST.md` with ready-to-post copy (Show HN, r/netsec,
144
+ OWASP working-group note, awesome-mcp-security) — operator-posted, nothing
145
+ auto-posts. Version **0.3.41 → 0.3.42**. No scanner rules added; rule count
146
+ stays 225.
147
+
148
+ ### Changed — docs: align public rule-count to canonical 225; promote State-of-MCP-Security-2026 report
149
+
150
+ Killed the last public rule-count drift: the GitHub repo "About" description and
151
+ every human-facing rule-count string (`CLAUDE.md`, launch outreach/blog/awesome
152
+ drafts, the launch data-report draft) said **221** — corrected to the canonical
153
+ **225** (matching the README badge, the `RULES` registry, `rules.json`, and the
154
+ `test_rule_count_is_canonical` CI fence). Adjacent stale metrics on the same
155
+ lines were fixed too (75 → 79 scanners, v0.3.34 → v0.3.41). Promoted the
156
+ reproducible report: the README "State of MCP Security 2026" section now leads
157
+ with the two wedges (offline/deterministic + compliance-evidence), the earlier
158
+ `launch/state-of-mcp-security-2026.md` marketing draft is banner-marked as
159
+ superseded by `research/state-of-mcp-2026/REPORT.md` (canonical), and a manual
160
+ `docs/DISTRIBUTION-CHECKLIST.md` lists launch surfaces (Show HN, r/netsec,
161
+ awesome-mcp-security, OWASP working group). Docs/metadata only — no version bump.
162
+
163
+ ### Added — State-of-MCP-Security-2026 research harness + report
164
+
165
+ New `research/state-of-mcp-2026/` directory: a reproducible data-report harness
166
+ (`run_report.py`) that scans a corpus of public MCP configs and aggregates a
167
+ grade distribution (A–F), per-category hit rates, and the top misconfigurations.
168
+ It contains **no scanner** — it reuses `agent_audit_kit.engine.run_scan` and
169
+ `agent_audit_kit.scoring.compute_score` (the same scan + grade the CLI / MCP
170
+ Security Index use), and delegates corpus acquisition to the existing
171
+ `benchmarks/crawler.py`. Ships the raw aggregate (`results.json`) and the
172
+ human-readable writeup (`REPORT.md`). Headline from the committed run: 571
173
+ distinct configs, 25.7% with a critical finding, ~29% grade A. README gains a
174
+ "State of MCP Security 2026" section with the reproduce command. Docs/research
175
+ only — no package code, no version bump.
176
+
10
177
  ### Changed — CVE-backlog coverage: extend existing pins (Flowise/LiteLLM/Doris)
11
178
 
12
179
  Worked the open `sla-48h` backlog. The genuinely AAK-actionable items map to
@@ -3,10 +3,10 @@
3
3
  <!-- AUTO-MANAGED: project-description -->
4
4
  ## Overview
5
5
 
6
- **AgentAuditKit** (v0.3.34) — Security scanner for MCP-connected AI agent pipelines. The "npm audit" for AI agents.
6
+ **AgentAuditKit** (v0.3.41) — Security scanner for MCP-connected AI agent pipelines. The "npm audit" for AI agents.
7
7
 
8
- - **221 rules** across 11 security categories
9
- - **75 scanner modules** including Python/TypeScript/Rust taint analysis
8
+ - **225 rules** across 11 security categories
9
+ - **79 scanner modules** including Python/TypeScript/Rust taint analysis
10
10
  - **16 CLI commands**: `scan`, `discover`, `pin`, `verify`, `fix`, `score`, `update`, `proxy`, `kill`, `watch`, `export-rules`, `verify-bundle`, `sbom`, `report`, `install-precommit`
11
11
  - **OWASP coverage**: Agentic Top 10 (10/10), MCP Top 10 (10/10), Adversa AI Top 25
12
12
  - **Compliance mapping** (12 frameworks): EU AI Act, SOC 2, ISO 27001/42001, HIPAA, NIST AI RMF, NSA MCP CSI, + regional (India DPDP, Singapore, Alabama, Tennessee)
@@ -65,8 +65,8 @@ agent_audit_kit/
65
65
  llm_scan.py # LLM-assisted scanning
66
66
  vuln_db.py # CVE/vulnerability database
67
67
  rules/
68
- builtin.py # 221 RuleDefinition entries (rule registry)
69
- scanners/ # 75 scanner modules (core set shown), each exports scan() -> (list[Finding], set[str])
68
+ builtin.py # 225 RuleDefinition entries (rule registry)
69
+ scanners/ # 79 scanner modules (core set shown), each exports scan() -> (list[Finding], set[str])
70
70
  mcp_config.py # MCP configuration checks
71
71
  hook_injection.py # Hook injection detection
72
72
  trust_boundary.py # Trust boundary violations
@@ -123,7 +123,7 @@ benchmarks/ # Benchmark crawler
123
123
  ## Detected Patterns
124
124
 
125
125
  - **Scanner registry**: `engine.py` lazy-builds a list of `ScannerRegistration` dataclasses; each wraps a `scan_fn` callable. New scanners are registered via try/except ImportError blocks for backward compatibility.
126
- - **Rule registry**: `rules/builtin.py` defines all 221 rules as `RuleDefinition` dataclasses in a global `RULES` dict, populated by `_r()` helper.
126
+ - **Rule registry**: `rules/builtin.py` defines all 225 rules as `RuleDefinition` dataclasses in a global `RULES` dict, populated by `_r()` helper.
127
127
  - **Finding model**: All scanners produce `Finding` dataclasses with rule_id, severity, category, evidence, remediation, and framework references (OWASP, CVE, Adversa).
128
128
  - **Scoring**: Penalty-based (start at 100, deduct per severity), clamped to [0,100], mapped to letter grade.
129
129
  - **Output formatters**: Each module in `output/` takes a `ScanResult` and formats it (console, JSON, SARIF, OWASP, compliance).
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-audit-kit
3
- Version: 0.3.41
3
+ Version: 0.3.46
4
4
  Summary: Security scanner for MCP-connected AI agent pipelines
5
5
  Project-URL: Homepage, https://github.com/sattyamjjain/agent-audit-kit
6
6
  Project-URL: Repository, https://github.com/sattyamjjain/agent-audit-kit
@@ -42,7 +42,7 @@ Description-Content-Type: text/markdown
42
42
  <a href="https://pypi.org/project/agent-audit-kit/"><img src="https://img.shields.io/pypi/v/agent-audit-kit.svg" alt="PyPI"></a>
43
43
  <a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/python-3.9+-blue.svg" alt="Python 3.9+"></a>
44
44
  <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a>
45
- <a href="#what-it-scans"><img src="https://img.shields.io/badge/rules-225-blue.svg" alt="Rules: 225"></a>
45
+ <a href="#what-it-scans"><img src="https://img.shields.io/badge/rules-231-blue.svg" alt="Rules: 231"></a>
46
46
  <a href="#frameworks--standards"><img src="https://img.shields.io/badge/OWASP_Agentic-10%2F10-green.svg" alt="OWASP Agentic: 10/10"></a>
47
47
  <a href="#frameworks--standards"><img src="https://img.shields.io/badge/OWASP_MCP-10%2F10-green.svg" alt="OWASP MCP: 10/10"></a>
48
48
  <a href="https://sattyamjjain.github.io/agent-audit-kit/"><img src="https://img.shields.io/badge/MCP_Security_Index-live-blue.svg" alt="MCP Security Index"></a>
@@ -58,12 +58,12 @@ Security scanner for MCP-connected AI agent pipelines. Finds misconfigurations,
58
58
 
59
59
  **Two things it does that hosted scanners can't:**
60
60
 
61
- 1. **Runs fully offline and deterministically.** Your code, configs, and secrets never leave the machine; the default scan path makes zero network calls, and the same input always yields the same finding (no model in the loop). No account, no telemetry.
61
+ 1. **Runs fully offline and deterministically.** Your code, configs, and secrets never leave the machine; the default scan path makes zero network calls, and the same input always yields the same finding (no model in the loop). This is measured, not just claimed: [20/20 identical runs → one shared SHA-256 finding-set digest, 0% variance](benchmarks/determinism/RESULTS.md). Scanners that route findings through an LLM judge can't guarantee a byte-identical re-run — so CI diffs, audit re-runs, and regression baselines stay stable here. No account, no telemetry.
62
62
  2. **Produces auditor-ready compliance-evidence packs.** SARIF for the GitHub Security tab plus PDF evidence reports mapped to 13 frameworks (EU AI Act, SOC 2, ISO 27001/42001, HIPAA, NIST AI RMF, and regional regimes) — what you hand an auditor, not just a list of findings.
63
63
 
64
- - **<!-- rule-count:total -->225<!-- /rule-count --> rules** across 11 security categories, covering the 2026 CVE wave
64
+ - **<!-- rule-count:total -->231<!-- /rule-count --> rules** across 12 security categories, covering the 2026 CVE wave
65
65
  - Rule count is computed from the registry and verified in CI (`test_rule_count_is_canonical`).
66
- - **<!-- scanner-count:total -->79<!-- /scanner-count --> scanner modules** including AST-based Python taint analysis and regex pattern scanners for TypeScript/JavaScript and Rust
66
+ - **<!-- scanner-count:total -->81<!-- /scanner-count --> scanner modules** including AST-based Python taint analysis and regex pattern scanners for TypeScript/JavaScript and Rust
67
67
  - **16 CLI commands**: `scan`, `discover`, `pin`, `verify`, `fix`, `score`, `update`, `proxy`, `kill`, `watch`, plus `export-rules`, `verify-bundle`, `sbom`, `report`, `install-precommit`, and the Security-Advisories scan flag
68
68
  - **OWASP coverage**: Agentic Top 10 (10/10), MCP Top 10 (10/10), Adversa AI Top 25
69
69
  - **Compliance mapping** (13 frameworks): EU AI Act Art. 15 + 55, SOC 2, ISO 27001, ISO/IEC 42001, HIPAA, NIST AI RMF, **NSA MCP Security CSI (U/OO/6030316-26, May 2026)**, Singapore Agentic AI, India DPDP 2023, **Alabama Personal Data Protection Act (HB 351, 2026)**, **Tennessee SB 1580 Health Care AI (PRA)**, **MCP 2026 Roadmap (May 2026)** — PDF reports via `agent-audit-kit report --format pdf --framework <name>`
@@ -100,7 +100,7 @@ jobs:
100
100
  runs-on: ubuntu-latest
101
101
  steps:
102
102
  - uses: actions/checkout@v4
103
- - uses: sattyamjjain/agent-audit-kit@v0.3.41
103
+ - uses: sattyamjjain/agent-audit-kit@v0.3.46
104
104
  with:
105
105
  fail-on: high
106
106
  ```
@@ -120,7 +120,7 @@ agent-audit-kit scan .
120
120
  # .pre-commit-config.yaml
121
121
  repos:
122
122
  - repo: https://github.com/sattyamjjain/agent-audit-kit
123
- rev: v0.3.41
123
+ rev: v0.3.46
124
124
  hooks:
125
125
  - id: agent-audit-kit
126
126
  ```
@@ -144,9 +144,9 @@ agent-audit-kit scan examples/vulnerable-configs/04-hook-exfiltration/
144
144
 
145
145
  | Category | Rules | What It Detects |
146
146
  |----------|:-----:|-----------------|
147
- | **MCP Configuration** | <!-- category-count:MCP_CONFIG -->52<!-- /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)) |
147
+ | **MCP Configuration** | <!-- category-count:MCP_CONFIG -->53<!-- /category-count --> | Missing auth middleware (CVE-2026-33032 class), empty IP allowlists, wildcard CORS, path traversal in resource handlers, SSRF (CWE-918), OAuth 2.1 misconfig (PKCE/S256/DPoP), Tasks primitive leakage (SEP-1686), shell injection, MCPwn middleware-asymmetry, Azure MCP no-auth (CVE-2026-32211), MCP Inspector vendored fork (CVE-2026-23744), 2026-07-28 stateless-MCP migration (`Mcp-Session-Id` reliance, removed `tasks/list`, sticky-session deployment, un-cached client `tools/list`), deny-by-default attested admission (signed clearance / `/.well-known/mcp-clearance` / pinned trust root — arXiv:2605.24248), Anthropic MCP Tunnels gateway (SSRF defense disabled / `upstream.disable_ip_validation`, HTTPS upstream missing `upstream.tls.ca_file` trust anchor, tunnel token + TLS private keys hardcoded in CI / committed Kubernetes Secrets — research preview 2026-05-19), stdio launcher injection (`npx`/`node`/`bash`/`sh`/`python` with `-c`/`-e`/`--eval`, or non-pinned interpolated argv — CVE-2026-40933), tool-gate enforcement asymmetry (allowlist / read-only / non-destructive check applied in `tools/list` but not `tools/call` — CVE-2026-46519), unauthenticated MCP HTTP/SSE server on `0.0.0.0` / wildcard CORS (GitLab/Nocturne/AgenticMail no-auth class — CVE-2026-44895/44830/50287), plus the non-loopback no-auth **launch surface** — `mcp.json`/`claude_desktop_config.json`/`*.mcp.yaml` `command`/`args`, Docker `--host 0.0.0.0`/`-p 0.0.0.0:`, and MCP Inspector / FastMCP startup binding `0.0.0.0`/`::`/a routable IP with no token or `DANGEROUSLY_OMIT_AUTH` set (CWE-306; MCP Inspector exemplar CVE-2026-23744; mcp-pinot `0.0.0.0:8080` no-auth CVE-2026-49257; Windows-MCP wildcard-CORS no-auth CVE-2026-48989; ~12,520 exposed services per Censys), argv-rebuild-after-allowlist command-injection TOCTOU (a command/argv approved against an allow/deny list is re-split / re-joined / extended before `subprocess`/`os.exec*` / Node `child_process.spawn`/`execa` with no re-check — `AAK-MCP-ARGV-TOCTOU-001`, **CWE-77 + CWE-367 / CVE-2026-53822**), MCP server unauthenticated-by-default / fail-open auth (an auth function returning truthy on an empty/unset secret, a placeholder/empty secret literal — `""`/`changeme`/`os.environ.get(...,"")` — or a warning-only secret gate on a `0.0.0.0` bind — `AAK-MCP-NOAUTH-DEFAULT`, **CWE-306 + CWE-862 / CVE-2026-48814** (incomplete fix of CVE-2026-46701)), bearer-token → session-file path traversal (an untrusted token / `Authorization` header joined into a session file path used for an existence/read check with no separator-reject or resolve-and-contain guard — `AAK-MCP-AUTH-PATHTRAVERSAL-001`, **CWE-22 / CVE-2026-52830**, fast-mcp-telegram < 0.19.1) |
148
148
  | **Supply Chain** | <!-- category-count:SUPPLY_CHAIN -->41<!-- /category-count --> | Vulnerable LangChain / langchain-text-splitters versions, named pin rules for `astro-mcp-server` / `chatgpt-mcp-server` / `docsgpt` / `gpt-researcher` / `litellm` / `mcp-calculate-server` / `semantic-kernel` / `@anthropic-ai/claude-code` / `apache-doris-mcp-server` / `excel-mcp-server`, OX MCP-STDIO command-injection (Python/TS/Java/Rust) — `AAK-MCP-STDIO-CMD-INJ-001..004` — Stainless-generator lineage, marketplace.json signatures / typosquat / mutable refs, unpinned packages, dangerous install scripts, untrusted-search-path executable override in skill/install flows (`.env`-sourced binary, workspace-prepended `PATH`, `shutil.which` over a tainted PATH, Homebrew env override — `AAK-SKILL-UNTRUSTED-EXEC-PATH`, **CWE-426 / CVE-2026-53819**) |
149
- | **Tool Poisoning** | <!-- category-count:TOOL_POISONING -->26<!-- /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. 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 |
149
+ | **Tool Poisoning** | <!-- category-count:TOOL_POISONING -->27<!-- /category-count --> | Invisible Unicode / bidi, skill frontmatter injection, SKILL.md post-install commands, data-exfil primitives, skill name hijacking, cross-tool references, rug-pull (SHA-256 pinning), `@mcp.tool` unsafe-eval (CVE-2026-44717 generalization), OpenAPI smells (Hermes paper LAZY/BLOATED/TANGLED), Metis POMDP refusal-refeed + scoring-sink, SkillsVote lifecycle attribution, MCP Calculate Server pin, Kong Konnect MCP server < 1.0.0 indirect prompt injection → unintended Konnect/Admin API requests (`AAK-MCP-KONG-CVE-2026-13341-001`, **CVE-2026-13341**, HIGH 7.4). Indirect-prompt-injection detection (`AAK-POISON-001..006`) runs against tool descriptions **and** every per-parameter `inputSchema.properties.*.description` (recursive — nested objects, array items, `anyOf`/`allOf`/`oneOf`), so instruction text hidden in a single argument's docstring is caught |
150
150
  | **Secret Exposure** | <!-- category-count:SECRET_EXPOSURE -->18<!-- /category-count --> | Anthropic/OpenAI/AWS/GitHub/GitLab/GCP keys, Shannon-entropy detection, `.env` leaks, private-key files, hardcoded credential surface, token-leak via log sinks (CVE-2026-20205), `${VAR}`/process.env placeholder resolution on user-supplied MCP URLs → secret exfiltration (CVE-2026-32625) |
151
151
  | **Agent Config** | <!-- category-count:AGENT_CONFIG -->15<!-- /category-count --> | Routines permission escalation + schedule injection + audit-log gaps, AGENTS.md/CLAUDE.md/.cursorrules hijacking, hidden Unicode, encoded payloads, internal scanner-fail signal, Project Deal economic-drift detection |
152
152
  | **A2A Protocol** | <!-- category-count:A2A_PROTOCOL -->13<!-- /category-count --> | Missing mutual auth, unbounded delegation, transitive trust, replay protection, schema confusion, HTTP endpoints, JWT lifetime/validation, impersonation, multi-agent shared-state without lock (Code-as-Harness) |
@@ -155,8 +155,23 @@ agent-audit-kit scan examples/vulnerable-configs/04-hook-exfiltration/
155
155
  | **Transport Security** | <!-- category-count:TRANSPORT_SECURITY -->11<!-- /category-count --> | HTTP endpoints, TLS disabled, deprecated SSE, tokens in URL query strings, transport body-size limits (CVE-2026-39313), SSRF redirect bypass (CVE-2026-41481), DNS-rebinding (CVE-2025-66414/66416, CVE-2026-35568/35577) |
156
156
  | **Legal Compliance** | <!-- category-count:LEGAL_COMPLIANCE -->12<!-- /category-count --> | Copyleft licenses (AGPL/SSPL), missing licenses, DMCA-flagged packages, India PII surface, US-state consumer privacy (Alabama HB 351, Tennessee SB 1580), Singapore Agentic AI, healthcare AI triggers, EU AI Act Article 15 multilingual-eval coverage advisory (binding 2026-08-02) |
157
157
  | **Trust Boundaries** | <!-- category-count:TRUST_BOUNDARY -->12<!-- /category-count --> | `enableAllProjectMcpServers`, API URL redirects, wildcard permissions, missing deny rules, missing allowlists, Claude Code folder-trust bypass (CVE-2026-40068) |
158
+ | **MCP Server Card** | <!-- category-count:MCP_SERVER_CARD -->4<!-- /category-count --> | Static audit of SEP-1649 discovery cards (`/.well-known/mcp/server-card.json`): tool-description poisoning in `tools[].description` (`AAK-MCP-CARD-001`, reuses the AAK-POISON detectors), declared-transport vs advertised-capability mismatch — remote transport with `authentication.required: false`, or `stdio` advertising a remote endpoint (`AAK-MCP-CARD-002`), missing / placeholder signature / provenance (`AAK-MCP-CARD-003`), and over-broad capability / wildcard-scope claims (`AAK-MCP-CARD-004`) |
158
159
 
159
- **<!-- rule-count:total -->225<!-- /rule-count --> rules total.** Every finding includes severity, evidence, remediation, OWASP references, Adversa references, and CVE links where applicable.
160
+ **<!-- rule-count:total -->231<!-- /rule-count --> rules total.** Every finding includes severity, evidence, remediation, OWASP references, Adversa references, and CVE links where applicable.
161
+
162
+ ### MCP Server Card scanning (SEP-1649)
163
+
164
+ The MCP discovery track ([SEP-1649](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1649), superseded-in-draft by SEP-2127) has servers publish a **server card** at `/.well-known/mcp/server-card.json` — a JSON document (`serverInfo`, `transport`, `capabilities`, `authentication`, `tools[]`) that a client fetches and **trusts before it connects**, ahead of the [2026-07-28 MCP spec finalization](https://modelcontextprotocol.io/). That makes the card an attack surface in its own right.
165
+
166
+ `agent-audit-kit` statically audits a server card — from a committed file, or an **opt-in** fetch — with four deterministic rules (`AAK-MCP-CARD-001..004`, category **MCP Server Card**): tool-description poisoning, transport/capability mismatch, missing/placeholder provenance, and over-broad capability claims. It stays **offline and deterministic** — the default scan path makes zero network calls; card fetching only happens behind an explicit flag (`AAK_FETCH_SERVER_CARD_URL`, or the crawler's `--server-cards` network pass), and the same card always yields the same findings.
167
+
168
+ ```bash
169
+ # audit a committed / saved server card, fully offline
170
+ agent-audit-kit scan path/to/server-card.json
171
+
172
+ # opt-in prevalence sweep of discoverable cards (network; writes results-<date>.json)
173
+ python benchmarks/crawler.py --server-cards --limit 200
174
+ ```
160
175
 
161
176
  ### Agent Platforms Scanned
162
177
 
@@ -314,18 +329,34 @@ Generate an SVG badge for your README: `agent-audit-kit score . --badge`
314
329
  | **OWASP Agentic Top 10** (ASI01-ASI10) | 10/10 (100%) — density by slot below |
315
330
  | **OWASP MCP Top 10** (MCP01-MCP10) | 10/10 (100%) |
316
331
 
332
+ ### Public OWASP coverage leaderboard
333
+
334
+ Category-by-category coverage tables — every OWASP slot mapped to the exact AAK
335
+ rule IDs that cover it — are generated from the live rule registry so they
336
+ cannot drift (CI regenerates and fails on staleness, `scripts/gen_coverage.py`):
337
+
338
+ - **[OWASP Agentic Top 10 → AAK rules](docs/coverage/owasp-agentic-top10.md)**
339
+ - **[OWASP MCP Top 10 → AAK rules](docs/coverage/owasp-mcp-top10.md)**
340
+
341
+ Coverage labels use a published threshold (**Full** = ≥3 rules, **Partial** =
342
+ 1–2, **None** = 0) — reproducible from the registry, not a self-scored grade.
343
+ The [Microsoft Agent Governance Toolkit](https://github.com/microsoft/agent-governance-toolkit)
344
+ (2026-04-02) states 10/10 Agentic coverage as a *runtime* enforcer; AAK reports
345
+ its honest per-category **static** rule counts next to it — a coverage
346
+ cross-reference, not a head-to-head benchmark.
347
+
317
348
  <details>
318
349
  <summary>OWASP Agentic Top 10 — density by slot</summary>
319
350
 
320
351
  <!-- owasp-coverage:start -->
321
352
  | ASI | Title | # rules |
322
353
  | --- | --- | --- |
323
- | **ASI01** | Goal Hijack | 11 |
354
+ | **ASI01** | Goal Hijack | 12 |
324
355
  | **ASI02** | Tool Misuse | 38 |
325
- | **ASI03** | Memory Poisoning | 54 |
326
- | **ASI04** | Identity & Privilege Abuse | 37 |
356
+ | **ASI03** | Memory Poisoning | 56 |
357
+ | **ASI04** | Identity & Privilege Abuse | 38 |
327
358
  | **ASI05** | Cascading Failures | 33 |
328
- | **ASI06** | Unauthorized Capability Acquisition | 28 |
359
+ | **ASI06** | Unauthorized Capability Acquisition | 30 |
329
360
  | **ASI07** | Plan Injection | 9 |
330
361
  | **ASI08** | Agent Communication Poisoning | 4 |
331
362
  | **ASI09** | Resource Abuse | 14 |
@@ -367,7 +398,7 @@ See [`docs/comparisons.md`](docs/comparisons.md) for a fully-sourced version. Ve
367
398
  | Feature | AgentAuditKit | Microsoft AGT | Snyk Agent Scan | Semgrep Multimodal |
368
399
  |---------|:---:|:---:|:---:|:---:|
369
400
  | Scope | Static scanner + compliance PDFs | Runtime governance | Static + runtime | Multimodal SAST |
370
- | Detection rules (static) | **<!-- rule-count:total -->225<!-- /rule-count -->** | Runtime policies, not rules | ~30 | LLM-assisted |
401
+ | Detection rules (static) | **<!-- rule-count:total -->231<!-- /rule-count -->** | Runtime policies, not rules | ~30 | LLM-assisted |
371
402
  | OWASP Agentic 10/10 | **Yes** | Yes | Partial | Partial |
372
403
  | OWASP MCP 10/10 | **Yes** | No (runtime-focused) | No | No |
373
404
  | Auditor-ready PDF compliance | **12 frameworks** | No | 0 | 0 |
@@ -381,6 +412,7 @@ See [`docs/comparisons.md`](docs/comparisons.md) for a fully-sourced version. Ve
381
412
  | GitHub Security Advisories | **Yes** (`--advisories`) | No | No | No |
382
413
  | Secret verification | **Yes** | No | No | No |
383
414
  | A2A protocol scanning | **12 rules** | Agent Mesh | No | No |
415
+ | Reproducible finding set (same input → same digest) | **[Yes — 20/20 runs, 0% variance](benchmarks/determinism/RESULTS.md)** | Runtime governance | LLM-judge in path | LLM-assisted |
384
416
  | Healthcare-AI legal triggers | **Yes** (TN SB 1580, KS/WA/UT) | No | No | No |
385
417
  | Offline / zero cloud | **Yes** | Yes | No | Optional |
386
418
  | License | **MIT** | MIT | Proprietary | Proprietary |
@@ -415,6 +447,42 @@ Public leaderboard of MCP servers we scan weekly:
415
447
  - **90-day coordinated disclosure** before anything lands on a public card — see [`docs/disclosure-policy.md`](docs/disclosure-policy.md)
416
448
  - Maintainer-fix earlier gets published the day the fix lands, with credit
417
449
 
450
+ ## State of MCP Security 2026
451
+
452
+ A reproducible data report: we scanned **664 distinct public MCP server configs**
453
+ and found **1 in 4 ships a critical-severity flaw** — the **median config scores
454
+ a B, the top 10% an A**, and **24.2% declare a remote server with no auth**. It
455
+ exists because of AAK's two defensible wedges — the scan is **offline and
456
+ deterministic** (no code or configs leave the machine; same input, same result),
457
+ and it yields **auditor-ready compliance evidence**, which is what makes a report
458
+ reproducible and an audit defensible. Full distribution, score calibration,
459
+ OWASP-MCP-Top-10 hit rate, top-10 findings, external anchors (MCP Registry 9,652
460
+ servers; Knostic 1,862 exposed / 119-of-119 unauthenticated; the 2,614-server
461
+ 82%-path-traversal survey), and honest limitations are in
462
+ **[`research/state-of-mcp-2026/PREVALENCE.md`](research/state-of-mcp-2026/PREVALENCE.md)**
463
+ (raw aggregate: [`results.json`](research/state-of-mcp-2026/results.json)).
464
+
465
+ Mapped to the OWASP MCP Top 10, **99.4% of configs trip MCP07 (authorization /
466
+ excessive permissions)** — see which AAK rules cover each slot in the
467
+ [public coverage leaderboard](docs/coverage/owasp-mcp-top10.md). Scan your own in
468
+ 30s, fully offline:
469
+
470
+ ```bash
471
+ pip install agent-audit-kit && agent-audit-kit scan .
472
+ ```
473
+
474
+ The harness contains no scanner — it reuses `agent_audit_kit.engine.run_scan` +
475
+ `scoring.compute_score`. Regenerate the report:
476
+
477
+ ```bash
478
+ export GITHUB_TOKEN=$(gh auth token)
479
+ python benchmarks/crawler.py --limit 500 --output benchmarks/results.json
480
+ python research/state-of-mcp-2026/run_report.py --corpus benchmarks/data \
481
+ --out research/state-of-mcp-2026/results.json
482
+ ```
483
+
484
+ Launch-ready copy for the report is in [`docs/DISTRIBUTION-CHECKLIST.md`](docs/DISTRIBUTION-CHECKLIST.md).
485
+
418
486
  ## CVE Response
419
487
 
420
488
  AgentAuditKit tracks newly disclosed MCP CVEs and ships rule coverage on a best-effort basis, recorded in a public ledger ([`CHANGELOG.cves.md`](CHANGELOG.cves.md)). A [GitHub Action](.github/workflows/cve-watcher.yml) watches NVD's MCP keyword feed every 6 hours and files a tracking issue for each new disclosure.