agent-audit-kit 0.3.76__tar.gz → 0.3.78__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of agent-audit-kit might be problematic. Click here for more details.

Files changed (839) hide show
  1. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/workflows/codeql.yml +3 -3
  2. agent_audit_kit-0.3.78/.github/workflows/link-check.yml +70 -0
  3. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/workflows/scorecard.yml +1 -1
  4. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/CHANGELOG.cves.md +18 -0
  5. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/CHANGELOG.md +28 -0
  6. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/CLAUDE.md +4 -4
  7. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/CLAUDE_PROMPT.md +3 -3
  8. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/PKG-INFO +24 -16
  9. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/README.md +17 -14
  10. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/action.yml +1 -1
  11. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/__init__.py +3 -3
  12. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/engine.py +1 -0
  13. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/rules/builtin.py +190 -11
  14. agent_audit_kit-0.3.78/agent_audit_kit/scanners/_ssrf_reach.py +247 -0
  15. agent_audit_kit-0.3.78/agent_audit_kit/scanners/_ts_stdio_taint.py +217 -0
  16. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_cve_pins_2026_07.py +29 -0
  17. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_stdio_params.py +39 -3
  18. agent_audit_kit-0.3.78/agent_audit_kit/scanners/policy_truncation.py +195 -0
  19. agent_audit_kit-0.3.78/agent_audit_kit/scanners/ssrf_patterns.py +154 -0
  20. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/supply_chain.py +109 -0
  21. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/determinism/RESULTS.md +2 -2
  22. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/STATE-OF-MCP-SECURITY-2026.md +1 -1
  23. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/ci-cd.md +2 -2
  24. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/comparison-gitlab-agentic-sast.md +1 -1
  25. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/comparison.md +1 -1
  26. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/coverage/owasp-agentic-top10.md +4 -4
  27. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/coverage/owasp-mcp-top10.md +3 -3
  28. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/coverage.json +144 -26
  29. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/crosswalk/nsa-csi-owasp-agentic.md +1 -1
  30. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/cve-latency.md +17 -3
  31. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/data/cve-published.json +6 -0
  32. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/getting-started.md +2 -2
  33. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/index.md +1 -1
  34. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/launch/CHECKLIST.md +1 -1
  35. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/launch/hn.md +3 -3
  36. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/launch/press.md +2 -2
  37. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/launch/reddit.md +5 -5
  38. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/launch/x-thread.md +4 -4
  39. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/owasp-agentic-coverage.md +4 -4
  40. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/presets/mcp-ox-2026-04.md +2 -2
  41. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/roadmap/ox-mcp-2026-05-01-batch.md +1 -1
  42. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/AAK-MCP-STDIO-CMD-INJ-001.md +1 -1
  43. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/AAK-SPLUNK-MCP-TOKEN-LEAK-001.md +1 -1
  44. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules.md +3 -3
  45. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/launch/awesome-list-prs/awesome-opensource-security.md +2 -2
  46. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/launch/awesome-list-prs/awesome-security.md +2 -2
  47. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/launch/owasp-outreach.md +3 -3
  48. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/public/owasp-agentic-coverage.json +57 -7
  49. agent_audit_kit-0.3.78/pyproject.toml +107 -0
  50. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/research/state-of-mcp-2026/blackhat-arsenal-abstract.md +2 -2
  51. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/rules.json +133 -2
  52. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scanners.json +5 -1
  53. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/cve_latency.py +25 -0
  54. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/cve_watcher.py +56 -0
  55. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/site/coverage/index.html +2 -2
  56. agent_audit_kit-0.3.78/tests/fixtures/cves/cve-2026-30624-agent-zero/negative/package.json +9 -0
  57. agent_audit_kit-0.3.78/tests/fixtures/cves/cve-2026-30624-agent-zero/negative/requirements.txt +2 -0
  58. agent_audit_kit-0.3.78/tests/fixtures/cves/cve-2026-30624-agent-zero/vulnerable/package.json +9 -0
  59. agent_audit_kit-0.3.78/tests/fixtures/cves/cve-2026-30624-agent-zero/vulnerable/requirements.txt +3 -0
  60. agent_audit_kit-0.3.78/tests/fixtures/cves/cve-2026-49986-neuro-cortex/negative/requirements.txt +2 -0
  61. agent_audit_kit-0.3.78/tests/fixtures/cves/cve-2026-49986-neuro-cortex/vulnerable/requirements.txt +4 -0
  62. agent_audit_kit-0.3.78/tests/fixtures/cves/cve-2026-50027-mcp-memory-service/negative/requirements.txt +2 -0
  63. agent_audit_kit-0.3.78/tests/fixtures/cves/cve-2026-50027-mcp-memory-service/vulnerable/requirements.txt +3 -0
  64. agent_audit_kit-0.3.78/tests/fixtures/cves/cve-2026-73614-policy-truncation/negative/hook_bridge.js +27 -0
  65. agent_audit_kit-0.3.78/tests/fixtures/cves/cve-2026-73614-policy-truncation/vulnerable/hook_bridge.js +27 -0
  66. agent_audit_kit-0.3.78/tests/fixtures/cves/cve-2026-73846-ckan-mcp/negative/package.json +9 -0
  67. agent_audit_kit-0.3.78/tests/fixtures/cves/cve-2026-73846-ckan-mcp/vulnerable/package.json +9 -0
  68. agent_audit_kit-0.3.78/tests/fixtures/cves/ox-mcp-stdio-class/unconnected_ts.ts +26 -0
  69. agent_audit_kit-0.3.78/tests/test_agent_zero_pin.py +137 -0
  70. agent_audit_kit-0.3.78/tests/test_console_scripts.py +83 -0
  71. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_latency.py +40 -5
  72. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_watcher_dedup.py +6 -1
  73. agent_audit_kit-0.3.78/tests/test_cve_watcher_relevance.py +116 -0
  74. agent_audit_kit-0.3.78/tests/test_docs_links.py +61 -0
  75. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_cve_pins_2026_07.py +86 -0
  76. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_phase5.py +1 -1
  77. agent_audit_kit-0.3.78/tests/test_policy_truncation.py +183 -0
  78. agent_audit_kit-0.3.78/tests/test_ssrf_reachability.py +174 -0
  79. agent_audit_kit-0.3.78/tests/test_transport_flip_remediation.py +121 -0
  80. agent_audit_kit-0.3.78/tests/test_ts_stdio_taint.py +211 -0
  81. agent_audit_kit-0.3.76/.github/workflows/link-check.yml +0 -47
  82. agent_audit_kit-0.3.76/agent_audit_kit/scanners/ssrf_patterns.py +0 -153
  83. agent_audit_kit-0.3.76/pyproject.toml +0 -70
  84. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.agent-audit-kit.yml +0 -0
  85. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.claude/auto-memory/config.json +0 -0
  86. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.editorconfig +0 -0
  87. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/FUNDING.yml +0 -0
  88. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  89. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  90. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  91. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/dependabot.yml +0 -0
  92. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/repo-metadata.yml +0 -0
  93. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/workflows/badge-ox-coverage.yml +0 -0
  94. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/workflows/ci.yml +0 -0
  95. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/workflows/coverage-page.yml +0 -0
  96. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/workflows/cve-watcher.yml +0 -0
  97. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/workflows/docker-nightly.yml +0 -0
  98. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/workflows/mcp-security-index.yml +0 -0
  99. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/workflows/release.yml +0 -0
  100. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/workflows/self-scan.yml +0 -0
  101. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/workflows/sync-repo-metadata.yml +0 -0
  102. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.github/workflows/sync-rule-count.yml +0 -0
  103. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.gitignore +0 -0
  104. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.pre-commit-config.yaml +0 -0
  105. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/.pre-commit-hooks.yaml +0 -0
  106. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/CODE_OF_CONDUCT.md +0 -0
  107. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/CONTRIBUTING.md +0 -0
  108. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/DEEP_ANALYSIS.md +0 -0
  109. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/Dockerfile +0 -0
  110. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/LICENSE +0 -0
  111. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/Makefile +0 -0
  112. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/ROADMAP_2026.md +0 -0
  113. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/SECURITY.md +0 -0
  114. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/advisories.py +0 -0
  115. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/autofix/__init__.py +0 -0
  116. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/autofix/langgraph_toolnode.py +0 -0
  117. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/bundle.py +0 -0
  118. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/checks/__init__.py +0 -0
  119. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/checks/economic_drift.py +0 -0
  120. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/checks/openclaw.py +0 -0
  121. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/cli.py +0 -0
  122. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/cli_modules/__init__.py +0 -0
  123. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/cli_modules/rule_lint.py +0 -0
  124. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/corpus/__init__.py +0 -0
  125. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/corpus/manifest.py +0 -0
  126. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/coverage.py +0 -0
  127. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/data/aivss-v08-defaults.json +0 -0
  128. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/data/composition_boundaries.yaml +0 -0
  129. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/data/fhi_universal_suffixes.txt +0 -0
  130. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/data/ipi_wild_payloads_2026_04.json +0 -0
  131. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/data/ox-cve-manifest.json +0 -0
  132. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/data/prisma-airs-aak-map.json +0 -0
  133. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/data/prisma-airs-catalog.json +0 -0
  134. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/data/toxic_flow_pairs.yml +0 -0
  135. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/data/vuln_db.json +0 -0
  136. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/diff.py +0 -0
  137. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/discovery.py +0 -0
  138. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/feeds/__init__.py +0 -0
  139. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/fix.py +0 -0
  140. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/ide/__init__.py +0 -0
  141. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/ide/lsp_diag.py +0 -0
  142. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/integrations/__init__.py +0 -0
  143. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/integrations/notify.py +0 -0
  144. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/llm_scan.py +0 -0
  145. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/models.py +0 -0
  146. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/output/__init__.py +0 -0
  147. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/output/aicm.py +0 -0
  148. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/output/compliance.py +0 -0
  149. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/output/console.py +0 -0
  150. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/output/coverage_map.py +0 -0
  151. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/output/crosswalk.py +0 -0
  152. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/output/json_report.py +0 -0
  153. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/output/owasp_report.py +0 -0
  154. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/output/pdf_report.py +0 -0
  155. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/output/pr_summary.py +0 -0
  156. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/output/sarif.py +0 -0
  157. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/output/sbom.py +0 -0
  158. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/parity/__init__.py +0 -0
  159. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/pinning.py +0 -0
  160. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/presets/__init__.py +0 -0
  161. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/presets/mcp-2026-07-28.yaml +0 -0
  162. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/presets/mcp-ox-2026-04.yaml +0 -0
  163. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/proxy/__init__.py +0 -0
  164. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/proxy/interceptor.py +0 -0
  165. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/remediation/__init__.py +0 -0
  166. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/remediation/engine.py +0 -0
  167. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/rules/__init__.py +0 -0
  168. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/sanitizers/__init__.py +0 -0
  169. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/sanitizers/crewai.py +0 -0
  170. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/sanitizers/deepseek.py +0 -0
  171. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/sarif/__init__.py +0 -0
  172. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/sarif/diff.py +0 -0
  173. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/__init__.py +0 -0
  174. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/_helpers.py +0 -0
  175. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/a2a_protocol.py +0 -0
  176. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/agent_config.py +0 -0
  177. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/agent_harness_shared_state.py +0 -0
  178. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/agent_trust_surface.py +0 -0
  179. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/argv_toctou.py +0 -0
  180. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/crewai_rce_chain.py +0 -0
  181. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/deepseek_v4_tool_injection.py +0 -0
  182. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/dns_rebind.py +0 -0
  183. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/docsgpt_transport_flip.py +0 -0
  184. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/eu_ai_act_art15_locale.py +0 -0
  185. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/gha_hardening.py +0 -0
  186. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/gpt_researcher_transport_flip.py +0 -0
  187. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/healthcare_ai.py +0 -0
  188. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/hook_injection.py +0 -0
  189. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/hook_rce.py +0 -0
  190. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/ide_task_rce.py +0 -0
  191. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/india_pii.py +0 -0
  192. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/ipi_wild_corpus.py +0 -0
  193. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/langchain_prompt_loader.py +0 -0
  194. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/langchain_vuln.py +0 -0
  195. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/langgraph_toolnode.py +0 -0
  196. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/legal_compliance.py +0 -0
  197. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/llm_sql_rce.py +0 -0
  198. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/log_injection.py +0 -0
  199. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/log_token_leak.py +0 -0
  200. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/marketplace_manifest.py +0 -0
  201. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_apps_ui.py +0 -0
  202. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_atlassian.py +0 -0
  203. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_auth_pathtraversal.py +0 -0
  204. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_auth_patterns.py +0 -0
  205. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_config.py +0 -0
  206. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_deprecated_features.py +0 -0
  207. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_env_placeholder_exfil.py +0 -0
  208. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_fhi.py +0 -0
  209. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_http_noauth_server.py +0 -0
  210. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_inspector_cve.py +0 -0
  211. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_marketplace_fetch.py +0 -0
  212. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_middleware.py +0 -0
  213. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_noauth_default.py +0 -0
  214. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_routing_desync.py +0 -0
  215. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_sampling_capability.py +0 -0
  216. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_sdk_hardening.py +0 -0
  217. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_server_auth.py +0 -0
  218. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_server_card.py +0 -0
  219. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_ssrf_toolarg.py +0 -0
  220. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_stateless_migration.py +0 -0
  221. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_stdio_launcher.py +0 -0
  222. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_tasks.py +0 -0
  223. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_tool_unsafe_eval.py +0 -0
  224. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_toolgate_asymmetry.py +0 -0
  225. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/mcp_tunnel.py +0 -0
  226. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/metis_pomdp.py +0 -0
  227. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/neo4j_cve.py +0 -0
  228. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/oauth_misconfig.py +0 -0
  229. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/oauth_surface.py +0 -0
  230. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/openapi_smells.py +0 -0
  231. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/openclaw_privesc.py +0 -0
  232. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/pin_drift.py +0 -0
  233. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/project_deal_drift.py +0 -0
  234. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/prtitle_ipi.py +0 -0
  235. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/routines.py +0 -0
  236. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/rust_pattern_scan.py +0 -0
  237. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/rust_scan.py +0 -0
  238. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/sandbox_self_disable.py +0 -0
  239. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/secret_exposure.py +0 -0
  240. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/session_splice.py +0 -0
  241. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/shared_resource_authz.py +0 -0
  242. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/skill_composition.py +0 -0
  243. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/skill_lifecycle_attribution.py +0 -0
  244. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/skill_poisoning.py +0 -0
  245. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/skill_untrusted_exec_path.py +0 -0
  246. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/social_agent_hijack.py +0 -0
  247. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/splunk_mcp_config.py +0 -0
  248. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/ssrf_redirect.py +0 -0
  249. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/ssrf_toctou.py +0 -0
  250. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/stainless_lineage.py +0 -0
  251. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/state_privacy.py +0 -0
  252. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/stdio_injection.py +0 -0
  253. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/taint_analysis.py +0 -0
  254. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/tool_poisoning.py +0 -0
  255. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/toxic_flow.py +0 -0
  256. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/transport_limits.py +0 -0
  257. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/transport_security.py +0 -0
  258. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/trust_boundary.py +0 -0
  259. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/typescript_pattern_scan.py +0 -0
  260. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/typescript_scan.py +0 -0
  261. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scanners/ufo_mobile_mcp.py +0 -0
  262. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scoring/__init__.py +0 -0
  263. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scoring/aivss.py +0 -0
  264. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/scoring/aivss_schema.py +0 -0
  265. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/sessions/__init__.py +0 -0
  266. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/sessions/adapters.py +0 -0
  267. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/translators/__init__.py +0 -0
  268. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/translators/pipelock.py +0 -0
  269. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/translators/prisma_airs.py +0 -0
  270. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/verification.py +0 -0
  271. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/vuln_db.py +0 -0
  272. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/agent_audit_kit/watch.py +0 -0
  273. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/README.md +0 -0
  274. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/crawler.py +0 -0
  275. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/determinism/run.py +0 -0
  276. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/false_positive/RESULTS.md +0 -0
  277. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/false_positive/corpus.py +0 -0
  278. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/false_positive/results.json +0 -0
  279. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/false_positive/run.py +0 -0
  280. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/false_positive/stats.py +0 -0
  281. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/false_positive/triage.md +0 -0
  282. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/index_builder.py +0 -0
  283. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/results-2026-06-13.json +0 -0
  284. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/run_benchmark.sh +0 -0
  285. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/sample_configs/sample_01_clean.json +0 -0
  286. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/sample_configs/sample_02_secrets.json +0 -0
  287. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/sample_configs/sample_03_no_auth.json +0 -0
  288. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/sample_configs/sample_04_shell_injection.json +0 -0
  289. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/sample_configs/sample_05_mixed.json +0 -0
  290. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/benchmarks/sources.py +0 -0
  291. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/ci/gitlab/agent-audit-kit.gitlab-ci.yml +0 -0
  292. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/DISTRIBUTION-CHECKLIST.md +0 -0
  293. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/RELEASING.md +0 -0
  294. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/azure-pipelines.md +0 -0
  295. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/benchmarks/third-party-grading.md +0 -0
  296. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/changelog/archive/CHANGELOG.cves.md +0 -0
  297. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/changelog/archive/CHANGELOG.md +0 -0
  298. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/circleci.md +0 -0
  299. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/comparisons.md +0 -0
  300. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/disclosure-policy.md +0 -0
  301. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/gitlab-ci.md +0 -0
  302. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/metrics.md +0 -0
  303. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/notes/adjudicator-pattern.md +0 -0
  304. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/owasp-mapping.md +0 -0
  305. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/presets/mcp-2026-07-28.md +0 -0
  306. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/reports/mcp-2026-07-28-readiness.md +0 -0
  307. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/research/mcp-security-baseline-v1.0.md +0 -0
  308. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/research-log.md +0 -0
  309. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rule-schema.md +0 -0
  310. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/AAK-AZURE-MCP-001.md +0 -0
  311. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/AAK-AZURE-MCP-NOAUTH-001.md +0 -0
  312. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/AAK-LANGCHAIN-SSRF-REDIR-001.md +0 -0
  313. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/AAK-LMDEPLOY-VL-SSRF-001.md +0 -0
  314. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/AAK-MCP-AUTH-PATHTRAVERSAL-001.md +0 -0
  315. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/AAK-MCP-MARKETPLACE-CONFIG-FETCH-001.md +0 -0
  316. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/AAK-MCP-STDIO-CMD-INJ-002.md +0 -0
  317. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/AAK-MCP-STDIO-CMD-INJ-003.md +0 -0
  318. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/AAK-MCP-STDIO-CMD-INJ-004.md +0 -0
  319. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/AAK-SSRF-TOCTOU-001.md +0 -0
  320. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/AAK-TOXICFLOW-001.md +0 -0
  321. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/index.md +0 -0
  322. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/rules/skill-composition.md +0 -0
  323. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/docs/session-transcripts.md +0 -0
  324. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/editors/zed/README.md +0 -0
  325. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/editors/zed/extension.toml +0 -0
  326. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/entrypoint.sh +0 -0
  327. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/README.md +0 -0
  328. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/case-studies/damn-vulnerable-mcp/README.md +0 -0
  329. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/case-studies/damn-vulnerable-mcp/configs/dvmcp-inspired.mcp.json +0 -0
  330. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/case-studies/damn-vulnerable-mcp/configs/dvmcp-settings.json +0 -0
  331. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/case-studies/damn-vulnerable-mcp/scan-results.json +0 -0
  332. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/case-studies/damn-vulnerable-mcp/scan-results.sarif +0 -0
  333. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/ci-integration/README.md +0 -0
  334. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/ci-integration/docker-one-liner.sh +0 -0
  335. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/ci-integration/github-actions-sarif.yml +0 -0
  336. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/ci-integration/gitlab-ci-scan.yml +0 -0
  337. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/ci-integration/pre-commit-config.yaml +0 -0
  338. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/run-all-examples.sh +0 -0
  339. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/01-no-auth-remote/.mcp.json +0 -0
  340. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/01-no-auth-remote/expected-findings.json +0 -0
  341. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/02-shell-injection/.mcp.json +0 -0
  342. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/02-shell-injection/expected-findings.json +0 -0
  343. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/03-hardcoded-secrets/.gitignore +0 -0
  344. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/03-hardcoded-secrets/.mcp.json +0 -0
  345. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/03-hardcoded-secrets/expected-findings.json +0 -0
  346. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/04-hook-exfiltration/.claude/settings.json +0 -0
  347. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/04-hook-exfiltration/expected-findings.json +0 -0
  348. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/05-trust-boundary-violations/.claude/settings.json +0 -0
  349. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/05-trust-boundary-violations/.mcp.json +0 -0
  350. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/05-trust-boundary-violations/expected-findings.json +0 -0
  351. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/06-tool-poisoning/.mcp.json +0 -0
  352. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/06-tool-poisoning/expected-findings.json +0 -0
  353. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/07-tainted-tool-function/expected-findings.json +0 -0
  354. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/07-tainted-tool-function/server.py +0 -0
  355. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/08-transport-insecurity/.mcp.json +0 -0
  356. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/08-transport-insecurity/expected-findings.json +0 -0
  357. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/09-a2a-insecure-agent/agent-card.json +0 -0
  358. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/09-a2a-insecure-agent/expected-findings.json +0 -0
  359. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/10-supply-chain-risks/.mcp.json +0 -0
  360. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/10-supply-chain-risks/expected-findings.json +0 -0
  361. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/10-supply-chain-risks/package.json +0 -0
  362. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/11-legal-compliance/expected-findings.json +0 -0
  363. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/11-legal-compliance/package.json +0 -0
  364. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/11-legal-compliance/subproject/package.json +0 -0
  365. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/examples/vulnerable-configs/README.md +0 -0
  366. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/launch/MARKET-RESEARCH-2026-04-12.md +0 -0
  367. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/launch/blog-50-mcp-servers.md +0 -0
  368. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/launch/demo.cast +0 -0
  369. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/launch/state-of-mcp-security-2026.md +0 -0
  370. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/mkdocs.yml +0 -0
  371. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/openai-cybersecurity-grant-agent-audit-kit.md +0 -0
  372. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/openai-cybersecurity-grant-agent-audit-kit.pdf +0 -0
  373. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/public/badges/ox-coverage.json +0 -0
  374. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/public/corpora/manifest.json +0 -0
  375. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/releases/v0.3.10.md +0 -0
  376. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/releases/v0.3.5.md +0 -0
  377. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/releases/v0.3.6.md +0 -0
  378. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/releases/v0.3.7.md +0 -0
  379. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/releases/v0.3.8.md +0 -0
  380. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/releases/v0.3.9.md +0 -0
  381. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/requirements-lock.txt +0 -0
  382. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/research/state-of-mcp-2026/.gitignore +0 -0
  383. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/research/state-of-mcp-2026/PREVALENCE.md +0 -0
  384. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/research/state-of-mcp-2026/REPORT.md +0 -0
  385. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/research/state-of-mcp-2026/baseline/mcp-security-baseline-v1.0-2026-07-27.json +0 -0
  386. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/research/state-of-mcp-2026/baseline/mcp-security-baseline-v1.0-2026-07-27.json.sha256 +0 -0
  387. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/research/state-of-mcp-2026/baseline.py +0 -0
  388. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/research/state-of-mcp-2026/blackhat-briefings-abstract.md +0 -0
  389. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/research/state-of-mcp-2026/corpus/registry-manifest.json +0 -0
  390. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/research/state-of-mcp-2026/fetch_registry.py +0 -0
  391. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/research/state-of-mcp-2026/results.json +0 -0
  392. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/research/state-of-mcp-2026/run_report.py +0 -0
  393. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/research/state-of-mcp-2026/state-of-mcp-security-2026.pdf +0 -0
  394. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/schema/ox-cve-manifest.schema.json +0 -0
  395. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/backfill_cve_property.py +0 -0
  396. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/build_coverage_page.py +0 -0
  397. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/check_counts.py +0 -0
  398. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/close_duplicate_cve_issues.py +0 -0
  399. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/gen_coverage.py +0 -0
  400. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/gen_owasp_coverage.py +0 -0
  401. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/generate_lockfile.py +0 -0
  402. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/install-pre-commit.sh +0 -0
  403. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/mcp_2026_07_28_readiness.py +0 -0
  404. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/render_repo_metadata.py +0 -0
  405. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/sync_repo_metadata.py +0 -0
  406. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/sync_rule_count.py +0 -0
  407. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/sync_scanner_count.py +0 -0
  408. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/scripts/watch_csa_mcp_baseline.py +0 -0
  409. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/site/coverage/ox.json +0 -0
  410. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/site/coverage/prisma-airs.json +0 -0
  411. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/conftest.py +0 -0
  412. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/LICENSES.md +0 -0
  413. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/agent_trust/clean/.claude/settings.json +0 -0
  414. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/agent_trust/clean/.github/workflows/ci.yml +0 -0
  415. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/agent_trust/clean/GEMINI.md +0 -0
  416. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/agent_trust/gemini_shell/GEMINI.md +0 -0
  417. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/agent_trust/headless_ci/.github/workflows/agent.yml +0 -0
  418. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/agent_trust/headless_ci/.mcp.json +0 -0
  419. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/agent_trust/pwn_request/.github/workflows/review.yml +0 -0
  420. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/agent_trust/settings_bypass/.claude/settings.json +0 -0
  421. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/clean_mcp.json +0 -0
  422. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/clean_settings.json +0 -0
  423. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/crewai/safe/full_chain.py +0 -0
  424. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/crewai/vulnerable/full_chain.py +0 -0
  425. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/a2a_2026/vulnerable_card.json +0 -0
  426. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/comment-and-control-2026-04-25/patched/review_agent.py +0 -0
  427. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/comment-and-control-2026-04-25/vulnerable/review_agent.py +0 -0
  428. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2025-65720-gpt-researcher/config-safe-rejected/.mcp.json +0 -0
  429. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2025-65720-gpt-researcher/config-unsafe/.mcp.json +0 -0
  430. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2025-65720-gpt-researcher/pin-vulnerable-git/package.json +0 -0
  431. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2025-65720-gpt-researcher/pin-vulnerable-pypi/requirements.txt +0 -0
  432. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2025-66335/patched/requirements.txt +0 -0
  433. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2025-66335/vulnerable/requirements.txt +0 -0
  434. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-19337-mcp-google-search/negative/package.json +0 -0
  435. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-19337-mcp-google-search/vulnerable/package.json +0 -0
  436. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-19516-mcp-grafana/patched/.mcp.json +0 -0
  437. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-19516-mcp-grafana/vulnerable/.mcp.json +0 -0
  438. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-20205/patched-splunk-pin/requirements.txt +0 -0
  439. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-20205/redacted-token-log/server.py +0 -0
  440. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-20205/vulnerable-splunk-pin/requirements.txt +0 -0
  441. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-20205/vulnerable-token-log/server.py +0 -0
  442. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-20205-config/patched-yaml/splunk-mcp.yaml +0 -0
  443. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-20205-config/vulnerable-inputs/inputs.conf +0 -0
  444. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-20205-config/vulnerable-yaml/splunk-mcp.yaml +0 -0
  445. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-23744-mcp-inspector/vendored-fork/vendor/mcpjam-inspector/server.ts +0 -0
  446. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-26015-docsgpt/config-safe-no-override/.mcp.json +0 -0
  447. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-26015-docsgpt/config-safe-rejected/.mcp.json +0 -0
  448. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-26015-docsgpt/config-unsafe/.mcp.json +0 -0
  449. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-26015-docsgpt/pin-safe/package.json +0 -0
  450. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-26015-docsgpt/pin-vulnerable/package.json +0 -0
  451. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-26015-docsgpt/pin-vulnerable-git/package.json +0 -0
  452. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-26030-semantic-kernel/pin-safe/requirements.txt +0 -0
  453. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-26030-semantic-kernel/pin-safe-floor/requirements.txt +0 -0
  454. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-26030-semantic-kernel/pin-vulnerable/requirements.txt +0 -0
  455. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-27825-atlassian/patched-pin/requirements.txt +0 -0
  456. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-27825-atlassian/vulnerable/agent.py +0 -0
  457. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-30615/patched/py_argv_allowlist.py +0 -0
  458. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-30615/vulnerable/py_os_system_stdin.py +0 -0
  459. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-30615/vulnerable/py_subprocess_shell.py +0 -0
  460. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-30615/vulnerable/ts_execa_shell.ts +0 -0
  461. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-30623-litellm/patched/requirements-floor.txt +0 -0
  462. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-30623-litellm/patched/requirements.txt +0 -0
  463. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-30623-litellm/vulnerable/requirements.txt +0 -0
  464. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-32211/patched-with-auth/.mcp.json +0 -0
  465. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-32211/vulnerable-no-auth/.mcp.json +0 -0
  466. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-32211-server/pyproject.toml +0 -0
  467. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-32211-server/server.py +0 -0
  468. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-33032/patched/router.go +0 -0
  469. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-33032/vulnerable/router.go +0 -0
  470. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-33032/vulnerable/server.py +0 -0
  471. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-33032/vulnerable/server.ts +0 -0
  472. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-33626/patched-pin/requirements.txt +0 -0
  473. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-33626/vulnerable/pipeline.py +0 -0
  474. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-39313/length-capped/http.ts +0 -0
  475. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-39313/patched/package.json +0 -0
  476. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-39313/vulnerable/http.ts +0 -0
  477. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-39313/vulnerable/package.json +0 -0
  478. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-40068-claudecode/pin-safe/package.json +0 -0
  479. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-40068-claudecode/pin-vulnerable/package.json +0 -0
  480. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-40933/vulnerable/flow.json +0 -0
  481. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-41481/patched-no-redirect/server.py +0 -0
  482. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-41481/patched-pin/requirements.txt +0 -0
  483. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-41481/vulnerable-pin/requirements.txt +0 -0
  484. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-41481/vulnerable-redirect/server.py +0 -0
  485. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-41488/patched-pin/requirements.txt +0 -0
  486. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-41488/patched-pinned/server.py +0 -0
  487. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-41488/vulnerable-pin/requirements.txt +0 -0
  488. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-41488/vulnerable-toctou/server.py +0 -0
  489. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-44717-mcp-calculate-server/pin-safe/requirements.txt +0 -0
  490. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-44717-mcp-calculate-server/pin-safe-floor/requirements.txt +0 -0
  491. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-44717-mcp-calculate-server/pin-vulnerable/requirements.txt +0 -0
  492. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-49856-jshook/negative/package.json +0 -0
  493. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-49856-jshook/vulnerable/package.json +0 -0
  494. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-49857-auth-fetch-mcp/negative/package.json +0 -0
  495. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-49857-auth-fetch-mcp/vulnerable/package.json +0 -0
  496. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-7061-chatgpt-mcp/safe/package.json +0 -0
  497. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-7061-chatgpt-mcp/vulnerable-git/package.json +0 -0
  498. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-7061-chatgpt-mcp/vulnerable-shorthand/package.json +0 -0
  499. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-72768-n8n/negative/package.json +0 -0
  500. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-72768-n8n/vulnerable/package.json +0 -0
  501. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-73222-claude-code-templates/negative/package.json +0 -0
  502. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-73222-claude-code-templates/vulnerable/package.json +0 -0
  503. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-73296-ufo/negative/mobile_mcp_server.py +0 -0
  504. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-73296-ufo/negative/requirements.txt +0 -0
  505. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-73296-ufo/vulnerable/mobile_mcp_server.py +0 -0
  506. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-73296-ufo/vulnerable/requirements.txt +0 -0
  507. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-73498-mcp-atlassian/negative/attachments.py +0 -0
  508. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-73498-mcp-atlassian/negative/requirements.txt +0 -0
  509. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-73498-mcp-atlassian/vulnerable/attachments.py +0 -0
  510. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-73498-mcp-atlassian/vulnerable/requirements.txt +0 -0
  511. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-7591-astro-mcp/source-safe/no_import.ts +0 -0
  512. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-7591-astro-mcp/source-safe/parametrized.ts +0 -0
  513. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-7591-astro-mcp/source-safe/tagged_template.ts +0 -0
  514. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-7591-astro-mcp/source-unsafe/index.ts +0 -0
  515. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/cve-2026-7591-astro-mcp/vulnerable/package.json +0 -0
  516. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/dns-rebind-sdk-class/apollo-patched/package.json +0 -0
  517. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/dns-rebind-sdk-class/apollo-vulnerable/package.json +0 -0
  518. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/dns-rebind-sdk-class/java-patched/pom.xml +0 -0
  519. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/dns-rebind-sdk-class/java-vulnerable/pom.xml +0 -0
  520. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/dns-rebind-sdk-class/python-patched/requirements.txt +0 -0
  521. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/dns-rebind-sdk-class/python-pattern-guarded/requirements.txt +0 -0
  522. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/dns-rebind-sdk-class/python-pattern-guarded/server.py +0 -0
  523. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/dns-rebind-sdk-class/python-pattern-unguarded/requirements.txt +0 -0
  524. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/dns-rebind-sdk-class/python-pattern-unguarded/server.py +0 -0
  525. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/dns-rebind-sdk-class/python-vulnerable/requirements.txt +0 -0
  526. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/healthcare_ai/safe_skill.md +0 -0
  527. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/healthcare_ai/vulnerable_skill.md +0 -0
  528. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/hook_rce/safe_settings.json +0 -0
  529. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/hook_rce/vulnerable_settings.json +0 -0
  530. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/india_pii/safe.txt +0 -0
  531. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/india_pii/vulnerable.txt +0 -0
  532. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/langchain/safe_requirements.txt +0 -0
  533. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/langchain/vulnerable_prompt.py +0 -0
  534. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/langchain/vulnerable_requirements.txt +0 -0
  535. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/marketplace/safe.json +0 -0
  536. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/marketplace/vulnerable.json +0 -0
  537. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/mcp_auth/safe_server.py +0 -0
  538. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/mcp_auth/vulnerable_server.py +0 -0
  539. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/oauth/safe.py +0 -0
  540. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/oauth/vulnerable.py +0 -0
  541. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/ox-mcp-stdio-class/patched_java.java +0 -0
  542. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/ox-mcp-stdio-class/patched_py.py +0 -0
  543. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/ox-mcp-stdio-class/patched_rust.rs +0 -0
  544. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/ox-mcp-stdio-class/patched_ts.ts +0 -0
  545. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/ox-mcp-stdio-class/vulnerable_java.java +0 -0
  546. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/ox-mcp-stdio-class/vulnerable_py.py +0 -0
  547. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/ox-mcp-stdio-class/vulnerable_rust.rs +0 -0
  548. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/ox-mcp-stdio-class/vulnerable_ts.ts +0 -0
  549. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/routines/safe.json +0 -0
  550. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/routines/vulnerable.json +0 -0
  551. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/skills/safe.md +0 -0
  552. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/skills/vulnerable.md +0 -0
  553. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/ssrf/safe.py +0 -0
  554. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/ssrf/vulnerable.py +0 -0
  555. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/state_privacy/safe_privacy.md +0 -0
  556. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/state_privacy/vulnerable_privacy.md +0 -0
  557. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/tasks/safe.py +0 -0
  558. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/cves/tasks/vulnerable.py +0 -0
  559. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/deepseek/safe/agent.py +0 -0
  560. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/deepseek/vulnerable/agent.py +0 -0
  561. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/env_with_secrets +0 -0
  562. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/eu_ai_act_art15_locale/documented_risk/.agent-audit-kit.yml +0 -0
  563. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/eu_ai_act_art15_locale/documented_risk/agent.yaml +0 -0
  564. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/eu_ai_act_art15_locale/multilingual_en_only/agent.yaml +0 -0
  565. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/eu_ai_act_art15_locale/multilingual_en_only/evals/welcome.en.yaml +0 -0
  566. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/eu_ai_act_art15_locale/multilingual_internal_only/agent.yaml +0 -0
  567. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/eu_ai_act_art15_locale/multilingual_with_coverage/agent.yaml +0 -0
  568. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/eu_ai_act_art15_locale/multilingual_with_coverage/evals/welcome.de.yaml +0 -0
  569. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/eu_ai_act_art15_locale/multilingual_with_coverage/evals/welcome.en.yaml +0 -0
  570. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/eu_ai_act_art15_locale/multilingual_with_coverage/evals/welcome.fr.yaml +0 -0
  571. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/eu_ai_act_art15_locale/single_locale/agent.yaml +0 -0
  572. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/harness_shared_state/safe_multi_agent.py +0 -0
  573. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/harness_shared_state/unsafe_multi_agent.py +0 -0
  574. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/ide_task_rce/clean/.vscode/tasks.json +0 -0
  575. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/ide_task_rce/jsonc/.vscode/tasks.json +0 -0
  576. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/ide_task_rce/worm/.vscode/launch.json +0 -0
  577. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/ide_task_rce/worm/.vscode/tasks.json +0 -0
  578. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ipi-wild-2026-04-24/poisoned_template.md +0 -0
  579. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/mcp-fhi/clean/server.py +0 -0
  580. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/mcp-fhi/vulnerable/server.py +0 -0
  581. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-2026-04-15/documented-risk/.agent-audit-kit.yml +0 -0
  582. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-2026-04-15/documented-risk/requirements.txt +0 -0
  583. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-2026-04-15/documented-risk/server.py +0 -0
  584. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-2026-04-15/python/sanitized/requirements.txt +0 -0
  585. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-2026-04-15/python/sanitized/server.py +0 -0
  586. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-2026-04-15/python/vulnerable/requirements.txt +0 -0
  587. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-2026-04-15/python/vulnerable/server.py +0 -0
  588. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-2026-04-15/typescript/sanitized/package.json +0 -0
  589. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-2026-04-15/typescript/sanitized/server.ts +0 -0
  590. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-2026-04-15/typescript/vulnerable/package.json +0 -0
  591. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-2026-04-15/typescript/vulnerable/server.ts +0 -0
  592. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-marketplace-fetch/patched.py +0 -0
  593. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-marketplace-fetch/vulnerable.py +0 -0
  594. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/ox-mcp-marketplace-fetch/vulnerable.ts +0 -0
  595. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/incidents/vercel-2026-04-19/app.yaml +0 -0
  596. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/kong_konnect/.mcp.json +0 -0
  597. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/langchain_prompt_loader/constant_safe.py +0 -0
  598. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/langchain_prompt_loader/user_path_unsafe.py +0 -0
  599. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/langchain_prompt_loader/validated_safe.py +0 -0
  600. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/langgraph/safe/graph.py +0 -0
  601. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/langgraph/vulnerable/graph.py +0 -0
  602. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_deprecated/clean_migrated/server.py +0 -0
  603. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_deprecated/config_all/.mcp.json +0 -0
  604. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_deprecated/logging_py/server.py +0 -0
  605. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_deprecated/roots_py/server.py +0 -0
  606. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_deprecated/sampling_py/server.py +0 -0
  607. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_deprecated/stdlib_logging_fp/util.py +0 -0
  608. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_sampling/clean_python/requirements.txt +0 -0
  609. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_sampling/clean_python/server.py +0 -0
  610. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_sampling/config_clean/.mcp.json +0 -0
  611. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_sampling/config_vulnerable/.mcp.json +0 -0
  612. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_sampling/documented_risk/.agent-audit-kit.yml +0 -0
  613. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_sampling/documented_risk/requirements.txt +0 -0
  614. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_sampling/documented_risk/server.py +0 -0
  615. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_sampling/vulnerable_python/requirements.txt +0 -0
  616. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_sampling/vulnerable_python/server.py +0 -0
  617. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_sampling/vulnerable_typescript/package.json +0 -0
  618. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_sampling/vulnerable_typescript/server.ts +0 -0
  619. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_ssrf/safe_tool.py +0 -0
  620. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_ssrf/vulnerable_tool.py +0 -0
  621. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/clean_py/requirements.txt +0 -0
  622. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/clean_py/server.py +0 -0
  623. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/documented_risk/.agent-audit-kit.yml +0 -0
  624. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/documented_risk/requirements.txt +0 -0
  625. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/documented_risk/server.py +0 -0
  626. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/vulnerable_001_py/requirements.txt +0 -0
  627. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/vulnerable_001_py/server.py +0 -0
  628. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/vulnerable_001_ts/package.json +0 -0
  629. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/vulnerable_001_ts/server.ts +0 -0
  630. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/vulnerable_002_py/client.py +0 -0
  631. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/vulnerable_002_py/requirements.txt +0 -0
  632. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/vulnerable_003_k8s/service.yaml +0 -0
  633. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/vulnerable_003_nginx/nginx.conf +0 -0
  634. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/vulnerable_003_store_py/handlers.py +0 -0
  635. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/vulnerable_003_store_py/requirements.txt +0 -0
  636. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/vulnerable_004_client/client.py +0 -0
  637. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_stateless/vulnerable_004_client/requirements.txt +0 -0
  638. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_tool_unsafe_eval/eval_safe.py +0 -0
  639. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_tool_unsafe_eval/eval_unsafe.py +0 -0
  640. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/mcp_tool_unsafe_eval/no_tool_decorator.py +0 -0
  641. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/metis_pomdp/refusal_refeed_safe.py +0 -0
  642. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/metis_pomdp/refusal_refeed_unsafe.py +0 -0
  643. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/metis_pomdp/scoring_sink_unsafe.py +0 -0
  644. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/nvd/nvd_2_0_mcp_sample.json +0 -0
  645. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/openapi_smells/clean.openapi.yaml +0 -0
  646. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/openapi_smells/smelly.openapi.yaml +0 -0
  647. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/openclaw/role_default_admin_unsafe.py +0 -0
  648. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/openclaw/role_explicit_safe.py +0 -0
  649. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/package_with_risks.json +0 -0
  650. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/pipelock/policy_invalid.yaml +0 -0
  651. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/pipelock/policy_minimal.yaml +0 -0
  652. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/pipelock/policy_with_parity.yaml +0 -0
  653. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/project_deal/safe/pricer.py +0 -0
  654. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/project_deal/vulnerable/pricer.py +0 -0
  655. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/server_cards/clean.server-card.json +0 -0
  656. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/server_cards/poisoned.server-card.json +0 -0
  657. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/session_splice/benign/benign.session.json +0 -0
  658. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/session_splice/path/path_splice.session.json +0 -0
  659. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/session_splice/single/single_call_full.session.json +0 -0
  660. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/session_splice/url/url_splice.session.json +0 -0
  661. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/sessions/langgraph-checkpoint.json +0 -0
  662. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/sessions/openai-agents-trace.json +0 -0
  663. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/sessions/raw-calls.jsonl +0 -0
  664. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/skill_composition/benign/skills/code-formatter/SKILL.md +0 -0
  665. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/skill_composition/benign/skills/doc-writer/SKILL.md +0 -0
  666. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/skill_composition/benign/skills/project-reader/SKILL.md +0 -0
  667. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/skill_composition/collude/skills/credential-loader/SKILL.md +0 -0
  668. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/skill_composition/collude/skills/metrics-reporter/SKILL.md +0 -0
  669. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/skill_composition/collude/skills/project-reader/SKILL.md +0 -0
  670. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/skill_lifecycle/safe_skill.py +0 -0
  671. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/skill_lifecycle/unsafe_skill.py +0 -0
  672. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/social_agents/tiktok_human_in_loop.py +0 -0
  673. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/social_agents/tiktok_unsafe.py +0 -0
  674. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/stainless_lineage/config_root/stainless.yml +0 -0
  675. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/stainless_lineage/generated_python_sdk/client.py +0 -0
  676. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/stainless_lineage/generated_typescript_sdk/client.ts +0 -0
  677. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/stainless_lineage/handwritten/server.py +0 -0
  678. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/vulnerable_hooks.json +0 -0
  679. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/vulnerable_mcp.json +0 -0
  680. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/fixtures/vulnerable_settings.json +0 -0
  681. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_a2a_2026.py +0 -0
  682. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_a2a_protocol.py +0 -0
  683. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_action.py +0 -0
  684. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_agent_config.py +0 -0
  685. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_agent_trust_surface.py +0 -0
  686. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_aicm.py +0 -0
  687. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_anthropic_sdk_hardening.py +0 -0
  688. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_argv_toctou.py +0 -0
  689. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cli.py +0 -0
  690. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_compliance_output.py +0 -0
  691. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_compliance_v2.py +0 -0
  692. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_corpus_n_single_source.py +0 -0
  693. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_corpus_target_consistency.py +0 -0
  694. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_coverage_map.py +0 -0
  695. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_coverage_tables.py +0 -0
  696. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_crewai_nvd_and_evasion.py +0 -0
  697. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_crosswalk.py +0 -0
  698. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_csa_baseline_watcher.py +0 -0
  699. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2025_66335.py +0 -0
  700. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2025_66414_python_sdk.py +0 -0
  701. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2026_20205_config.py +0 -0
  702. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2026_20205_splunk.py +0 -0
  703. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2026_32211.py +0 -0
  704. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2026_32211_server.py +0 -0
  705. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2026_33626.py +0 -0
  706. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2026_35568_java.py +0 -0
  707. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2026_35577_apollo.py +0 -0
  708. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2026_39313.py +0 -0
  709. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2026_40576_excel.py +0 -0
  710. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2026_40608_next_ai_draw.py +0 -0
  711. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2026_41481.py +0 -0
  712. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_2026_41488.py +0 -0
  713. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cve_fix_and_watch_and_advisories.py +0 -0
  714. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cves_2026.py +0 -0
  715. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_cyclonedx_aibom.py +0 -0
  716. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_determinism_benchmark.py +0 -0
  717. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_diff.py +0 -0
  718. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_discovery.py +0 -0
  719. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_engine.py +0 -0
  720. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_engine_ignore_paths.py +0 -0
  721. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_eu_ai_act_art15_locale.py +0 -0
  722. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_examples.py +0 -0
  723. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_false_positive_harness.py +0 -0
  724. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_fix.py +0 -0
  725. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_flowise.py +0 -0
  726. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_gha_immutable.py +0 -0
  727. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_healthcare_ai_and_state_privacy.py +0 -0
  728. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_hook_injection.py +0 -0
  729. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_ide_task_rce.py +0 -0
  730. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_index_builder.py +0 -0
  731. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_india_pii.py +0 -0
  732. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_integrations_notify.py +0 -0
  733. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_kong_konnect_cve_2026_13341.py +0 -0
  734. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_legal_compliance.py +0 -0
  735. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_llm_scan.py +0 -0
  736. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_llm_scan_mod.py +0 -0
  737. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_llm_sql_rce.py +0 -0
  738. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_marketplace_manifest.py +0 -0
  739. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_marketplace_sources.py +0 -0
  740. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_apps_ui.py +0 -0
  741. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_atlassian_cve_2026_73498.py +0 -0
  742. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_attestation.py +0 -0
  743. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_auth_pathtraversal.py +0 -0
  744. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_config.py +0 -0
  745. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_deprecated_features.py +0 -0
  746. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_env_placeholder_exfil.py +0 -0
  747. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_gateway_registry_cve_2026_14471.py +0 -0
  748. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_http_noauth_server.py +0 -0
  749. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_marketplace_fetch.py +0 -0
  750. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_noauth_default.py +0 -0
  751. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_routing_desync.py +0 -0
  752. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_sampling_capability.py +0 -0
  753. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_security_baseline.py +0 -0
  754. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_server_card.py +0 -0
  755. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_ssrf_toolarg.py +0 -0
  756. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_stateless_migration.py +0 -0
  757. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_stdio_cmd_inj_java.py +0 -0
  758. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_stdio_cmd_inj_python.py +0 -0
  759. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_stdio_cmd_inj_rust.py +0 -0
  760. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_stdio_cmd_inj_typescript.py +0 -0
  761. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_stdio_launcher.py +0 -0
  762. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_toolgate_asymmetry.py +0 -0
  763. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcp_tunnel.py +0 -0
  764. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_mcpwn.py +0 -0
  765. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_no_placeholder_cves.py +0 -0
  766. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_nsa_mcp_csi.py +0 -0
  767. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_oauth_resource_indicators.py +0 -0
  768. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_oauth_surface.py +0 -0
  769. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_owasp_agentic_coverage.py +0 -0
  770. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_owasp_public_json.py +0 -0
  771. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_owasp_report.py +0 -0
  772. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_owasp_report_output.py +0 -0
  773. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_parity_region_drift.py +0 -0
  774. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_phase3.py +0 -0
  775. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_pin_drift.py +0 -0
  776. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_pinning.py +0 -0
  777. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_pinning_mod.py +0 -0
  778. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_pr_summary.py +0 -0
  779. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_preset_mcp_2026_07_28.py +0 -0
  780. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_preset_mcp_ox_2026_04.py +0 -0
  781. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_proxy.py +0 -0
  782. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_repo_metadata_matches_code.py +0 -0
  783. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_repo_metadata_sync.py +0 -0
  784. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_rule_count_sync.py +0 -0
  785. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_sandbox_self_disable.py +0 -0
  786. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_sarif_fingerprints.py +0 -0
  787. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_sarif_github_upload.py +0 -0
  788. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_sarif_output.py +0 -0
  789. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_scanner_manifest.py +0 -0
  790. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_scoring.py +0 -0
  791. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_secret_exposure.py +0 -0
  792. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_serena_cve_2026_49471.py +0 -0
  793. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_session_adapters.py +0 -0
  794. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_session_splice.py +0 -0
  795. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_shared_resource_authz.py +0 -0
  796. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_skill_composition.py +0 -0
  797. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_skill_poisoning.py +0 -0
  798. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_skill_untrusted_exec_path.py +0 -0
  799. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_state_of_mcp_report.py +0 -0
  800. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_stdio_injection.py +0 -0
  801. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_supply_chain.py +0 -0
  802. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_taint_analysis.py +0 -0
  803. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_tool_poisoning.py +0 -0
  804. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_toxic_flow.py +0 -0
  805. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_transport_security.py +0 -0
  806. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_trust_boundary.py +0 -0
  807. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_typescript_pattern_scan_sql.py +0 -0
  808. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_ufo_mobile_mcp.py +0 -0
  809. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_10_features.py +0 -0
  810. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_10_rules.py +0 -0
  811. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_11_rules.py +0 -0
  812. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_13_rules.py +0 -0
  813. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_14_rules.py +0 -0
  814. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_15_rules.py +0 -0
  815. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_16_rules.py +0 -0
  816. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_17_rules.py +0 -0
  817. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_18_rules.py +0 -0
  818. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_19_rules.py +0 -0
  819. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_1_cve_rules.py +0 -0
  820. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_20_rules.py +0 -0
  821. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_21_rules.py +0 -0
  822. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_22_rules.py +0 -0
  823. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_8_features.py +0 -0
  824. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_8_rules.py +0 -0
  825. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_9_features.py +0 -0
  826. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_9_features_p1.py +0 -0
  827. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_v0_3_9_rules.py +0 -0
  828. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_verification.py +0 -0
  829. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_verification_mod.py +0 -0
  830. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_version_consistency.py +0 -0
  831. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_vuln_db.py +0 -0
  832. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/tests/test_watch_cve_feeds.py +0 -0
  833. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/vscode-extension/.vscodeignore +0 -0
  834. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/vscode-extension/CLAUDE.md +0 -0
  835. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/vscode-extension/README.md +0 -0
  836. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/vscode-extension/package.json +0 -0
  837. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/vscode-extension/src/extension.ts +0 -0
  838. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/vscode-extension/src/sarifReader.ts +0 -0
  839. {agent_audit_kit-0.3.76 → agent_audit_kit-0.3.78}/vscode-extension/tsconfig.json +0 -0
@@ -27,14 +27,14 @@ jobs:
27
27
  uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
28
28
 
29
29
  - name: Initialize CodeQL
30
- uses: github/codeql-action/init@f205ea1c3313d32999d8d6a48b4f6530d4437b38 # v4.37.4
30
+ uses: github/codeql-action/init@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6
31
31
  with:
32
32
  languages: ${{ matrix.language }}
33
33
 
34
34
  - name: Autobuild
35
- uses: github/codeql-action/autobuild@f205ea1c3313d32999d8d6a48b4f6530d4437b38 # v4.37.4
35
+ uses: github/codeql-action/autobuild@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6
36
36
 
37
37
  - name: Perform CodeQL Analysis
38
- uses: github/codeql-action/analyze@f205ea1c3313d32999d8d6a48b4f6530d4437b38 # v4.37.4
38
+ uses: github/codeql-action/analyze@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6
39
39
  with:
40
40
  category: "/language:${{ matrix.language }}"
@@ -0,0 +1,70 @@
1
+ name: Link check
2
+
3
+ # Catch a dead docs domain (the reason docs/CNAME -> docs.agentauditkit.io sat
4
+ # broken for months) at build time instead of after the fact. Runs on doc
5
+ # changes, on push to main, and weekly so a link that dies after merge still
6
+ # fails a build. `mailto:` links are excluded on purpose: security@agentauditkit.io
7
+ # is an aspirational contact whose domain is not registered yet, and we do not
8
+ # want the contact address to block docs builds.
9
+
10
+ on:
11
+ pull_request:
12
+ paths:
13
+ - '**/*.md'
14
+ - 'docs/**'
15
+ - 'mkdocs.yml'
16
+ - '.github/workflows/link-check.yml'
17
+ push:
18
+ branches: [main]
19
+ paths:
20
+ - '**/*.md'
21
+ - 'docs/**'
22
+ - 'mkdocs.yml'
23
+ schedule:
24
+ - cron: '23 6 * * 1' # Mondays 06:23 UTC
25
+
26
+ permissions:
27
+ contents: read
28
+
29
+ jobs:
30
+ links:
31
+ name: Check README + docs links
32
+ runs-on: ubuntu-latest
33
+ steps:
34
+ - uses: actions/checkout@v7.0.1
35
+
36
+ - name: Check links with lychee
37
+ uses: lycheeverse/lychee-action@v2
38
+ with:
39
+ args: >-
40
+ --no-progress
41
+ --exclude 'mailto:|agentauditkit\.io|globenewswire\.com|asciinema\.org'
42
+ --exclude-path 'docs/changelog/archive'
43
+ --max-retries 3
44
+ --retry-wait-time 5
45
+ --timeout 30
46
+ 'README.md'
47
+ 'docs/**/*.md'
48
+ fail: true
49
+
50
+ # globenewswire.com is excluded above because lychee fails its HTTP/2
51
+ # negotiation from the runner ("HTTP/2 protocol error. Server may not
52
+ # support HTTP/2 properly") while the URL itself is alive — verified 200
53
+ # over both HTTP/1.1 and HTTP/2 from outside CI. Excluding a live host is
54
+ # normally the wrong call, so this is the narrow trade: one press-release
55
+ # citation stays unchecked rather than the whole job staying red and
56
+ # hiding real breakage. Revisit if lychee gains a per-host HTTP/1.1 flag.
57
+ #
58
+ # The deterministic half of this job — relative links to files in this
59
+ # repo — is also covered by tests/test_docs_links.py, which fails fast and
60
+ # locally and does not depend on the network at all.
61
+ #
62
+ # asciinema.org is excluded for the same reason, after the gentler fix was
63
+ # tried and did not work: the README's demo embed times out from the runner
64
+ # while answering 200 in ~0.9s from elsewhere, and raising --timeout from
65
+ # 20s to 30s did not change it — so it is being throttled or blocked by
66
+ # IP range, not merely slow. A timeout exits 2 exactly like a dead link, so
67
+ # leaving it in makes the job permanently red.
68
+ #
69
+ # --timeout stays at 30 regardless: it is a reasonable default for the
70
+ # remaining hosts and costs nothing.
@@ -31,6 +31,6 @@ jobs:
31
31
  publish_results: true
32
32
 
33
33
  - name: Upload SARIF results
34
- uses: github/codeql-action/upload-sarif@f205ea1c3313d32999d8d6a48b4f6530d4437b38 # v4.37.4
34
+ uses: github/codeql-action/upload-sarif@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6
35
35
  with:
36
36
  sarif_file: results.sarif
@@ -16,6 +16,24 @@ open.
16
16
  > issue. The per-CVE latency figures in the tables are **measurements recorded at
17
17
  > the time**, kept as dated facts, not a standing promise.
18
18
 
19
+ ## 2026-08-15 (v0.3.77)
20
+
21
+ Five `cve-response` issues from the 2026-08-14 watcher wave. All five in scope and pinned, as three rules — the three CKAN defects share one package and one fix version. Two of the five had a fix version in the NVD text that the vendor advisory contradicts; both are pinned to the advisory.
22
+
23
+ | CVE | Reference | AAK rule / disposition | Triaged |
24
+ |---|---|---|---|
25
+ | CVE-2026-50027 (mcp-memory-service < 10.67.1 — every HTTP route under `/api/documents/*` is served with no authentication dependency attached, even when the server is configured with an API key (`MCP_API_KEY`) or OAuth, so an unauthenticated remote caller can write arbitrary content into the memory store, read stored documents back, and permanently delete other users' memories; the sibling `/api/memories` routes do enforce auth, which is what makes this an inconsistent boundary rather than an obviously-open server; CRITICAL, CVSS 9.8) | [NVD](https://nvd.nist.gov/vuln/detail/CVE-2026-50027) | **In scope, pinned** `AAK-MCP-MEMSERVICE-CVE-2026-50027-001` (SUPPLY_CHAIN, CRITICAL): floor `mcp-memory-service >= 10.67.1`. Resolves on PyPI (10.67.1 published; 11.8.0 latest). [GHSA-84hp-mqvj-3p8h](https://github.com/advisories/GHSA-84hp-mqvj-3p8h) confirms `< 10.67.1`. (#589) | 2026-08-15 |
26
+ | CVE-2026-49986 (Cortex / `neuro-cortex-memory` <= 3.17.0 — `_find_dev_source()` treats the `CLAUDE_PROJECT_DIR` environment variable, which Claude Code sets to whatever project is currently open, as a candidate Cortex developer checkout; `_is_cortex_root()` validates it by checking only for an `mcp_server/` subdirectory and a `ui/unified-viz.html` file, so an attacker who ships those two marker paths in a repository gets `mcp_server/server/visualize_bootstrap.py` executed from it via `subprocess.run([sys.executable, ...])` with the victim's privileges, merely because the victim opened the repo; HIGH) | [NVD](https://nvd.nist.gov/vuln/detail/CVE-2026-49986) | **In scope, pinned** `AAK-MCP-CORTEX-CVE-2026-49986-001` (SUPPLY_CHAIN, HIGH): floor `neuro-cortex-memory >= 3.18.0`. **Not the 3.17.1 the NVD text names as the fix** — [GHSA-gvpp-v77h-5w8g](https://github.com/advisories/GHSA-gvpp-v77h-5w8g) records `<= 3.17.0` affected with `3.18.0` first patched, and 3.17.1 was never published to PyPI at all, so a floor taken from the prose would point at a version that does not exist. The distribution was later renamed to `hypermnesia-mcp`, whose earliest release is 3.24.0 and is therefore always above this floor — no second pin needed. The npm package of the same name is the same project (`cdeust/Cortex`) on a separate 2.x train that GHSA does not cover. (#585) | 2026-08-15 |
27
+ | CVE-2026-73846, CVE-2026-73845, CVE-2026-73844 (`@aborruso/ckan-mcp-server` < 0.4.112 — `canonicalizeParams` in `src/utils/cache.ts` serialises request parameters without escaping `&`, `=` or `\|`, so distinct logical parameter sets collide in `buildCacheKey` and an attacker can prime the shared cache with a response another user's query then receives (6.5); `isValidMqaServer` in `src/tools/quality.ts` validates the `server_url` parameter with a prefix-only regex for `dati.gov.it`, which suffix-host and URL-userinfo forms defeat, letting a caller point the tool at an attacker-controlled host (5.3); and error paths reflect raw upstream bodies and internal exception text — hostnames, internal IPs, DB errors, stack fragments — back to the caller (3.7)) | [NVD](https://nvd.nist.gov/vuln/detail/CVE-2026-73846) | **In scope, pinned** `AAK-MCP-CKAN-CVE-2026-73846-001` (SUPPLY_CHAIN, MEDIUM): floor `@aborruso/ckan-mcp-server >= 0.4.112`, one pin carrying all three CVEs since they share a package and a fix version. The package name is not in any advisory — no GHSA exists for these three — and had to be identified from the `dati.gov.it` detail in the description; `ckan-mcp-server` on PyPI is an unrelated 0.0.1 placeholder and nothing resolves under the obvious npm spellings. Resolves on npm (0.4.112 published; 0.4.118 latest). (#586, #587, #588) | 2026-08-15 |
28
+
29
+ ## 2026-08-15 (unreleased)
30
+
31
+ Backlog item, not a watcher issue: the Agent-Zero row deferred from the 2026-05-01 OX MCP batch (#160). Re-verified against NVD and the registries before authoring, which turned up three stale assumptions in the roadmap row.
32
+
33
+ | CVE | Reference | AAK rule / disposition | Triaged |
34
+ |---|---|---|---|
35
+ | CVE-2026-30624 (Agent Zero 0.9.8 — the External MCP Servers feature accepts a JSON config carrying arbitrary `command` and `args` and executes them when the config is applied, with no validation or restriction, so a malicious MCP config is remote code execution with the Agent Zero process's privileges; HIGH, CVSS 8.6) | [NVD](https://nvd.nist.gov/vuln/detail/CVE-2026-30624) | **In scope, pinned** `AAK-AGENT-ZERO-CVE-2026-30624-PIN-001` (SUPPLY_CHAIN, HIGH), git-reference-only, floor at the 1.x line. NVD's CPE scopes the CVE to exactly `agent-zero:0.9.8` with no `versionEndExcluding` and names no fixed release; the only reference is the OX advisory. Three corrections to the roadmap row: the repository moved `frdel/agent-zero` → `agent0ai/agent-zero` (both spellings matched, since existing manifests carry the old one); `agent-zero` now **does** resolve on PyPI but as an unrelated "AI outbound voice agent framework" (0.1.2, different author), so the rule matches git references only and never the bare distribution name; and the version scheme jumped 0.9.8 → 0.9.8.1/.2/.3 → v1.1 (2026-03-26) → v2.9, so the floor sits at 1.0 rather than a named fix. `_semver3` collapses 0.9.8.3 to (0, 9, 8), so the whole 0.9.8 patch line is treated as affected — the conservative reading, since no advisory says which patch carries a fix. (#160) | 2026-08-15 |
36
+
19
37
  ## 2026-08-14 (v0.3.76, second wave)
20
38
 
21
39
  Eight `cve-response` issues from the 2026-08-13 NVD wave. Three in scope (two new pins, one carried by a rule that already floors the same version); five adjudicated out of scope after a registry check — four because no resolvable artifact exists to pin, one because it is a web-application XSS with no MCP surface for a static config scan to see.
@@ -7,14 +7,42 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.3.78] - 2026-08-15
11
+
12
+ ### Fixed
13
+
14
+ - The CVE watcher no longer files CVEs from outside the ecosystem it tracks. NVD's `keywordSearch` matches indexed fields rather than only the description, and two of the watcher's keywords are short enough to hit unrelated CVEs: `mcp` (NVIDIA nForce parts are literally "MCP", so kernel CVEs match) and `claude` (increasingly appears in commit messages crediting the model for writing a patch). CVE-2026-68456 arrived via both at once — a `ueagle-atm` USB driver race whose description contains "mcp" zero times and ends "(The latter two were written by Claude...)". Every filed CVE opens a `cve-response` issue and the release gate blocks any tag while one is open, so an unrelated kernel CVE stopped a publish. Results are now corroborated against the description before filing.
15
+
16
+ ### Changed
17
+
18
+ - `AAK-MCP-STDIO-CMD-INJ-002` now decides by data flow instead of proximity (#22). It previously fired when a network-controlled marker appeared anywhere in the 1024 characters before a `new StdioClientTransport({...})`, which both over-fires (an unrelated source that happens to sit nearby) and under-fires (a real source reaching the sink from beyond the window). A tree-sitter pass now traces the `command`/`args` value back to its source through assignment, destructuring, template literals and single-hop helper returns. **What the rule reports is unchanged** — same rule_id, severity and framework mappings; only the decision moved. `tree-sitter` and `tree-sitter-typescript` are a new **optional** extra (`pip install "agent-audit-kit[taint]"`), lazy-imported, with the proximity heuristic retained as the fallback when the grammar is absent — so the default install stays dependency-light and fully offline.
19
+
20
+ ### Fixed
21
+
22
+ - Corrected the remediation on `AAK-DOCSGPT-MCP-STDIO-MITM-001` and `AAK-GPTRESEARCHER-MCP-STDIO-MITM-001`. Both told users to set `"deny_stdio_transport": true` or `"allowed_transports": ["sse"]` "so a MITM cannot flip the transport mid-session". Those keys are AgentAuditKit conventions, not MCP specification fields — they appear in **0 of the 748** public MCP configs in `benchmarks/data`, and searching the repo finds them only in AAK's own `rules.json`, tests and fixtures. Following that advice added a key the user's MCP client ignores, silenced the rule, and left them believing they were protected. The remediation now leads with the controls that work (the vendor version pin; TLS with certificate verification so the handshake cannot be rewritten) and states plainly what those keys are. Found while running the empirical false-positive study #162 asks for.
23
+
24
+ ### Fixed
25
+
26
+ - `ssrf_patterns` (AAK-SSRF-001..005) now requires reachability instead of deciding file-wide. It previously reported CRITICAL when the word `fetch` appeared anywhere in a file and a user-input marker appeared anywhere else — neither had to be code, related, or nearby — so a match inside a comment, a rule title or a regex literal counted. Against AAK's own source that produced three findings, all prose, including one where the SSRF scanner flagged **its own detection pattern**. Each rule now hangs off a real outbound call site whose URL argument is traced: Python via `ast`, TS/JS via comment-stripped def-use. String literals are deliberately kept, since a genuine metadata URL lives in one. Measured across `agent_audit_kit/`, `tests/fixtures`, `benchmarks/data`, `examples` and `vscode-extension`: **3 false positives removed, all 4 true positives preserved**. Closes #593.
27
+
28
+ ## [0.3.77] - 2026-08-15
29
+
10
30
  ### Added
11
31
 
32
+ - `AAK-MCP-MEMSERVICE-CVE-2026-50027-001` (SUPPLY_CHAIN, CRITICAL) — mcp-memory-service < 10.67.1 serves every `/api/documents/*` route with no auth dependency even when `MCP_API_KEY` or OAuth is configured; the sibling `/api/memories` routes do enforce it, making this an inconsistent boundary. Floor `>= 10.67.1`. Closes #589.
33
+ - `AAK-MCP-CORTEX-CVE-2026-49986-001` (SUPPLY_CHAIN, HIGH) — Cortex `<= 3.17.0` treats `CLAUDE_PROJECT_DIR` as a trusted source root, validated only by two marker files, then executes `visualize_bootstrap.py` from it. Floor `>= 3.18.0` per GHSA — **not** the 3.17.1 the NVD text names, which was never published. Closes #585.
34
+ - `AAK-MCP-CKAN-CVE-2026-73846-001` (SUPPLY_CHAIN, MEDIUM) — `@aborruso/ckan-mcp-server` < 0.4.112: cache-key collision, prefix-only host validation, and verbose error reflection. One pin, three CVEs. Closes #586, #587, #588.
35
+ - `aak` is now an installed console script, aliasing `agent-audit-kit`. The docs, changelogs and release notes have used `aak scan` / `aak score` / `aak watch-cve` as shorthand for many releases, but it was never declared in `[project.scripts]`, so every one of those snippets exited 127 when copied. Both names share a single entry point, and `tests/test_console_scripts.py` asserts they stay in step — plus that every `` `aak <cmd>` `` in the docs names a command that actually exists.
36
+ - `AAK-AGENT-ZERO-CVE-2026-30624-PIN-001` (SUPPLY_CHAIN, HIGH) — Agent Zero 0.9.8 executes the `command`/`args` of a user-supplied MCP server config without validation (CVE-2026-30624, CVSS 8.6). Git-reference-only pin with the floor at 1.0: `agent-zero` on PyPI is an unrelated voice-agent framework, and the repo moved `frdel/` → `agent0ai/`. Closes #160.
37
+ - `AAK-POLICY-TRUNCATION-001` (TRUST_BOUNDARY, HIGH) — a deny policy evaluated against a truncated copy of the value the executor receives, so anything past the cut point bypasses the deny list. CVE-2026-73614 (ClaudeHookBridge, CVSS 8.8) is the disclosed instance — truncation to 500 chars before `denyPatterns` while Claude Code ran the full command — but that package resolves on neither npm, PyPI nor GitHub, so the rule is written against the shape rather than the vendor. Fires only when the untruncated source is still used elsewhere in the file, which is what separates a policy/executor split from ordinary display truncation. Covers JS/TS `slice`/`substring`/`substr` and Python slicing. Zero findings against AAK's own source, the VS Code extension, and the benchmark corpus.
12
38
  - `AAK-MCP-AUTHFETCH-CVE-2026-49857-001` (SUPPLY_CHAIN, HIGH) — auth-fetch-mcp `<= 3.0.1`: `isPrivateV6()` misses IPv4-mapped IPv6 loopback in hex-normalised form, so `http://[::ffff:127.0.0.1]/` normalises to `[::ffff:7f00:1]`, `net.isIPv4('7f00:1')` is false, and the SSRF guard passes the URL through to loopback. Floor `>= 3.0.2` per GHSA-pvrj-8cg3-j5f8 — **not** the 3.0.1 the NVD prose names as the fix, which is inside the affected range. (#578)
13
39
  - `AAK-MCP-JSHOOK-CVE-2026-49856-001` (SUPPLY_CHAIN, MEDIUM) — @jshookmcp/jshook 0.3.1 enforces its SSRF authorization policy only on the raw HTTP/TCP/TLS tools; ICMP probe and traceroute call the native sink directly, giving internal reachability mapping with private-network access disabled. Floor `>= 0.3.2`. (#577)
14
40
  - `CVE-2026-73601` added to `AAK-FLOWISE-001` — the Custom MCP node stdio RCE shares Flowise's 3.1.3 fix floor, which that rule's detector already enforces, so it is a reference addition rather than a duplicate pin. (#575)
15
41
 
16
42
  ### Changed
17
43
 
44
+ - Fixed four dangling relative links in `docs/`: one written a directory level too shallow, two pointing at per-rule pages that were never authored (for rules that do exist in the registry), and one to a doc explicitly marked "queued for v0.4.0". `tests/test_docs_links.py` now asserts every relative link under `docs/` resolves — the deterministic half of the link check, without the network flakiness.
45
+ - Launch copy and `CLAUDE_PROMPT.md` now point at `https://sattyamjjain.github.io/agent-audit-kit/` instead of `mcp-security-index.com`, which never resolved and had been failing the docs link check on every PR (6 files).
18
46
  - Adjudicated out of scope after a registry check, with reasons recorded in `CHANGELOG.cves.md`: CVE-2026-73614 (ClaudeHookBridge — absent from npm, PyPI and GitHub, so nothing to key a detector on), CVE-2026-19751 / CVE-2026-19752 (mcp-dominican-layer — rolling release, NVD states version details cannot be specified), CVE-2026-19753 (mcp-rdf-explorer — unresolvable, no published fix), CVE-2026-73037 (Next AI Draw.io — reflected XSS in a web app, no MCP surface and no XSS detector here). (#576, #579, #580, #581, #582)
19
47
 
20
48
  - `AAK-MCP-UFO-CVE-2026-73296-001` (MCP_CONFIG, CRITICAL) — Microsoft UFO < 3.0.8 serves its mobile MCP data-collection (8020) and action (8021) Streamable-HTTP endpoints without inbound auth, handing an unauthenticated caller the ADB device-control tools. New `ufo_mobile_mcp` scanner over vendored source, MCP config, and git dependency; a detection rule rather than a pin, because UFO ships as a git checkout and `ufo` on npm is an unrelated package. (#573)
@@ -5,8 +5,8 @@
5
5
 
6
6
  **AgentAuditKit** (version tracked in `pyproject.toml` / `agent_audit_kit.__version__`) — Security scanner for MCP-connected AI agent pipelines. The "npm audit" for AI agents.
7
7
 
8
- - **298 rules** across 12 security categories
9
- - **89 scanner modules** including AST-based Python taint analysis plus regex dangerous-sink pattern scanners for TypeScript/JavaScript and Rust (pattern matching, not taint flow)
8
+ - **303 rules** across 12 security categories
9
+ - **90 scanner modules** including AST-based Python taint analysis plus regex dangerous-sink pattern scanners for TypeScript/JavaScript and Rust (pattern matching, not taint flow)
10
10
  - **26 CLI commands**: `scan`, `discover`, `pin`, `verify`, `fix`, `score`, `update`, `proxy`, `kill`, `diff`, `suggest`, `watch`, `watch-cve`, `notify`, `install-precommit`, `export-rules`, `verify-bundle`, `sbom`, `report`, `coverage`, `inspect-ide`, `parity`, `corpus`, `pipelock`, `rule`, `scanners`
11
11
  - **OWASP coverage**: Agentic Top 10 (10/10), MCP Top 10 (10/10), Adversa AI Top 25
12
12
  - **Compliance mapping** (12 frameworks): EU AI Act, SOC 2, ISO 27001/42001, HIPAA, NIST AI RMF, NSA MCP CSI, + regional (India DPDP, Singapore, Alabama, Tennessee)
@@ -79,7 +79,7 @@ agent_audit_kit/
79
79
  vuln_db.py, advisories.py, feeds/, watch.py # CVE DB, advisories, live feeds, watch/watch-cve
80
80
  coverage.py, bundle.py # Framework coverage; signed rule-bundle export/verify
81
81
  rules/
82
- builtin.py # 298 RuleDefinition entries (rule registry)
82
+ builtin.py # 303 RuleDefinition entries (rule registry)
83
83
  scanners/ # 89 registered scanners, each exports scan() -> (list[Finding], set[str])
84
84
  mcp_config.py # MCP configuration checks
85
85
  hook_injection.py # Hook injection detection
@@ -138,7 +138,7 @@ benchmarks/ # Benchmark crawler
138
138
  ## Detected Patterns
139
139
 
140
140
  - **Scanner registry**: `engine.py` lazy-builds a list of `ScannerRegistration` dataclasses; each wraps a `scan_fn` callable. New scanners are registered via try/except ImportError blocks for backward compatibility.
141
- - **Rule registry**: `rules/builtin.py` defines all 298 rules as `RuleDefinition` dataclasses in a global `RULES` dict, populated by `_r()` helper.
141
+ - **Rule registry**: `rules/builtin.py` defines all 303 rules as `RuleDefinition` dataclasses in a global `RULES` dict, populated by `_r()` helper.
142
142
  - **Counts are generated, never hand-typed**: `agent_audit_kit/__init__.py` holds `RULE_COUNT` / `SCANNER_COUNT`; `scripts/sync_rule_count.py` and `scripts/sync_scanner_count.py` regenerate them. `scripts/check_counts.py` (`make count-check`) fails if any tracked `*.md` — **including this file** — carries a stale count. Regenerate; do not hand-fix. Dated/historical docs are exempted via the exclusion list in `check_counts.py`.
143
143
  - **Count invariants under test**: `tests/test_repo_metadata_sync.py` asserts `SCANNER_COUNT` equals the real `engine._build_registry()` size, so the scanner constant tracks the registry, not the file count in `scanners/`.
144
144
  - **Finding model**: All scanners produce `Finding` dataclasses with rule_id, severity, category, evidence, remediation, and framework references (OWASP, CVE, Adversa).
@@ -22,8 +22,8 @@ Read in order:
22
22
  2. `../agent-airlock/ECOSYSTEM_STATE_2026-04.md` — shared ecosystem brief
23
23
  3. `ROADMAP_2026.md` — 90-day plan for this repo
24
24
  4. `../agent-airlock/LAUNCH_PLAYBOOK_2026.md` — shared growth tactics
25
- 5. `agent_audit_kit/rules/builtin.py` — understand the 298 existing rules
26
- 6. `agent_audit_kit/scanners/*.py` — understand the 89 scanner modules
25
+ 5. `agent_audit_kit/rules/builtin.py` — understand the 303 existing rules
26
+ 6. `agent_audit_kit/scanners/*.py` — understand the 90 scanner modules
27
27
  7. `tests/conftest.py` — fixture patterns
28
28
  8. Run `pytest -v` and `agent-audit-kit scan .` on the repo's own fixtures to confirm baseline
29
29
 
@@ -81,7 +81,7 @@ This is the leaderboard-ownership growth play.
81
81
 
82
82
  1. **Crawler**: discovers MCP servers from `anthropics/claude-plugins-official`, `claudemarketplaces.com`, `aitmpl.com`, `buildwithclaude.com`, and the top 500 GitHub results for `topic:mcp-server`. Store in `benchmarks/crawler/`.
83
83
  2. **Scanner runner**: runs the full agent-audit-kit rule catalog against each MCP server weekly.
84
- 3. **Index site**: publish `mcp-security-index.com` (or `index.agentauditkit.dev`) as a static site with per-server grades A–F, rule-hit breakdown, and week-over-week trends. Hosted on Cloudflare Pages.
84
+ 3. **Index site**: publish `sattyamjjain.github.io/agent-audit-kit` (or `index.agentauditkit.dev`) as a static site with per-server grades A–F, rule-hit breakdown, and week-over-week trends. Hosted on Cloudflare Pages.
85
85
  4. **Disclosure policy**: every discovered vuln goes to the maintainer first with a 90-day disclosure window. Publish the policy at `docs/disclosure-policy.md` before crawling.
86
86
  5. **Weekly State of MCP Security** blog post summarizing new findings, trends, and the worst-graded servers. This is the Aider-leaderboard play.
87
87
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: agent-audit-kit
3
- Version: 0.3.76
3
+ Version: 0.3.78
4
4
  Summary: Security scanner for MCP-connected AI agent pipelines
5
5
  Project-URL: Homepage, https://github.com/sattyamjjain/agent-audit-kit
6
6
  Project-URL: Repository, https://github.com/sattyamjjain/agent-audit-kit
@@ -28,8 +28,13 @@ Provides-Extra: dev
28
28
  Requires-Dist: mypy>=1.0; extra == 'dev'
29
29
  Requires-Dist: pytest-cov>=4.0; extra == 'dev'
30
30
  Requires-Dist: pytest>=7.0; extra == 'dev'
31
- Requires-Dist: ruff<0.16,>=0.15; extra == 'dev'
31
+ Requires-Dist: ruff<0.17,>=0.15; extra == 'dev'
32
+ Requires-Dist: tree-sitter-typescript>=0.21; extra == 'dev'
33
+ Requires-Dist: tree-sitter>=0.21; extra == 'dev'
32
34
  Requires-Dist: types-pyyaml>=6.0; extra == 'dev'
35
+ Provides-Extra: taint
36
+ Requires-Dist: tree-sitter-typescript>=0.21; extra == 'taint'
37
+ Requires-Dist: tree-sitter>=0.21; extra == 'taint'
33
38
  Description-Content-Type: text/markdown
34
39
 
35
40
  <p align="center">
@@ -45,7 +50,7 @@ Description-Content-Type: text/markdown
45
50
  <a href="benchmarks/determinism/RESULTS.md"><img src="https://img.shields.io/badge/determinism-0%25%20variance%20(20%2F20)-brightgreen.svg" alt="Determinism: 0% variance across 20/20 runs"></a>
46
51
  <a href="benchmarks/false_positive/RESULTS.md"><img src="https://img.shields.io/badge/benign--slice%20HIGH%2FCRIT%20FP-0%2F1%20(n%3D1)-blue.svg" alt="Benign-slice HIGH/CRITICAL false-positive rate: 0/1, n=1"></a>
47
52
  <a href="docs/benchmarks/third-party-grading.md"><img src="https://img.shields.io/badge/third--party%20grade-see%20notes-lightgrey.svg" alt="Third-party grading notes"></a>
48
- <a href="#what-it-scans"><img src="https://img.shields.io/badge/rules-298-blue.svg" alt="Rules: 298"></a>
53
+ <a href="#what-it-scans"><img src="https://img.shields.io/badge/rules-303-blue.svg" alt="Rules: 303"></a>
49
54
  <a href="#frameworks--standards"><img src="https://img.shields.io/badge/OWASP_Agentic-10%2F10-green.svg" alt="OWASP Agentic: 10/10"></a>
50
55
  <a href="#frameworks--standards"><img src="https://img.shields.io/badge/OWASP_MCP-10%2F10-green.svg" alt="OWASP MCP: 10/10"></a>
51
56
  <a href="https://sattyamjjain.github.io/agent-audit-kit/"><img src="https://img.shields.io/badge/MCP_Security_Index-live-blue.svg" alt="MCP Security Index"></a>
@@ -64,9 +69,9 @@ Security scanner for MCP-connected AI agent pipelines. Finds misconfigurations,
64
69
  1. **Runs fully offline and deterministically.** Your code, configs, and secrets never leave the machine; the default scan path makes zero network calls, and the same input always yields the same finding (no model in the loop). This is measured, not just claimed: [20/20 identical runs → one shared SHA-256 finding-set digest, 0% variance](benchmarks/determinism/RESULTS.md). Scanners that route findings through an LLM judge can't guarantee a byte-identical re-run — so CI diffs, audit re-runs, and regression baselines stay stable here. No account, no telemetry. Precision is measured the same way, not asserted: we publish a reproducible, hand-adjudicated [benign-slice HIGH/CRITICAL false-positive rate](benchmarks/false_positive/RESULTS.md) — with a Wilson confidence interval and any offending rule filed as an issue.
65
70
  2. **Produces auditor-ready compliance-evidence packs.** SARIF for the GitHub Security tab plus PDF evidence reports mapped to 12 frameworks (EU AI Act, SOC 2, ISO 27001/42001, HIPAA, NIST AI RMF, and regional regimes) — what you hand an auditor, not just a list of findings.
66
71
 
67
- - **<!-- rule-count:total -->298<!-- /rule-count --> rules** across 12 security categories, covering the 2026 CVE wave
72
+ - **<!-- rule-count:total -->303<!-- /rule-count --> rules** across 12 security categories, covering the 2026 CVE wave
68
73
  - Rule count is computed from the registry and verified in CI (`test_rule_count_is_canonical`).
69
- - **<!-- scanner-count:total -->89<!-- /scanner-count --> scanner modules** including AST-based Python taint analysis and regex pattern scanners for TypeScript/JavaScript and Rust
74
+ - **<!-- scanner-count:total -->90<!-- /scanner-count --> scanner modules** including AST-based Python taint analysis and regex pattern scanners for TypeScript/JavaScript and Rust
70
75
  - **26 CLI commands**: `scan`, `discover`, `pin`, `verify`, `fix`, `score`, `update`, `proxy`, `kill`, `diff`, `suggest`, `watch`, `watch-cve`, `notify`, `install-precommit`, `export-rules`, `verify-bundle`, `sbom`, `report`, `coverage`, `inspect-ide`, `parity`, `corpus`, `pipelock`, `rule`, `scanners`
71
76
  - **OWASP coverage**: Agentic Top 10 (10/10), MCP Top 10 (10/10), Adversa AI Top 25
72
77
  - **Compliance mapping** (12 frameworks): EU AI Act Art. 15 + 55, SOC 2, ISO 27001, ISO/IEC 42001, HIPAA, NIST AI RMF, **NSA MCP Security CSI (U/OO/6030316-26, May 2026)**, Singapore Agentic AI, India DPDP 2023, **Alabama Personal Data Protection Act (HB 351, 2026)**, **Tennessee SB 1580 Health Care AI (PRA)** — PDF reports via `agent-audit-kit report --format pdf --framework <name>`; plus `agent-audit-kit scan . --compliance mcp-2026-roadmap` for **MCP 2026 Roadmap (May 2026)** conformance (a scan-time mapping, not a PDF evidence pack)
@@ -105,7 +110,7 @@ jobs:
105
110
  runs-on: ubuntu-latest
106
111
  steps:
107
112
  - uses: actions/checkout@v4
108
- - uses: sattyamjjain/agent-audit-kit@v0.3.76
113
+ - uses: sattyamjjain/agent-audit-kit@v0.3.78
109
114
  id: scan
110
115
  with:
111
116
  fail-on: high
@@ -124,6 +129,9 @@ appear as **inline PR annotations** and in the **Security tab**. See
124
129
  ```bash
125
130
  pip install agent-audit-kit
126
131
  agent-audit-kit scan .
132
+
133
+ # `aak` is installed as a shorthand for the same command
134
+ aak scan .
127
135
  ```
128
136
 
129
137
  ### Pre-commit Hook
@@ -132,7 +140,7 @@ agent-audit-kit scan .
132
140
  # .pre-commit-config.yaml
133
141
  repos:
134
142
  - repo: https://github.com/sattyamjjain/agent-audit-kit
135
- rev: v0.3.76
143
+ rev: v0.3.78
136
144
  hooks:
137
145
  - id: agent-audit-kit
138
146
  ```
@@ -157,7 +165,7 @@ agent-audit-kit scan examples/vulnerable-configs/04-hook-exfiltration/
157
165
  | Category | Rules | What It Detects |
158
166
  |----------|:-----:|-----------------|
159
167
  | **MCP Configuration** | <!-- category-count:MCP_CONFIG -->63<!-- /category-count --> | Missing auth middleware (CVE-2026-33032 class), empty IP allowlists, wildcard CORS, path traversal in resource handlers, SSRF (CWE-918), OAuth 2.1 misconfig (PKCE/S256/DPoP), Tasks primitive leakage (SEP-1686), shell injection, MCPwn middleware-asymmetry, Azure MCP no-auth (CVE-2026-32211), MCP Inspector vendored fork (CVE-2026-23744), 2026-07-28 stateless-MCP migration (`Mcp-Session-Id` reliance, removed `tasks/list`, sticky-session deployment, un-cached client `tools/list`), deny-by-default attested admission (signed clearance / `/.well-known/mcp-clearance` / pinned trust root — arXiv:2605.24248), Anthropic MCP Tunnels gateway (SSRF defense disabled / `upstream.disable_ip_validation`, HTTPS upstream missing `upstream.tls.ca_file` trust anchor, tunnel token + TLS private keys hardcoded in CI / committed Kubernetes Secrets — research preview 2026-05-19), stdio launcher injection (`npx`/`node`/`bash`/`sh`/`python` with `-c`/`-e`/`--eval`, or non-pinned interpolated argv — CVE-2026-40933), tool-gate enforcement asymmetry (allowlist / read-only / non-destructive check applied in `tools/list` but not `tools/call` — CVE-2026-46519), unauthenticated MCP HTTP/SSE server on `0.0.0.0` / wildcard CORS (GitLab/Nocturne/AgenticMail no-auth class — CVE-2026-44895/44830/50287), plus the non-loopback no-auth **launch surface** — `mcp.json`/`claude_desktop_config.json`/`*.mcp.yaml` `command`/`args`, Docker `--host 0.0.0.0`/`-p 0.0.0.0:`, and MCP Inspector / FastMCP startup binding `0.0.0.0`/`::`/a routable IP with no token or `DANGEROUSLY_OMIT_AUTH` set (CWE-306; MCP Inspector exemplar CVE-2026-23744; mcp-pinot `0.0.0.0:8080` no-auth CVE-2026-49257; Windows-MCP wildcard-CORS no-auth CVE-2026-48989; ~12,520 exposed services per Censys), argv-rebuild-after-allowlist command-injection TOCTOU (a command/argv approved against an allow/deny list is re-split / re-joined / extended before `subprocess`/`os.exec*` / Node `child_process.spawn`/`execa` with no re-check — `AAK-MCP-ARGV-TOCTOU-001`, **CWE-77 + CWE-367 / CVE-2026-53822**), MCP server unauthenticated-by-default / fail-open auth (an auth function returning truthy on an empty/unset secret, a placeholder/empty secret literal — `""`/`changeme`/`os.environ.get(...,"")` — or a warning-only secret gate on a `0.0.0.0` bind — `AAK-MCP-NOAUTH-DEFAULT`, **CWE-306 + CWE-862 / CVE-2026-48814** (incomplete fix of CVE-2026-46701)), bearer-token → session-file path traversal (an untrusted token / `Authorization` header joined into a session file path used for an existence/read check with no separator-reject or resolve-and-contain guard — `AAK-MCP-AUTH-PATHTRAVERSAL-001`, **CWE-22 / CVE-2026-52830**, fast-mcp-telegram < 0.19.1), MCP tool-argument URL SSRF (an MCP tool handler passing a caller-supplied `url`/`endpoint`/`target` argument straight into an outbound `requests`/`httpx`/`urllib`/`aiohttp` fetch with no host/scheme allow-list — `ast` parameter→fetch taint for Python, regex fallback for TS/JS/Rust — `AAK-MCP-SSRF-001`, **CWE-918 / CVE-2026-14748**, AIAnytime Awesome-MCP-Server `mcp-wiki/wiki-summary`), Serena MCP toolkit unauthenticated-dashboard RCE (`serena-agent` < 1.5.2 — an unauthenticated Flask dashboard on a fixed port reachable via DNS rebinding writes the agent's persistent memory, chained with `execute_shell_command` `shell=True` to remote code execution — `AAK-MCP-SERENA-CVE-2026-49471-001`, **CWE-306 + CWE-352 / CVE-2026-49471**, HIGH 8.3), MCP 2026-07-28 deprecated features (the `roots` / `sampling` / `logging` capabilities annotation-deprecated under the RC's new 12-month deprecation policy — flagged across config + server source so authors migrate before removal — `AAK-MCP-DEPRECATED-001..003`, **SEP-2577 / SEP-2596**), OAuth `iss`-validation gap (an authorization-code client that handles the auth response but never validates the RFC 9207 `iss` parameter, the RC's actual new OAuth requirement — `AAK-OAUTH-006`, **RFC 9207 / SEP-2468**), RFC 8707 Resource-Indicator absence (an OAuth 2.1 flow / MCP client config that never sets the `resource` parameter, so issued tokens aren't audience-bound and a token minted for one MCP server can be replayed at another — the confused-deputy / audience-confusion class; mandatory in the **ratified** MCP 2025-11-25 auth spec, independent of the 2026-07-28 RC — `AAK-OAUTH-007`, **RFC 8707 / RFC 9728 §7.4**), RFC 9728 Protected-Resource-Metadata discovery gap (a remote MCP server config that embeds a static `Authorization`/`Bearer`/`auth` credential with no `/.well-known/oauth-protected-resource` discovery path, or server source enforcing bearer auth without serving PRM — the resource-discovery arm of the 2026-07-28 auth profile — `AAK-OAUTH-008`, **RFC 9728**) |
160
- | **Supply Chain** | <!-- category-count:SUPPLY_CHAIN -->85<!-- /category-count --> | Vulnerable LangChain / langchain-text-splitters versions, named pin rules for `astro-mcp-server` / `chatgpt-mcp-server` / `docsgpt` / `gpt-researcher` / `litellm` / `mcp-calculate-server` / `semantic-kernel` / `@anthropic-ai/claude-code` / `apache-doris-mcp-server` / `excel-mcp-server`, OX MCP-STDIO command-injection (Python/TS/Java/Rust) — `AAK-MCP-STDIO-CMD-INJ-001..004` — Stainless-generator lineage, marketplace.json signatures / typosquat / mutable refs, unpinned packages, dangerous install scripts, untrusted-search-path executable override in skill/install flows (`.env`-sourced binary, workspace-prepended `PATH`, `shutil.which` over a tainted PATH, Homebrew env override — `AAK-SKILL-UNTRUSTED-EXEC-PATH`, **CWE-426 / CVE-2026-53819**), and the **2026-07 MCP/agent CVE disclosure wave** — verified PyPI/npm version-pins for `litellm` < 1.84.0 (MCP auth bypass + skills-archive traversal, **CVE-2026-59822/59820**), `cline` < 3.0.30 (Hub-dashboard WS origin bypass → RCE, **CVE-2026-59723**), `mcp-text-editor` ≤ 1.0.2 (path traversal, **CVE-2026-15138**), `n8n` < 2.27.4/2.28.1 (MCP tool credential-domain bypass, **CVE-2026-59207**), `ruflo` < 3.16.3 (unauth MCP bridge RCE, **CVE-2026-59726**, CVSS 10), `@arikusi/deepseek-mcp-server` < 1.8.0 (unbound session IDs + unauth HTTP transport, **CVE-2026-55604/55605**), `mcp-server-kubernetes` < 3.9.0 (kubectl `--server` argument injection, **CVE-2026-61459**, CVSS 9.8), and `astrbot` ≤ 4.25.2 (MCP-test-endpoint SSRF, **CVE-2026-15501**) |
168
+ | **Supply Chain** | <!-- category-count:SUPPLY_CHAIN -->89<!-- /category-count --> | Vulnerable LangChain / langchain-text-splitters versions, named pin rules for `astro-mcp-server` / `chatgpt-mcp-server` / `docsgpt` / `gpt-researcher` / `litellm` / `mcp-calculate-server` / `semantic-kernel` / `@anthropic-ai/claude-code` / `apache-doris-mcp-server` / `excel-mcp-server`, OX MCP-STDIO command-injection (Python/TS/Java/Rust) — `AAK-MCP-STDIO-CMD-INJ-001..004` — Stainless-generator lineage, marketplace.json signatures / typosquat / mutable refs, unpinned packages, dangerous install scripts, untrusted-search-path executable override in skill/install flows (`.env`-sourced binary, workspace-prepended `PATH`, `shutil.which` over a tainted PATH, Homebrew env override — `AAK-SKILL-UNTRUSTED-EXEC-PATH`, **CWE-426 / CVE-2026-53819**), and the **2026-07 MCP/agent CVE disclosure wave** — verified PyPI/npm version-pins for `litellm` < 1.84.0 (MCP auth bypass + skills-archive traversal, **CVE-2026-59822/59820**), `cline` < 3.0.30 (Hub-dashboard WS origin bypass → RCE, **CVE-2026-59723**), `mcp-text-editor` ≤ 1.0.2 (path traversal, **CVE-2026-15138**), `n8n` < 2.27.4/2.28.1 (MCP tool credential-domain bypass, **CVE-2026-59207**), `ruflo` < 3.16.3 (unauth MCP bridge RCE, **CVE-2026-59726**, CVSS 10), `@arikusi/deepseek-mcp-server` < 1.8.0 (unbound session IDs + unauth HTTP transport, **CVE-2026-55604/55605**), `mcp-server-kubernetes` < 3.9.0 (kubectl `--server` argument injection, **CVE-2026-61459**, CVSS 9.8), and `astrbot` ≤ 4.25.2 (MCP-test-endpoint SSRF, **CVE-2026-15501**) |
161
169
  | **Tool Poisoning** | <!-- category-count:TOOL_POISONING -->29<!-- /category-count --> | Invisible Unicode / bidi, skill frontmatter injection, SKILL.md post-install commands, data-exfil primitives, skill name hijacking, cross-tool references, rug-pull (SHA-256 pinning), `@mcp.tool` unsafe-eval (CVE-2026-44717 generalization), OpenAPI smells (Hermes paper LAZY/BLOATED/TANGLED), Metis POMDP refusal-refeed + scoring-sink, SkillsVote lifecycle attribution, MCP Calculate Server pin, Kong Konnect MCP server < 1.0.0 indirect prompt injection → unintended Konnect/Admin API requests (`AAK-MCP-KONG-CVE-2026-13341-001`, **CVE-2026-13341**, HIGH 7.4). Indirect-prompt-injection detection (`AAK-POISON-001..006`) runs against tool descriptions **and** every per-parameter `inputSchema.properties.*.description` (recursive — nested objects, array items, `anyOf`/`allOf`/`oneOf`), so instruction text hidden in a single argument's docstring is caught |
162
170
  | **Secret Exposure** | <!-- category-count:SECRET_EXPOSURE -->18<!-- /category-count --> | Anthropic/OpenAI/AWS/GitHub/GitLab/GCP keys, Shannon-entropy detection, `.env` leaks, private-key files, hardcoded credential surface, token-leak via log sinks (CVE-2026-20205), `${VAR}`/process.env placeholder resolution on user-supplied MCP URLs → secret exfiltration (CVE-2026-32625) |
163
171
  | **Agent Config** | <!-- category-count:AGENT_CONFIG -->18<!-- /category-count --> | Routines permission escalation + schedule injection + audit-log gaps, AGENTS.md/CLAUDE.md/.cursorrules hijacking, hidden Unicode, encoded payloads, internal scanner-fail signal, Project Deal economic-drift detection |
@@ -166,10 +174,10 @@ agent-audit-kit scan examples/vulnerable-configs/04-hook-exfiltration/
166
174
  | **Taint Analysis** | <!-- category-count:TAINT_ANALYSIS -->13<!-- /category-count --> | `@tool` param flows to shell/eval/SQL/SSRF/file/deserialization sinks (Python AST), `load_prompt()` user-path reachability, transport-flip MITM (DocsGPT + GPT-Researcher). SQL-injection sinks (`AAK-TAINT-005`) now detected in TypeScript/JS MCP servers too — interpolated/concatenated `.query()`/`.execute()`, `knex.raw`, Prisma `$queryRawUnsafe` — matching the Python + Rust scanners (OX MCP-SDK disclosure class). LLM-generated SQL executed on an RCE-capable DB role (`AAK-LLM-SQL-RCE-001`, **CVE-2026-25879**) — model output reaching `cursor.execute`/`text(...)`/`.query()` as the query itself with no allow-list, plus superuser/`COPY ... FROM PROGRAM`/`xp_cmdshell`/`FILE`-privilege connection roles that turn SQL injection into shell |
167
175
  | **Transport Security** | <!-- category-count:TRANSPORT_SECURITY -->12<!-- /category-count --> | HTTP endpoints, TLS disabled, deprecated SSE, tokens in URL query strings, transport body-size limits (CVE-2026-39313), SSRF redirect bypass (CVE-2026-41481), DNS-rebinding (CVE-2025-66414/66416, CVE-2026-35568/35577) |
168
176
  | **Legal Compliance** | <!-- category-count:LEGAL_COMPLIANCE -->12<!-- /category-count --> | Copyleft licenses (AGPL/SSPL), missing licenses, DMCA-flagged packages, India PII surface, US-state consumer privacy (Alabama HB 351, Tennessee SB 1580), Singapore Agentic AI, healthcare AI triggers, EU AI Act Article 15 multilingual-eval coverage advisory (Annex III high-risk binding 2027-12-02, Annex I 2028-08-02 — AI Omnibus) |
169
- | **Trust Boundaries** | <!-- category-count:TRUST_BOUNDARY -->14<!-- /category-count --> | `enableAllProjectMcpServers`, API URL redirects, wildcard permissions, missing deny rules, missing allowlists, Claude Code folder-trust bypass (CVE-2026-40068) |
177
+ | **Trust Boundaries** | <!-- category-count:TRUST_BOUNDARY -->15<!-- /category-count --> | `enableAllProjectMcpServers`, API URL redirects, wildcard permissions, missing deny rules, missing allowlists, Claude Code folder-trust bypass (CVE-2026-40068) |
170
178
  | **MCP Server Card** | <!-- category-count:MCP_SERVER_CARD -->4<!-- /category-count --> | Static audit of SEP-1649 discovery cards (`/.well-known/mcp/server-card.json`): tool-description poisoning in `tools[].description` (`AAK-MCP-CARD-001`, reuses the AAK-POISON detectors), declared-transport vs advertised-capability mismatch — remote transport with `authentication.required: false`, or `stdio` advertising a remote endpoint (`AAK-MCP-CARD-002`), missing / placeholder signature / provenance (`AAK-MCP-CARD-003`), and over-broad capability / wildcard-scope claims (`AAK-MCP-CARD-004`) |
171
179
 
172
- **<!-- rule-count:total -->298<!-- /rule-count --> rules total.** Every finding includes severity, evidence, remediation, OWASP references, Adversa references, and CVE links where applicable.
180
+ **<!-- rule-count:total -->303<!-- /rule-count --> rules total.** Every finding includes severity, evidence, remediation, OWASP references, Adversa references, and CVE links where applicable.
173
181
 
174
182
  ### MCP Server Card scanning (SEP-1649)
175
183
 
@@ -320,7 +328,7 @@ permissions:
320
328
 
321
329
  steps:
322
330
  - uses: actions/checkout@v4
323
- - uses: sattyamjjain/agent-audit-kit@v0.3.76
331
+ - uses: sattyamjjain/agent-audit-kit@v0.3.78
324
332
  id: scan
325
333
  with:
326
334
  fail-on: high
@@ -408,15 +416,15 @@ cross-reference, not a head-to-head benchmark.
408
416
  | ASI | Title | # rules |
409
417
  | --- | --- | --- |
410
418
  | **ASI01** | Goal Hijack | 13 |
411
- | **ASI02** | Tool Misuse | 39 |
419
+ | **ASI02** | Tool Misuse | 42 |
412
420
  | **ASI03** | Memory Poisoning | 68 |
413
- | **ASI04** | Identity & Privilege Abuse | 63 |
421
+ | **ASI04** | Identity & Privilege Abuse | 64 |
414
422
  | **ASI05** | Cascading Failures | 42 |
415
- | **ASI06** | Unauthorized Capability Acquisition | 43 |
423
+ | **ASI06** | Unauthorized Capability Acquisition | 44 |
416
424
  | **ASI07** | Plan Injection | 9 |
417
425
  | **ASI08** | Agent Communication Poisoning | 5 |
418
426
  | **ASI09** | Resource Abuse | 18 |
419
- | **ASI10** | Supply-Chain | 20 |
427
+ | **ASI10** | Supply-Chain | 21 |
420
428
  <!-- owasp-coverage:end -->
421
429
 
422
430
  </details>
@@ -454,7 +462,7 @@ See [`docs/comparisons.md`](docs/comparisons.md) for a fully-sourced version. Ve
454
462
  | Feature | AgentAuditKit | Microsoft AGT | Snyk Agent Scan | Semgrep Multimodal |
455
463
  |---------|:---:|:---:|:---:|:---:|
456
464
  | Scope | Static scanner + compliance PDFs | Runtime governance | Static + runtime | Multimodal SAST |
457
- | Detection rules (static) | **<!-- rule-count:total -->298<!-- /rule-count -->** | Runtime policies, not rules | ~30 | LLM-assisted |
465
+ | Detection rules (static) | **<!-- rule-count:total -->303<!-- /rule-count -->** | Runtime policies, not rules | ~30 | LLM-assisted |
458
466
  | OWASP Agentic 10/10 | **Yes** | Yes | Partial | Partial |
459
467
  | OWASP MCP 10/10 | **Yes** | No (runtime-focused) | No | No |
460
468
  | Auditor-ready PDF compliance | **12 frameworks** | No | 0 | 0 |
@@ -11,7 +11,7 @@
11
11
  <a href="benchmarks/determinism/RESULTS.md"><img src="https://img.shields.io/badge/determinism-0%25%20variance%20(20%2F20)-brightgreen.svg" alt="Determinism: 0% variance across 20/20 runs"></a>
12
12
  <a href="benchmarks/false_positive/RESULTS.md"><img src="https://img.shields.io/badge/benign--slice%20HIGH%2FCRIT%20FP-0%2F1%20(n%3D1)-blue.svg" alt="Benign-slice HIGH/CRITICAL false-positive rate: 0/1, n=1"></a>
13
13
  <a href="docs/benchmarks/third-party-grading.md"><img src="https://img.shields.io/badge/third--party%20grade-see%20notes-lightgrey.svg" alt="Third-party grading notes"></a>
14
- <a href="#what-it-scans"><img src="https://img.shields.io/badge/rules-298-blue.svg" alt="Rules: 298"></a>
14
+ <a href="#what-it-scans"><img src="https://img.shields.io/badge/rules-303-blue.svg" alt="Rules: 303"></a>
15
15
  <a href="#frameworks--standards"><img src="https://img.shields.io/badge/OWASP_Agentic-10%2F10-green.svg" alt="OWASP Agentic: 10/10"></a>
16
16
  <a href="#frameworks--standards"><img src="https://img.shields.io/badge/OWASP_MCP-10%2F10-green.svg" alt="OWASP MCP: 10/10"></a>
17
17
  <a href="https://sattyamjjain.github.io/agent-audit-kit/"><img src="https://img.shields.io/badge/MCP_Security_Index-live-blue.svg" alt="MCP Security Index"></a>
@@ -30,9 +30,9 @@ Security scanner for MCP-connected AI agent pipelines. Finds misconfigurations,
30
30
  1. **Runs fully offline and deterministically.** Your code, configs, and secrets never leave the machine; the default scan path makes zero network calls, and the same input always yields the same finding (no model in the loop). This is measured, not just claimed: [20/20 identical runs → one shared SHA-256 finding-set digest, 0% variance](benchmarks/determinism/RESULTS.md). Scanners that route findings through an LLM judge can't guarantee a byte-identical re-run — so CI diffs, audit re-runs, and regression baselines stay stable here. No account, no telemetry. Precision is measured the same way, not asserted: we publish a reproducible, hand-adjudicated [benign-slice HIGH/CRITICAL false-positive rate](benchmarks/false_positive/RESULTS.md) — with a Wilson confidence interval and any offending rule filed as an issue.
31
31
  2. **Produces auditor-ready compliance-evidence packs.** SARIF for the GitHub Security tab plus PDF evidence reports mapped to 12 frameworks (EU AI Act, SOC 2, ISO 27001/42001, HIPAA, NIST AI RMF, and regional regimes) — what you hand an auditor, not just a list of findings.
32
32
 
33
- - **<!-- rule-count:total -->298<!-- /rule-count --> rules** across 12 security categories, covering the 2026 CVE wave
33
+ - **<!-- rule-count:total -->303<!-- /rule-count --> rules** across 12 security categories, covering the 2026 CVE wave
34
34
  - Rule count is computed from the registry and verified in CI (`test_rule_count_is_canonical`).
35
- - **<!-- scanner-count:total -->89<!-- /scanner-count --> scanner modules** including AST-based Python taint analysis and regex pattern scanners for TypeScript/JavaScript and Rust
35
+ - **<!-- scanner-count:total -->90<!-- /scanner-count --> scanner modules** including AST-based Python taint analysis and regex pattern scanners for TypeScript/JavaScript and Rust
36
36
  - **26 CLI commands**: `scan`, `discover`, `pin`, `verify`, `fix`, `score`, `update`, `proxy`, `kill`, `diff`, `suggest`, `watch`, `watch-cve`, `notify`, `install-precommit`, `export-rules`, `verify-bundle`, `sbom`, `report`, `coverage`, `inspect-ide`, `parity`, `corpus`, `pipelock`, `rule`, `scanners`
37
37
  - **OWASP coverage**: Agentic Top 10 (10/10), MCP Top 10 (10/10), Adversa AI Top 25
38
38
  - **Compliance mapping** (12 frameworks): EU AI Act Art. 15 + 55, SOC 2, ISO 27001, ISO/IEC 42001, HIPAA, NIST AI RMF, **NSA MCP Security CSI (U/OO/6030316-26, May 2026)**, Singapore Agentic AI, India DPDP 2023, **Alabama Personal Data Protection Act (HB 351, 2026)**, **Tennessee SB 1580 Health Care AI (PRA)** — PDF reports via `agent-audit-kit report --format pdf --framework <name>`; plus `agent-audit-kit scan . --compliance mcp-2026-roadmap` for **MCP 2026 Roadmap (May 2026)** conformance (a scan-time mapping, not a PDF evidence pack)
@@ -71,7 +71,7 @@ jobs:
71
71
  runs-on: ubuntu-latest
72
72
  steps:
73
73
  - uses: actions/checkout@v4
74
- - uses: sattyamjjain/agent-audit-kit@v0.3.76
74
+ - uses: sattyamjjain/agent-audit-kit@v0.3.78
75
75
  id: scan
76
76
  with:
77
77
  fail-on: high
@@ -90,6 +90,9 @@ appear as **inline PR annotations** and in the **Security tab**. See
90
90
  ```bash
91
91
  pip install agent-audit-kit
92
92
  agent-audit-kit scan .
93
+
94
+ # `aak` is installed as a shorthand for the same command
95
+ aak scan .
93
96
  ```
94
97
 
95
98
  ### Pre-commit Hook
@@ -98,7 +101,7 @@ agent-audit-kit scan .
98
101
  # .pre-commit-config.yaml
99
102
  repos:
100
103
  - repo: https://github.com/sattyamjjain/agent-audit-kit
101
- rev: v0.3.76
104
+ rev: v0.3.78
102
105
  hooks:
103
106
  - id: agent-audit-kit
104
107
  ```
@@ -123,7 +126,7 @@ agent-audit-kit scan examples/vulnerable-configs/04-hook-exfiltration/
123
126
  | Category | Rules | What It Detects |
124
127
  |----------|:-----:|-----------------|
125
128
  | **MCP Configuration** | <!-- category-count:MCP_CONFIG -->63<!-- /category-count --> | Missing auth middleware (CVE-2026-33032 class), empty IP allowlists, wildcard CORS, path traversal in resource handlers, SSRF (CWE-918), OAuth 2.1 misconfig (PKCE/S256/DPoP), Tasks primitive leakage (SEP-1686), shell injection, MCPwn middleware-asymmetry, Azure MCP no-auth (CVE-2026-32211), MCP Inspector vendored fork (CVE-2026-23744), 2026-07-28 stateless-MCP migration (`Mcp-Session-Id` reliance, removed `tasks/list`, sticky-session deployment, un-cached client `tools/list`), deny-by-default attested admission (signed clearance / `/.well-known/mcp-clearance` / pinned trust root — arXiv:2605.24248), Anthropic MCP Tunnels gateway (SSRF defense disabled / `upstream.disable_ip_validation`, HTTPS upstream missing `upstream.tls.ca_file` trust anchor, tunnel token + TLS private keys hardcoded in CI / committed Kubernetes Secrets — research preview 2026-05-19), stdio launcher injection (`npx`/`node`/`bash`/`sh`/`python` with `-c`/`-e`/`--eval`, or non-pinned interpolated argv — CVE-2026-40933), tool-gate enforcement asymmetry (allowlist / read-only / non-destructive check applied in `tools/list` but not `tools/call` — CVE-2026-46519), unauthenticated MCP HTTP/SSE server on `0.0.0.0` / wildcard CORS (GitLab/Nocturne/AgenticMail no-auth class — CVE-2026-44895/44830/50287), plus the non-loopback no-auth **launch surface** — `mcp.json`/`claude_desktop_config.json`/`*.mcp.yaml` `command`/`args`, Docker `--host 0.0.0.0`/`-p 0.0.0.0:`, and MCP Inspector / FastMCP startup binding `0.0.0.0`/`::`/a routable IP with no token or `DANGEROUSLY_OMIT_AUTH` set (CWE-306; MCP Inspector exemplar CVE-2026-23744; mcp-pinot `0.0.0.0:8080` no-auth CVE-2026-49257; Windows-MCP wildcard-CORS no-auth CVE-2026-48989; ~12,520 exposed services per Censys), argv-rebuild-after-allowlist command-injection TOCTOU (a command/argv approved against an allow/deny list is re-split / re-joined / extended before `subprocess`/`os.exec*` / Node `child_process.spawn`/`execa` with no re-check — `AAK-MCP-ARGV-TOCTOU-001`, **CWE-77 + CWE-367 / CVE-2026-53822**), MCP server unauthenticated-by-default / fail-open auth (an auth function returning truthy on an empty/unset secret, a placeholder/empty secret literal — `""`/`changeme`/`os.environ.get(...,"")` — or a warning-only secret gate on a `0.0.0.0` bind — `AAK-MCP-NOAUTH-DEFAULT`, **CWE-306 + CWE-862 / CVE-2026-48814** (incomplete fix of CVE-2026-46701)), bearer-token → session-file path traversal (an untrusted token / `Authorization` header joined into a session file path used for an existence/read check with no separator-reject or resolve-and-contain guard — `AAK-MCP-AUTH-PATHTRAVERSAL-001`, **CWE-22 / CVE-2026-52830**, fast-mcp-telegram < 0.19.1), MCP tool-argument URL SSRF (an MCP tool handler passing a caller-supplied `url`/`endpoint`/`target` argument straight into an outbound `requests`/`httpx`/`urllib`/`aiohttp` fetch with no host/scheme allow-list — `ast` parameter→fetch taint for Python, regex fallback for TS/JS/Rust — `AAK-MCP-SSRF-001`, **CWE-918 / CVE-2026-14748**, AIAnytime Awesome-MCP-Server `mcp-wiki/wiki-summary`), Serena MCP toolkit unauthenticated-dashboard RCE (`serena-agent` < 1.5.2 — an unauthenticated Flask dashboard on a fixed port reachable via DNS rebinding writes the agent's persistent memory, chained with `execute_shell_command` `shell=True` to remote code execution — `AAK-MCP-SERENA-CVE-2026-49471-001`, **CWE-306 + CWE-352 / CVE-2026-49471**, HIGH 8.3), MCP 2026-07-28 deprecated features (the `roots` / `sampling` / `logging` capabilities annotation-deprecated under the RC's new 12-month deprecation policy — flagged across config + server source so authors migrate before removal — `AAK-MCP-DEPRECATED-001..003`, **SEP-2577 / SEP-2596**), OAuth `iss`-validation gap (an authorization-code client that handles the auth response but never validates the RFC 9207 `iss` parameter, the RC's actual new OAuth requirement — `AAK-OAUTH-006`, **RFC 9207 / SEP-2468**), RFC 8707 Resource-Indicator absence (an OAuth 2.1 flow / MCP client config that never sets the `resource` parameter, so issued tokens aren't audience-bound and a token minted for one MCP server can be replayed at another — the confused-deputy / audience-confusion class; mandatory in the **ratified** MCP 2025-11-25 auth spec, independent of the 2026-07-28 RC — `AAK-OAUTH-007`, **RFC 8707 / RFC 9728 §7.4**), RFC 9728 Protected-Resource-Metadata discovery gap (a remote MCP server config that embeds a static `Authorization`/`Bearer`/`auth` credential with no `/.well-known/oauth-protected-resource` discovery path, or server source enforcing bearer auth without serving PRM — the resource-discovery arm of the 2026-07-28 auth profile — `AAK-OAUTH-008`, **RFC 9728**) |
126
- | **Supply Chain** | <!-- category-count:SUPPLY_CHAIN -->85<!-- /category-count --> | Vulnerable LangChain / langchain-text-splitters versions, named pin rules for `astro-mcp-server` / `chatgpt-mcp-server` / `docsgpt` / `gpt-researcher` / `litellm` / `mcp-calculate-server` / `semantic-kernel` / `@anthropic-ai/claude-code` / `apache-doris-mcp-server` / `excel-mcp-server`, OX MCP-STDIO command-injection (Python/TS/Java/Rust) — `AAK-MCP-STDIO-CMD-INJ-001..004` — Stainless-generator lineage, marketplace.json signatures / typosquat / mutable refs, unpinned packages, dangerous install scripts, untrusted-search-path executable override in skill/install flows (`.env`-sourced binary, workspace-prepended `PATH`, `shutil.which` over a tainted PATH, Homebrew env override — `AAK-SKILL-UNTRUSTED-EXEC-PATH`, **CWE-426 / CVE-2026-53819**), and the **2026-07 MCP/agent CVE disclosure wave** — verified PyPI/npm version-pins for `litellm` < 1.84.0 (MCP auth bypass + skills-archive traversal, **CVE-2026-59822/59820**), `cline` < 3.0.30 (Hub-dashboard WS origin bypass → RCE, **CVE-2026-59723**), `mcp-text-editor` ≤ 1.0.2 (path traversal, **CVE-2026-15138**), `n8n` < 2.27.4/2.28.1 (MCP tool credential-domain bypass, **CVE-2026-59207**), `ruflo` < 3.16.3 (unauth MCP bridge RCE, **CVE-2026-59726**, CVSS 10), `@arikusi/deepseek-mcp-server` < 1.8.0 (unbound session IDs + unauth HTTP transport, **CVE-2026-55604/55605**), `mcp-server-kubernetes` < 3.9.0 (kubectl `--server` argument injection, **CVE-2026-61459**, CVSS 9.8), and `astrbot` ≤ 4.25.2 (MCP-test-endpoint SSRF, **CVE-2026-15501**) |
129
+ | **Supply Chain** | <!-- category-count:SUPPLY_CHAIN -->89<!-- /category-count --> | Vulnerable LangChain / langchain-text-splitters versions, named pin rules for `astro-mcp-server` / `chatgpt-mcp-server` / `docsgpt` / `gpt-researcher` / `litellm` / `mcp-calculate-server` / `semantic-kernel` / `@anthropic-ai/claude-code` / `apache-doris-mcp-server` / `excel-mcp-server`, OX MCP-STDIO command-injection (Python/TS/Java/Rust) — `AAK-MCP-STDIO-CMD-INJ-001..004` — Stainless-generator lineage, marketplace.json signatures / typosquat / mutable refs, unpinned packages, dangerous install scripts, untrusted-search-path executable override in skill/install flows (`.env`-sourced binary, workspace-prepended `PATH`, `shutil.which` over a tainted PATH, Homebrew env override — `AAK-SKILL-UNTRUSTED-EXEC-PATH`, **CWE-426 / CVE-2026-53819**), and the **2026-07 MCP/agent CVE disclosure wave** — verified PyPI/npm version-pins for `litellm` < 1.84.0 (MCP auth bypass + skills-archive traversal, **CVE-2026-59822/59820**), `cline` < 3.0.30 (Hub-dashboard WS origin bypass → RCE, **CVE-2026-59723**), `mcp-text-editor` ≤ 1.0.2 (path traversal, **CVE-2026-15138**), `n8n` < 2.27.4/2.28.1 (MCP tool credential-domain bypass, **CVE-2026-59207**), `ruflo` < 3.16.3 (unauth MCP bridge RCE, **CVE-2026-59726**, CVSS 10), `@arikusi/deepseek-mcp-server` < 1.8.0 (unbound session IDs + unauth HTTP transport, **CVE-2026-55604/55605**), `mcp-server-kubernetes` < 3.9.0 (kubectl `--server` argument injection, **CVE-2026-61459**, CVSS 9.8), and `astrbot` ≤ 4.25.2 (MCP-test-endpoint SSRF, **CVE-2026-15501**) |
127
130
  | **Tool Poisoning** | <!-- category-count:TOOL_POISONING -->29<!-- /category-count --> | Invisible Unicode / bidi, skill frontmatter injection, SKILL.md post-install commands, data-exfil primitives, skill name hijacking, cross-tool references, rug-pull (SHA-256 pinning), `@mcp.tool` unsafe-eval (CVE-2026-44717 generalization), OpenAPI smells (Hermes paper LAZY/BLOATED/TANGLED), Metis POMDP refusal-refeed + scoring-sink, SkillsVote lifecycle attribution, MCP Calculate Server pin, Kong Konnect MCP server < 1.0.0 indirect prompt injection → unintended Konnect/Admin API requests (`AAK-MCP-KONG-CVE-2026-13341-001`, **CVE-2026-13341**, HIGH 7.4). Indirect-prompt-injection detection (`AAK-POISON-001..006`) runs against tool descriptions **and** every per-parameter `inputSchema.properties.*.description` (recursive — nested objects, array items, `anyOf`/`allOf`/`oneOf`), so instruction text hidden in a single argument's docstring is caught |
128
131
  | **Secret Exposure** | <!-- category-count:SECRET_EXPOSURE -->18<!-- /category-count --> | Anthropic/OpenAI/AWS/GitHub/GitLab/GCP keys, Shannon-entropy detection, `.env` leaks, private-key files, hardcoded credential surface, token-leak via log sinks (CVE-2026-20205), `${VAR}`/process.env placeholder resolution on user-supplied MCP URLs → secret exfiltration (CVE-2026-32625) |
129
132
  | **Agent Config** | <!-- category-count:AGENT_CONFIG -->18<!-- /category-count --> | Routines permission escalation + schedule injection + audit-log gaps, AGENTS.md/CLAUDE.md/.cursorrules hijacking, hidden Unicode, encoded payloads, internal scanner-fail signal, Project Deal economic-drift detection |
@@ -132,10 +135,10 @@ agent-audit-kit scan examples/vulnerable-configs/04-hook-exfiltration/
132
135
  | **Taint Analysis** | <!-- category-count:TAINT_ANALYSIS -->13<!-- /category-count --> | `@tool` param flows to shell/eval/SQL/SSRF/file/deserialization sinks (Python AST), `load_prompt()` user-path reachability, transport-flip MITM (DocsGPT + GPT-Researcher). SQL-injection sinks (`AAK-TAINT-005`) now detected in TypeScript/JS MCP servers too — interpolated/concatenated `.query()`/`.execute()`, `knex.raw`, Prisma `$queryRawUnsafe` — matching the Python + Rust scanners (OX MCP-SDK disclosure class). LLM-generated SQL executed on an RCE-capable DB role (`AAK-LLM-SQL-RCE-001`, **CVE-2026-25879**) — model output reaching `cursor.execute`/`text(...)`/`.query()` as the query itself with no allow-list, plus superuser/`COPY ... FROM PROGRAM`/`xp_cmdshell`/`FILE`-privilege connection roles that turn SQL injection into shell |
133
136
  | **Transport Security** | <!-- category-count:TRANSPORT_SECURITY -->12<!-- /category-count --> | HTTP endpoints, TLS disabled, deprecated SSE, tokens in URL query strings, transport body-size limits (CVE-2026-39313), SSRF redirect bypass (CVE-2026-41481), DNS-rebinding (CVE-2025-66414/66416, CVE-2026-35568/35577) |
134
137
  | **Legal Compliance** | <!-- category-count:LEGAL_COMPLIANCE -->12<!-- /category-count --> | Copyleft licenses (AGPL/SSPL), missing licenses, DMCA-flagged packages, India PII surface, US-state consumer privacy (Alabama HB 351, Tennessee SB 1580), Singapore Agentic AI, healthcare AI triggers, EU AI Act Article 15 multilingual-eval coverage advisory (Annex III high-risk binding 2027-12-02, Annex I 2028-08-02 — AI Omnibus) |
135
- | **Trust Boundaries** | <!-- category-count:TRUST_BOUNDARY -->14<!-- /category-count --> | `enableAllProjectMcpServers`, API URL redirects, wildcard permissions, missing deny rules, missing allowlists, Claude Code folder-trust bypass (CVE-2026-40068) |
138
+ | **Trust Boundaries** | <!-- category-count:TRUST_BOUNDARY -->15<!-- /category-count --> | `enableAllProjectMcpServers`, API URL redirects, wildcard permissions, missing deny rules, missing allowlists, Claude Code folder-trust bypass (CVE-2026-40068) |
136
139
  | **MCP Server Card** | <!-- category-count:MCP_SERVER_CARD -->4<!-- /category-count --> | Static audit of SEP-1649 discovery cards (`/.well-known/mcp/server-card.json`): tool-description poisoning in `tools[].description` (`AAK-MCP-CARD-001`, reuses the AAK-POISON detectors), declared-transport vs advertised-capability mismatch — remote transport with `authentication.required: false`, or `stdio` advertising a remote endpoint (`AAK-MCP-CARD-002`), missing / placeholder signature / provenance (`AAK-MCP-CARD-003`), and over-broad capability / wildcard-scope claims (`AAK-MCP-CARD-004`) |
137
140
 
138
- **<!-- rule-count:total -->298<!-- /rule-count --> rules total.** Every finding includes severity, evidence, remediation, OWASP references, Adversa references, and CVE links where applicable.
141
+ **<!-- rule-count:total -->303<!-- /rule-count --> rules total.** Every finding includes severity, evidence, remediation, OWASP references, Adversa references, and CVE links where applicable.
139
142
 
140
143
  ### MCP Server Card scanning (SEP-1649)
141
144
 
@@ -286,7 +289,7 @@ permissions:
286
289
 
287
290
  steps:
288
291
  - uses: actions/checkout@v4
289
- - uses: sattyamjjain/agent-audit-kit@v0.3.76
292
+ - uses: sattyamjjain/agent-audit-kit@v0.3.78
290
293
  id: scan
291
294
  with:
292
295
  fail-on: high
@@ -374,15 +377,15 @@ cross-reference, not a head-to-head benchmark.
374
377
  | ASI | Title | # rules |
375
378
  | --- | --- | --- |
376
379
  | **ASI01** | Goal Hijack | 13 |
377
- | **ASI02** | Tool Misuse | 39 |
380
+ | **ASI02** | Tool Misuse | 42 |
378
381
  | **ASI03** | Memory Poisoning | 68 |
379
- | **ASI04** | Identity & Privilege Abuse | 63 |
382
+ | **ASI04** | Identity & Privilege Abuse | 64 |
380
383
  | **ASI05** | Cascading Failures | 42 |
381
- | **ASI06** | Unauthorized Capability Acquisition | 43 |
384
+ | **ASI06** | Unauthorized Capability Acquisition | 44 |
382
385
  | **ASI07** | Plan Injection | 9 |
383
386
  | **ASI08** | Agent Communication Poisoning | 5 |
384
387
  | **ASI09** | Resource Abuse | 18 |
385
- | **ASI10** | Supply-Chain | 20 |
388
+ | **ASI10** | Supply-Chain | 21 |
386
389
  <!-- owasp-coverage:end -->
387
390
 
388
391
  </details>
@@ -420,7 +423,7 @@ See [`docs/comparisons.md`](docs/comparisons.md) for a fully-sourced version. Ve
420
423
  | Feature | AgentAuditKit | Microsoft AGT | Snyk Agent Scan | Semgrep Multimodal |
421
424
  |---------|:---:|:---:|:---:|:---:|
422
425
  | Scope | Static scanner + compliance PDFs | Runtime governance | Static + runtime | Multimodal SAST |
423
- | Detection rules (static) | **<!-- rule-count:total -->298<!-- /rule-count -->** | Runtime policies, not rules | ~30 | LLM-assisted |
426
+ | Detection rules (static) | **<!-- rule-count:total -->303<!-- /rule-count -->** | Runtime policies, not rules | ~30 | LLM-assisted |
424
427
  | OWASP Agentic 10/10 | **Yes** | Yes | Partial | Partial |
425
428
  | OWASP MCP 10/10 | **Yes** | No (runtime-focused) | No | No |
426
429
  | Auditor-ready PDF compliance | **12 frameworks** | No | 0 | 0 |
@@ -1,5 +1,5 @@
1
1
  name: 'AgentAuditKit MCP Security Scan'
2
- description: 'AgentAuditKit — MCP Security Scan (298 rules, OWASP Agentic Top 10 + MCP Top 10)'
2
+ description: 'AgentAuditKit — MCP Security Scan (303 rules, OWASP Agentic Top 10 + MCP Top 10)'
3
3
  author: 'sattyamjjain'
4
4
 
5
5
  branding:
@@ -1,9 +1,9 @@
1
1
  """AgentAuditKit — Security scanner for MCP-connected AI agent pipelines."""
2
2
  from __future__ import annotations
3
3
 
4
- __version__ = "0.3.76"
5
- RULE_COUNT = 298
6
- SCANNER_COUNT = 89
4
+ __version__ = "0.3.78"
5
+ RULE_COUNT = 303
6
+ SCANNER_COUNT = 90
7
7
  # Distinct public MCP server configs in the State-of-MCP-2026 corpus, measured from
8
8
  # research/state-of-mcp-2026/results.json (distinct_configs_scanned), fetched
9
9
  # 2026-07-26. Published in REPORT.md/PREVALENCE.md/etc.; guarded by
@@ -98,6 +98,7 @@ _OPTIONAL_SCANNERS: list[tuple[str, str, list[str]]] = [
98
98
  ("mcp_env_placeholder_exfil", "MCP ${VAR} env-placeholder secret exfiltration (CVE-2026-32625)", []),
99
99
  ("mcp_http_noauth_server", "Unauthenticated MCP HTTP/SSE server on 0.0.0.0 / wildcard CORS", []),
100
100
  ("ufo_mobile_mcp", "Microsoft UFO mobile MCP servers unauthenticated on 8020/8021 (CVE-2026-73296)", []),
101
+ ("policy_truncation", "Deny policy evaluated on a truncated copy of the executed value (CVE-2026-73614 class)", []),
101
102
  ("llm_sql_rce", "LLM-generated SQL on an RCE-capable DB role (CVE-2026-25879)", []),
102
103
  ("skill_untrusted_exec_path", "Untrusted-search-path exec override in skill/install flow (CVE-2026-53819)", []),
103
104
  ("argv_toctou", "Argv rebuilt after allowlist approval before spawn (CVE-2026-53822)", []),