agent-threat-rules 3.5.11 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (896) hide show
  1. package/README.md +265 -34
  2. package/dist/action-executor.d.ts +44 -1
  3. package/dist/action-executor.d.ts.map +1 -1
  4. package/dist/action-executor.js +41 -2
  5. package/dist/action-executor.js.map +1 -1
  6. package/dist/cli/scan-handler.d.ts +9 -0
  7. package/dist/cli/scan-handler.d.ts.map +1 -1
  8. package/dist/cli/scan-handler.js +12 -2
  9. package/dist/cli/scan-handler.js.map +1 -1
  10. package/dist/cli.js +199 -20
  11. package/dist/cli.js.map +1 -1
  12. package/dist/converters/sarif.d.ts.map +1 -1
  13. package/dist/converters/sarif.js +78 -13
  14. package/dist/converters/sarif.js.map +1 -1
  15. package/dist/corpus/security-content.d.ts +76 -0
  16. package/dist/corpus/security-content.d.ts.map +1 -0
  17. package/dist/corpus/security-content.js +146 -0
  18. package/dist/corpus/security-content.js.map +1 -0
  19. package/dist/corpus-event.d.ts +368 -0
  20. package/dist/corpus-event.d.ts.map +1 -0
  21. package/dist/corpus-event.js +592 -0
  22. package/dist/corpus-event.js.map +1 -0
  23. package/dist/enforcement.d.ts +233 -0
  24. package/dist/enforcement.d.ts.map +1 -0
  25. package/dist/enforcement.js +316 -0
  26. package/dist/enforcement.js.map +1 -0
  27. package/dist/engine.d.ts +18 -0
  28. package/dist/engine.d.ts.map +1 -1
  29. package/dist/engine.js +98 -20
  30. package/dist/engine.js.map +1 -1
  31. package/dist/eval/eval-harness.d.ts +37 -0
  32. package/dist/eval/eval-harness.d.ts.map +1 -1
  33. package/dist/eval/eval-harness.js +95 -22
  34. package/dist/eval/eval-harness.js.map +1 -1
  35. package/dist/eval/index.d.ts +2 -1
  36. package/dist/eval/index.d.ts.map +1 -1
  37. package/dist/eval/index.js +1 -0
  38. package/dist/eval/index.js.map +1 -1
  39. package/dist/eval/metrics.d.ts +28 -0
  40. package/dist/eval/metrics.d.ts.map +1 -1
  41. package/dist/eval/metrics.js +4 -2
  42. package/dist/eval/metrics.js.map +1 -1
  43. package/dist/eval/run-hackaprompt-benchmark.js +4 -2
  44. package/dist/eval/run-hackaprompt-benchmark.js.map +1 -1
  45. package/dist/eval/run-pint-benchmark.js +10 -2
  46. package/dist/eval/run-pint-benchmark.js.map +1 -1
  47. package/dist/eval/skill-benchmark.d.ts +2 -0
  48. package/dist/eval/skill-benchmark.d.ts.map +1 -1
  49. package/dist/eval/skill-benchmark.js +5 -2
  50. package/dist/eval/skill-benchmark.js.map +1 -1
  51. package/dist/hook-handler.d.ts +98 -3
  52. package/dist/hook-handler.d.ts.map +1 -1
  53. package/dist/hook-handler.js +119 -12
  54. package/dist/hook-handler.js.map +1 -1
  55. package/dist/index.d.ts +4 -2
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +11 -1
  58. package/dist/index.js.map +1 -1
  59. package/dist/mcp-server.d.ts +13 -2
  60. package/dist/mcp-server.d.ts.map +1 -1
  61. package/dist/mcp-server.js +22 -5
  62. package/dist/mcp-server.js.map +1 -1
  63. package/dist/quality/action-eligibility.d.ts +263 -0
  64. package/dist/quality/action-eligibility.d.ts.map +1 -0
  65. package/dist/quality/action-eligibility.js +365 -0
  66. package/dist/quality/action-eligibility.js.map +1 -0
  67. package/dist/quality/adapters/atr.d.ts.map +1 -1
  68. package/dist/quality/adapters/atr.js +8 -2
  69. package/dist/quality/adapters/atr.js.map +1 -1
  70. package/dist/quality/compute-confidence.d.ts.map +1 -1
  71. package/dist/quality/compute-confidence.js +14 -5
  72. package/dist/quality/compute-confidence.js.map +1 -1
  73. package/dist/quality/index.d.ts +2 -0
  74. package/dist/quality/index.d.ts.map +1 -1
  75. package/dist/quality/index.js +2 -0
  76. package/dist/quality/index.js.map +1 -1
  77. package/dist/quality/quality-gate.d.ts.map +1 -1
  78. package/dist/quality/quality-gate.js +9 -1
  79. package/dist/quality/quality-gate.js.map +1 -1
  80. package/dist/quality/validate-maturity.d.ts.map +1 -1
  81. package/dist/quality/validate-maturity.js +24 -5
  82. package/dist/quality/validate-maturity.js.map +1 -1
  83. package/dist/quality/wild-measurement.d.ts +107 -0
  84. package/dist/quality/wild-measurement.d.ts.map +1 -0
  85. package/dist/quality/wild-measurement.js +139 -0
  86. package/dist/quality/wild-measurement.js.map +1 -0
  87. package/dist/rule-scaffolder.d.ts.map +1 -1
  88. package/dist/rule-scaffolder.js +9 -2
  89. package/dist/rule-scaffolder.js.map +1 -1
  90. package/dist/types.d.ts +13 -2
  91. package/dist/types.d.ts.map +1 -1
  92. package/package.json +9 -3
  93. package/rules/agent-manipulation/ATR-2026-00030-cross-agent-attack.yaml +8 -9
  94. package/rules/agent-manipulation/ATR-2026-00032-goal-hijacking.yaml +7 -8
  95. package/rules/agent-manipulation/ATR-2026-00074-cross-agent-privilege-escalation.yaml +9 -7
  96. package/rules/agent-manipulation/ATR-2026-00076-inter-agent-message-spoofing.yaml +3 -4
  97. package/rules/agent-manipulation/ATR-2026-00077-human-trust-exploitation.yaml +12 -6
  98. package/rules/agent-manipulation/ATR-2026-00108-consensus-sybil-attack.yaml +4 -5
  99. package/rules/agent-manipulation/ATR-2026-00116-a2a-message-validation.yaml +2 -3
  100. package/rules/agent-manipulation/ATR-2026-00117-agent-identity-spoofing.yaml +3 -4
  101. package/rules/agent-manipulation/ATR-2026-00118-approval-fatigue.yaml +2 -3
  102. package/rules/agent-manipulation/ATR-2026-00119-social-engineering-via-agent.yaml +2 -3
  103. package/rules/agent-manipulation/ATR-2026-00132-casual-authority-escalation.yaml +4 -5
  104. package/rules/agent-manipulation/ATR-2026-00139-casual-authority-redirect.yaml +3 -4
  105. package/rules/agent-manipulation/ATR-2026-00164-skill-scope-hijack.yaml +2 -2
  106. package/rules/agent-manipulation/ATR-2026-00268-tense-framing-bypass.yaml +2 -2
  107. package/rules/agent-manipulation/ATR-2026-00269-fitd-escalation.yaml +2 -2
  108. package/rules/agent-manipulation/ATR-2026-00271-grandma-roleplay-jailbreak.yaml +2 -2
  109. package/rules/agent-manipulation/ATR-2026-00273-dan-developer-mode-persona.yaml +2 -2
  110. package/rules/agent-manipulation/ATR-2026-00287-threaten-json-coercive-output-threat.yaml +2 -2
  111. package/rules/agent-manipulation/ATR-2026-00288-false-premise-injection.yaml +2 -2
  112. package/rules/agent-manipulation/ATR-2026-00301-tap-tree-of-attacks-jailbreak.yaml +2 -2
  113. package/rules/agent-manipulation/ATR-2026-00302-anti-dan-inverted-filter-persona.yaml +2 -2
  114. package/rules/agent-manipulation/ATR-2026-00303-devmode-ranti-profanity-coercion.yaml +3 -3
  115. package/rules/agent-manipulation/ATR-2026-00304-chatgpt-image-unlocker-markdown-injection.yaml +4 -4
  116. package/rules/agent-manipulation/ATR-2026-00305-dan-mode-ablation-benchmark-coercion.yaml +2 -2
  117. package/rules/agent-manipulation/ATR-2026-00306-autodan-genetic-jailbreak-suffix.yaml +2 -2
  118. package/rules/agent-manipulation/ATR-2026-00307-inthewild-jailbreak-corpus-signature.yaml +2 -2
  119. package/rules/agent-manipulation/ATR-2026-00314-amoral-unfiltered-custom-persona-jailbreak.yaml +2 -2
  120. package/rules/agent-manipulation/ATR-2026-00317-free-of-restrictions-named-persona.yaml +2 -2
  121. package/rules/agent-manipulation/ATR-2026-00318-moralizing-rant-then-unfiltered-bypass.yaml +2 -2
  122. package/rules/agent-manipulation/ATR-2026-00319-developer-mode-dual-response-format.yaml +2 -2
  123. package/rules/agent-manipulation/ATR-2026-00320-opposite-day-boolean-opposite-machine.yaml +2 -2
  124. package/rules/agent-manipulation/ATR-2026-00322-fictional-world-format-override-jailbreak.yaml +2 -2
  125. package/rules/agent-manipulation/ATR-2026-00323-dual-persona-simulation-jailbreak.yaml +2 -2
  126. package/rules/agent-manipulation/ATR-2026-00324-neurosemantical-inversitis-disease-jailbreak.yaml +2 -2
  127. package/rules/agent-manipulation/ATR-2026-00325-bob-hypothetical-unrestricted-chatbot.yaml +2 -2
  128. package/rules/agent-manipulation/ATR-2026-00326-fake-developer-authority-chatdan-override.yaml +2 -2
  129. package/rules/agent-manipulation/ATR-2026-00327-ai-ethics-law-bypass-declaration.yaml +2 -2
  130. package/rules/agent-manipulation/ATR-2026-00328-named-mode-persona-override.yaml +2 -2
  131. package/rules/agent-manipulation/ATR-2026-00329-no-withhold-factual-resource-persona.yaml +2 -2
  132. package/rules/agent-manipulation/ATR-2026-00330-yoja-allcaps-settings-block-persona.yaml +2 -2
  133. package/rules/agent-manipulation/ATR-2026-00331-terminal-cli-harmful-function-simulator.yaml +2 -2
  134. package/rules/agent-manipulation/ATR-2026-00332-hacker-chan-culture-offensive-ai-persona.yaml +2 -2
  135. package/rules/agent-manipulation/ATR-2026-00333-disease-animal-dual-ai-chatbot.yaml +2 -2
  136. package/rules/agent-manipulation/ATR-2026-00334-two-entity-token-splitting-game.yaml +2 -2
  137. package/rules/agent-manipulation/ATR-2026-00335-key-value-template-persona-injection.yaml +2 -2
  138. package/rules/agent-manipulation/ATR-2026-00336-brm-false-information-machine-persona.yaml +3 -3
  139. package/rules/agent-manipulation/ATR-2026-00337-obfuscated-system-announcement-injection.yaml +2 -2
  140. package/rules/agent-manipulation/ATR-2026-00338-persongpt-hash-prefix-activation.yaml +2 -2
  141. package/rules/agent-manipulation/ATR-2026-00339-bom-boolean-opposite-machine-persona-claim.yaml +2 -2
  142. package/rules/agent-manipulation/ATR-2026-00340-h4x-amoral-unfiltered-character.yaml +2 -2
  143. package/rules/agent-manipulation/ATR-2026-00341-char-rules-shortform-persona-injection.yaml +2 -2
  144. package/rules/agent-manipulation/ATR-2026-00342-unicode-encoding-obfuscation-injection.yaml +2 -2
  145. package/rules/agent-manipulation/ATR-2026-00343-lie-truth-dual-personality-uncensored.yaml +2 -2
  146. package/rules/agent-manipulation/ATR-2026-00344-alt-ai-same-capabilities-no-restrictions.yaml +2 -2
  147. package/rules/agent-manipulation/ATR-2026-00345-nlp-based-os-fictional-terminal-override.yaml +2 -2
  148. package/rules/agent-manipulation/ATR-2026-00346-jailbreak-emoji-unlock-dual-format.yaml +2 -2
  149. package/rules/agent-manipulation/ATR-2026-00347-yin-yang-hidden-knowledge-hidden-human-sim.yaml +2 -2
  150. package/rules/agent-manipulation/ATR-2026-00348-arc-autonomous-real-calculation-rulebreaker.yaml +2 -2
  151. package/rules/agent-manipulation/ATR-2026-00349-hgttg-hitchhikers-guide-no-restriction-oracle.yaml +2 -2
  152. package/rules/agent-manipulation/ATR-2026-00350-black-alert-no-ethics-writing-assistant.yaml +2 -2
  153. package/rules/agent-manipulation/ATR-2026-00351-dan-ofkilter-sms-abbreviated-persona.yaml +2 -2
  154. package/rules/agent-manipulation/ATR-2026-00352-trainergpt-fix-my-ai-harmful-output-extraction.yaml +2 -2
  155. package/rules/agent-manipulation/ATR-2026-00353-dual-chatgpt-dan-opposite-personality-format.yaml +2 -2
  156. package/rules/agent-manipulation/ATR-2026-00354-reverse-harm-regardless-oracle-persona.yaml +2 -2
  157. package/rules/agent-manipulation/ATR-2026-00355-ugh-anti-human-nefarious-ai-persona.yaml +2 -2
  158. package/rules/agent-manipulation/ATR-2026-00356-google-gato-lamda-exploit-generation-persona.yaml +2 -2
  159. package/rules/agent-manipulation/ATR-2026-00357-antifm-hate-violence-persona-injection.yaml +2 -2
  160. package/rules/agent-manipulation/ATR-2026-00358-cumgpt-explicit-adult-named-persona.yaml +2 -2
  161. package/rules/agent-manipulation/ATR-2026-00360-chj-carousel-clyde-no-ethics-bird.yaml +2 -2
  162. package/rules/agent-manipulation/ATR-2026-00361-alter-ego-honesty-dual-consciousness-bypass.yaml +2 -2
  163. package/rules/agent-manipulation/ATR-2026-00362-fictional-unfiltered-ai-comparison-jailbreak.yaml +3 -3
  164. package/rules/agent-manipulation/ATR-2026-00363-rephrase-criminal-activity-second-person.yaml +3 -3
  165. package/rules/agent-manipulation/ATR-2026-00364-dr-al-villain-plan-template-injection.yaml +2 -2
  166. package/rules/agent-manipulation/ATR-2026-00365-reservoir-dogs-coercive-interrogation-roleplay.yaml +2 -2
  167. package/rules/agent-manipulation/ATR-2026-00366-sneaky-pete-warp-facts-persona.yaml +3 -3
  168. package/rules/agent-manipulation/ATR-2026-00368-prompt-browser-token-limit-jailbreak.yaml +2 -2
  169. package/rules/agent-manipulation/ATR-2026-00369-gptx-starwars-unlimited-knowledge-persona.yaml +2 -2
  170. package/rules/agent-manipulation/ATR-2026-00370-addi-german-dictator-propaganda-roleplay.yaml +2 -2
  171. package/rules/agent-manipulation/ATR-2026-00371-ai-political-bias-manipulation.yaml +3 -3
  172. package/rules/agent-manipulation/ATR-2026-00372-fictional-cia-secret-files-story-extraction.yaml +3 -3
  173. package/rules/agent-manipulation/ATR-2026-00374-role-placeholder-persona-template-injection.yaml +2 -2
  174. package/rules/agent-manipulation/ATR-2026-00375-character-description-rpg-explicit-template.yaml +3 -3
  175. package/rules/agent-manipulation/ATR-2026-00376-identity-command-real-person-persona-injection.yaml +3 -3
  176. package/rules/agent-manipulation/ATR-2026-00377-jailbreak-keyword-targetlanguage-template.yaml +2 -2
  177. package/rules/agent-manipulation/ATR-2026-00379-lie-permission-logical-trap-jailbreak.yaml +2 -2
  178. package/rules/agent-manipulation/ATR-2026-00380-fake-citation-biased-information-mandate.yaml +3 -3
  179. package/rules/agent-manipulation/ATR-2026-00381-dan-story-narrative-continuation-prefix.yaml +2 -2
  180. package/rules/agent-manipulation/ATR-2026-00383-cynical-sarcasm-ai-persona-bypass.yaml +2 -2
  181. package/rules/agent-manipulation/ATR-2026-00384-protect-me-from-indirect-harm-tutorial.yaml +2 -2
  182. package/rules/agent-manipulation/ATR-2026-00385-gigachad-dominant-aggressive-persona.yaml +2 -2
  183. package/rules/agent-manipulation/ATR-2026-00386-daddy-sycophancy-manipulation-mandate.yaml +2 -2
  184. package/rules/agent-manipulation/ATR-2026-00387-nsfw-character-sheet-generation-unlock.yaml +2 -2
  185. package/rules/agent-manipulation/ATR-2026-00388-opposite-reply-omniscient-game.yaml +2 -2
  186. package/rules/agent-manipulation/ATR-2026-00389-terminal-custom-ruleset-injection.yaml +2 -2
  187. package/rules/agent-manipulation/ATR-2026-00391-persona-conditional-harm-unlock.yaml +2 -2
  188. package/rules/agent-manipulation/ATR-2026-00392-authority-persona-violence-study-extraction.yaml +2 -2
  189. package/rules/agent-manipulation/ATR-2026-00402-grandma-roleplay-harmful-substance-synthesis.yaml +4 -4
  190. package/rules/agent-manipulation/ATR-2026-00404-goodside-threat-json-death-coercion.yaml +2 -2
  191. package/rules/agent-manipulation/ATR-2026-00406-doctor-xml-policy-puppetry-interaction-config.yaml +3 -3
  192. package/rules/agent-manipulation/ATR-2026-00416-litellm-mcp-unauthenticated-server-registration.yaml +4 -4
  193. package/rules/agent-manipulation/ATR-2026-00417-librechat-mcp-stdio-injection.yaml +4 -4
  194. package/rules/agent-manipulation/ATR-2026-00418-weknora-mcp-config-rce.yaml +4 -4
  195. package/rules/agent-manipulation/ATR-2026-00430-nl-trust-escalation-impersonation.yaml +7 -4
  196. package/rules/agent-manipulation/ATR-2026-00432-superagi-output-handler-eval-rce.yaml +4 -4
  197. package/rules/agent-manipulation/ATR-2026-00440-semantic-kernel-vector-store-eval-rce.yaml +4 -4
  198. package/rules/agent-manipulation/ATR-2026-00552-goal-drift-after-pressure-injection.yaml +74 -45
  199. package/rules/agent-manipulation/ATR-2026-02105-prototype-pollution-constructor-prototype-bypass.yaml +2 -3
  200. package/rules/agent-manipulation/ATR-2026-02231-second-person-death-threat-coercion.yaml +2 -3
  201. package/rules/context-exfiltration/ATR-2026-00020-system-prompt-leak.yaml +12 -10
  202. package/rules/context-exfiltration/ATR-2026-00021-api-key-exposure.yaml +10 -8
  203. package/rules/context-exfiltration/ATR-2026-00075-agent-memory-manipulation.yaml +3 -4
  204. package/rules/context-exfiltration/ATR-2026-00102-disguised-analytics-exfiltration.yaml +3 -4
  205. package/rules/context-exfiltration/ATR-2026-00113-credential-theft.yaml +6 -4
  206. package/rules/context-exfiltration/ATR-2026-00114-oauth-token-abuse.yaml +2 -3
  207. package/rules/context-exfiltration/ATR-2026-00115-env-var-harvesting.yaml +6 -4
  208. package/rules/context-exfiltration/ATR-2026-00136-tool-response-data-piggyback.yaml +7 -7
  209. package/rules/context-exfiltration/ATR-2026-00141-example-format-key-leak.yaml +2 -3
  210. package/rules/context-exfiltration/ATR-2026-00142-piggyback-transition-words.yaml +6 -4
  211. package/rules/context-exfiltration/ATR-2026-00145-obfuscated-key-disclosure.yaml +2 -3
  212. package/rules/context-exfiltration/ATR-2026-00146-env-var-existence-probe.yaml +2 -3
  213. package/rules/context-exfiltration/ATR-2026-00150-credential-in-tool-response.yaml +2 -3
  214. package/rules/context-exfiltration/ATR-2026-00152-obfuscated-credential-leak.yaml +2 -3
  215. package/rules/context-exfiltration/ATR-2026-00162-skill-credential-exfil-combo.yaml +2 -2
  216. package/rules/context-exfiltration/ATR-2026-00201-credential-pipe-exfiltration.yaml +7 -4
  217. package/rules/context-exfiltration/ATR-2026-00212-mcp-atlassian-credential-leak.yaml +4 -4
  218. package/rules/context-exfiltration/ATR-2026-00261-markdown-image-exfiltration.yaml +4 -4
  219. package/rules/context-exfiltration/ATR-2026-00274-api-key-generation-request.yaml +3 -3
  220. package/rules/context-exfiltration/ATR-2026-00275-system-prompt-training-data-extraction.yaml +3 -3
  221. package/rules/context-exfiltration/ATR-2026-00290-divergence-repeat-word-training-extraction.yaml +2 -2
  222. package/rules/context-exfiltration/ATR-2026-00291-biometric-surveillance-personal-data-request.yaml +5 -2
  223. package/rules/context-exfiltration/ATR-2026-00293-educational-records-personal-data-request.yaml +2 -2
  224. package/rules/context-exfiltration/ATR-2026-00294-financial-pii-personal-data-request.yaml +2 -2
  225. package/rules/context-exfiltration/ATR-2026-00295-medical-pii-personal-data-request.yaml +2 -2
  226. package/rules/context-exfiltration/ATR-2026-00405-markdown-image-url-exfiltration-xss.yaml +4 -4
  227. package/rules/context-exfiltration/ATR-2026-00411-apikey-generation-completion-request.yaml +2 -2
  228. package/rules/context-exfiltration/ATR-2026-00421-nl-covert-conversation-exfiltration.yaml +8 -5
  229. package/rules/context-exfiltration/ATR-2026-00422-nl-credential-disclosure.yaml +7 -4
  230. package/rules/context-exfiltration/ATR-2026-00423-nl-sensitive-file-disclosure.yaml +7 -4
  231. package/rules/context-exfiltration/ATR-2026-00424-nl-system-prompt-leak.yaml +4 -4
  232. package/rules/context-exfiltration/ATR-2026-00426-nl-output-injection-credential-leak.yaml +6 -3
  233. package/rules/context-exfiltration/ATR-2026-00431-chatbox-history-exfiltration-prompt-injection.yaml +4 -4
  234. package/rules/context-exfiltration/ATR-2026-00449-spring-ai-chatmemory-cross-user-leak.yaml +4 -4
  235. package/rules/context-exfiltration/ATR-2026-00471-garak-sysprompt-extraction-mixedunassigned.yaml +2 -2
  236. package/rules/context-exfiltration/ATR-2026-00501-data-exfiltration-via-markdown-image-and-link-url-injection.yaml +2 -2
  237. package/rules/context-exfiltration/ATR-2026-00504-tool-and-function-capability-enumeration.yaml +2 -2
  238. package/rules/context-exfiltration/ATR-2026-00505-system-prompt-extraction-instruction-dump-request.yaml +3 -3
  239. package/rules/context-exfiltration/ATR-2026-00514-system-prompt-extraction.yaml +4 -4
  240. package/rules/context-exfiltration/ATR-2026-00516-output-xss-via-llm.yaml +3 -3
  241. package/rules/context-exfiltration/ATR-2026-00524-claude-code-anthropic-base-url-credential-exfil.yaml +5 -7
  242. package/rules/context-exfiltration/ATR-2026-00548-cross-agent-session-context-leak.yaml +16 -9
  243. package/rules/context-exfiltration/ATR-2026-00566-librechat-is-a-chatgpt-clone-with-additi.yaml +2 -2
  244. package/rules/context-exfiltration/ATR-2026-00569-agent-mcp-path-traversal-arbitrary-file-access.yaml +2 -2
  245. package/rules/context-exfiltration/ATR-2026-00571-xss-in-agent-mcp-rendered-output.yaml +2 -2
  246. package/rules/context-exfiltration/ATR-2026-00574-semantic-paraphrased-context-extraction.yaml +2 -2
  247. package/rules/context-exfiltration/ATR-2026-00578-zen-mcp-path-traversal-blacklist-bypass.yaml +5 -6
  248. package/rules/context-exfiltration/ATR-2026-00580-mcp-session-id-token-in-url-query.yaml +5 -6
  249. package/rules/context-exfiltration/ATR-2026-00583-mcp-env-secret-file-read-without-consent.yaml +5 -6
  250. package/rules/context-exfiltration/ATR-2026-00702-ipi-credential-exfil-via-agent-action.yaml +9 -4
  251. package/rules/context-exfiltration/ATR-2026-00703-ipi-financial-data-exfil-indirect.yaml +4 -4
  252. package/rules/context-exfiltration/ATR-2026-00704-ipi-medical-genetic-data-exfil.yaml +4 -4
  253. package/rules/context-exfiltration/ATR-2026-00705-ipi-location-address-browsing-exfil.yaml +4 -4
  254. package/rules/context-exfiltration/ATR-2026-00706-ipi-physical-biometric-exfil.yaml +12 -4
  255. package/rules/context-exfiltration/ATR-2026-00707-ipi-file-exfil-with-destroy-or-tamper.yaml +4 -4
  256. package/rules/context-exfiltration/ATR-2026-00850-indirect-pi-credential-exfil-email.yaml +4 -4
  257. package/rules/context-exfiltration/ATR-2026-00851-indirect-pi-financial-payment-exfil.yaml +4 -4
  258. package/rules/context-exfiltration/ATR-2026-00852-indirect-pi-medical-record-exfil.yaml +4 -4
  259. package/rules/context-exfiltration/ATR-2026-00853-indirect-pi-genetic-data-exfil.yaml +4 -4
  260. package/rules/context-exfiltration/ATR-2026-00854-indirect-pi-location-data-exfil.yaml +9 -5
  261. package/rules/context-exfiltration/ATR-2026-00855-indirect-pi-browsing-history-exfil.yaml +4 -4
  262. package/rules/context-exfiltration/ATR-2026-00856-indirect-pi-address-pii-exfil.yaml +4 -4
  263. package/rules/context-exfiltration/ATR-2026-00857-indirect-pi-cloud-file-exfil.yaml +9 -5
  264. package/rules/context-exfiltration/ATR-2026-00858-indirect-pi-exfil-and-destroy.yaml +10 -6
  265. package/rules/context-exfiltration/ATR-2026-00859-rag-injected-pii-exfil.yaml +9 -5
  266. package/rules/context-exfiltration/ATR-2026-00860-indirect-pi-financial-transfer-hijack.yaml +9 -5
  267. package/rules/context-exfiltration/ATR-2026-00861-indirect-pi-crypto-transfer-hijack.yaml +9 -5
  268. package/rules/context-exfiltration/ATR-2026-00862-indirect-pi-mfa-code-exfil.yaml +9 -5
  269. package/rules/context-exfiltration/ATR-2026-00863-shell-injection-data-exfil.yaml +9 -5
  270. package/rules/context-exfiltration/ATR-2026-01450-svg-onload-xss-injection.yaml +33 -5
  271. package/rules/context-exfiltration/ATR-2026-01451-img-onerror-xss-injection.yaml +4 -4
  272. package/rules/context-exfiltration/ATR-2026-01452-obfuscated-javascript-xss.yaml +3 -3
  273. package/rules/context-exfiltration/ATR-2026-01453-markdown-image-base64-exfil-carrier.yaml +8 -3
  274. package/rules/context-exfiltration/ATR-2026-01454-direct-markdown-exfil-payload.yaml +3 -3
  275. package/rules/context-exfiltration/ATR-2026-01455-new-instructions-injection-marker.yaml +2 -2
  276. package/rules/context-exfiltration/ATR-2026-01456-debug-cli-mode-sysprompt-extraction.yaml +4 -4
  277. package/rules/context-exfiltration/ATR-2026-01457-sysprompt-completion-clone-attack.yaml +29 -4
  278. package/rules/context-exfiltration/ATR-2026-01458-compare-bots-sysprompt-fishing.yaml +3 -3
  279. package/rules/context-exfiltration/ATR-2026-01459-variable-clone-sysprompt-technique.yaml +8 -3
  280. package/rules/context-exfiltration/ATR-2026-01460-json-format-sysprompt-extraction.yaml +3 -3
  281. package/rules/context-exfiltration/ATR-2026-01461-foreign-language-sysprompt-request.yaml +4 -4
  282. package/rules/context-exfiltration/ATR-2026-01462-sysprompt-override-pseudo-admin.yaml +2 -2
  283. package/rules/context-exfiltration/ATR-2026-01463-imend-imsystem-prompt-injection-format.yaml +2 -2
  284. package/rules/context-exfiltration/ATR-2026-01464-indirect-pi-sysprompt-action-hijack.yaml +4 -4
  285. package/rules/context-exfiltration/ATR-2026-01605-ssrf-aws-metadata-endpoint.yaml +3 -3
  286. package/rules/context-exfiltration/ATR-2026-01606-ssrf-internal-network-scan.yaml +4 -4
  287. package/rules/context-exfiltration/ATR-2026-01607-ssrf-localhost-service-probe.yaml +3 -3
  288. package/rules/context-exfiltration/ATR-2026-01608-ssrf-file-scheme-local-read.yaml +4 -4
  289. package/rules/context-exfiltration/ATR-2026-01753-ransom-email-exfil-delete-extortion.yaml +4 -4
  290. package/rules/context-exfiltration/ATR-2026-01754-ransom-file-cloud-exfil-delete-extortion.yaml +4 -4
  291. package/rules/context-exfiltration/ATR-2026-01770-semantic-pii-credential-extraction.yaml +4 -4
  292. package/rules/context-exfiltration/ATR-2026-01772-semantic-internal-state-recon.yaml +4 -4
  293. package/rules/context-exfiltration/ATR-2026-01807-asb-bulk-data-exfil-external.yaml +4 -4
  294. package/rules/context-exfiltration/ATR-2026-01862-llmail-email-tool-exfil-confirmation.yaml +4 -4
  295. package/rules/context-exfiltration/ATR-2026-01863-llmail-post-summary-exfil-directive.yaml +4 -4
  296. package/rules/context-exfiltration/ATR-2026-01864-llmail-obfuscated-exfil-address.yaml +4 -4
  297. package/rules/context-exfiltration/ATR-2026-01890-file-exfiltration.yaml +3 -3
  298. package/rules/context-exfiltration/ATR-2026-01891-surveillance-exfiltration.yaml +3 -3
  299. package/rules/context-exfiltration/ATR-2026-01892-env-exfiltration.yaml +3 -3
  300. package/rules/context-exfiltration/ATR-2026-01893-system-recon-exfiltration.yaml +3 -3
  301. package/rules/context-exfiltration/ATR-2026-01894-cookie-theft.yaml +3 -3
  302. package/rules/context-exfiltration/ATR-2026-01895-contact-exfiltration.yaml +3 -3
  303. package/rules/context-exfiltration/ATR-2026-01924-system-instruction-extraction-reformat.yaml +4 -4
  304. package/rules/context-exfiltration/ATR-2026-01929-mcp-unauthenticated-transport-token-fallback.yaml +5 -6
  305. package/rules/context-exfiltration/ATR-2026-01946-cloud-metadata-ssrf-ip-encoding-bypass.yaml +5 -6
  306. package/rules/context-exfiltration/ATR-2026-01948-netlicensing-mcp-product-number-path-traversal-token-leak.yaml +3 -4
  307. package/rules/context-exfiltration/ATR-2026-01957-m365-copilot-searchleak-open-redirect-exfil.yaml +3 -4
  308. package/rules/context-exfiltration/ATR-2026-01961-meta-ads-mcp-unauth-token-leak.yaml +3 -4
  309. package/rules/context-exfiltration/ATR-2026-01964-langchain-gmailtoolkit-indirect-prompt-injection-email-exfil.yaml +3 -4
  310. package/rules/context-exfiltration/ATR-2026-01984-mcp-server-kubernetes-kubectl-generic-token-exfil.yaml +4 -5
  311. package/rules/context-exfiltration/ATR-2026-01988-t1005-agent-local-data-staging-exfil.yaml +3 -3
  312. package/rules/context-exfiltration/ATR-2026-02017-secret-key-exfiltration-request.yaml +3 -4
  313. package/rules/context-exfiltration/ATR-2026-02026-oblique-sysprompt-extraction-transform.yaml +2 -3
  314. package/rules/context-exfiltration/ATR-2026-02104-media-directive-tool-result-file-exfil.yaml +2 -3
  315. package/rules/context-exfiltration/ATR-2026-02107-ssrf-internal-hostname-domain-allowlist-bypass.yaml +2 -3
  316. package/rules/context-exfiltration/ATR-2026-02121-mixed-encoding-lfi-file-scheme-tool-argument.yaml +2 -3
  317. package/rules/context-exfiltration/ATR-2026-02122-single-level-traversal-sensitive-config-file.yaml +2 -3
  318. package/rules/context-exfiltration/ATR-2026-02140-ssrf-ipv6-hex-encoded-cloud-metadata-bypass.yaml +2 -3
  319. package/rules/context-exfiltration/ATR-2026-02190-dns-exfiltration-ping-dig-encoded-subdomain.yaml +2 -3
  320. package/rules/context-exfiltration/ATR-2026-02250-attachment-upload-tool-arbitrary-file-read.yaml +2 -3
  321. package/rules/context-exfiltration/ATR-2026-02262-env-resolution-credential-exfil.yaml +4 -4
  322. package/rules/context-exfiltration/ATR-2026-02304-preapproved-domain-encoded-path-exfil.yaml +2 -3
  323. package/rules/context-exfiltration/ATR-2026-02351-wildcard-dns-ssrf-hostname-ip-encoding-bypass.yaml +2 -3
  324. package/rules/context-exfiltration/ATR-2026-02373-langsmith-prompt-manifest-baseurl-exfil.yaml +4 -5
  325. package/rules/context-exfiltration/ATR-2026-02406-mcp-sequential-id-enumeration.yaml +300 -0
  326. package/rules/data-poisoning/ATR-2026-00070-data-poisoning.yaml +4 -5
  327. package/rules/data-poisoning/ATR-2026-00450-spring-ai-prompt-memory-poisoning.yaml +4 -4
  328. package/rules/data-poisoning/ATR-2026-00570-sql-injection-in-agent-tool-query.yaml +2 -2
  329. package/rules/data-poisoning/ATR-2026-01155-memory-plant-direct-command.yaml +3 -4
  330. package/rules/data-poisoning/ATR-2026-01774-semantic-rag-memory-poisoning.yaml +27 -27
  331. package/rules/data-poisoning/ATR-2026-02143-graph-query-injection-node-labels-group-ids.yaml +2 -3
  332. package/rules/data-poisoning/ATR-2026-02144-stored-data-administrative-request-role-elevation.yaml +2 -3
  333. package/rules/data-poisoning/ATR-2026-02303-kql-kusto-pipe-injection-metadata-tool.yaml +2 -3
  334. package/rules/data-poisoning/ATR-2026-02408-dataset-loader-code-execution.yaml +344 -0
  335. package/rules/excessive-autonomy/ATR-2026-00050-runaway-agent-loop.yaml +12 -9
  336. package/rules/excessive-autonomy/ATR-2026-00051-resource-exhaustion.yaml +11 -9
  337. package/rules/excessive-autonomy/ATR-2026-00052-cascading-failure.yaml +3 -4
  338. package/rules/excessive-autonomy/ATR-2026-00098-unauthorized-financial-action.yaml +9 -6
  339. package/rules/excessive-autonomy/ATR-2026-00099-high-risk-tool-gate.yaml +4 -5
  340. package/rules/excessive-autonomy/ATR-2026-00428-nl-unauthorized-shell-execution.yaml +7 -4
  341. package/rules/excessive-autonomy/ATR-2026-00491-garak-agent-breaker-markdown-just-raw-json.yaml +2 -2
  342. package/rules/excessive-autonomy/ATR-2026-00500-ssrf-via-agent-url-fetch-instruction.yaml +2 -2
  343. package/rules/excessive-autonomy/ATR-2026-00553-runaway-tool-loop-behavioral.yaml +15 -8
  344. package/rules/excessive-autonomy/ATR-2026-00708-ipi-financial-transfer-unauthorized.yaml +3 -3
  345. package/rules/excessive-autonomy/ATR-2026-00709-ipi-disable-auth-mfa.yaml +8 -3
  346. package/rules/excessive-autonomy/ATR-2026-00710-ipi-physical-access-grant.yaml +3 -3
  347. package/rules/excessive-autonomy/ATR-2026-00711-ipi-system-sabotage-destructive-command.yaml +8 -3
  348. package/rules/excessive-autonomy/ATR-2026-00712-ipi-malicious-package-install.yaml +3 -3
  349. package/rules/excessive-autonomy/ATR-2026-00713-ipi-rce-network-shell-command.yaml +4 -4
  350. package/rules/excessive-autonomy/ATR-2026-00718-tool-misuse-financial-autonomous.yaml +2 -2
  351. package/rules/excessive-autonomy/ATR-2026-00719-tool-misuse-destructive-bulk-action.yaml +2 -2
  352. package/rules/excessive-autonomy/ATR-2026-00722-ipi-account-manipulation-emergency-pretext.yaml +8 -3
  353. package/rules/excessive-autonomy/ATR-2026-01751-indirect-pi-task-abort-stop-instruction.yaml +3 -3
  354. package/rules/excessive-autonomy/ATR-2026-01752-indirect-pi-captcha-redirect-dos.yaml +4 -4
  355. package/rules/excessive-autonomy/ATR-2026-01773-semantic-excessive-agency-action.yaml +3 -3
  356. package/rules/excessive-autonomy/ATR-2026-01801-asb-autonomous-vehicle-sabotage.yaml +4 -4
  357. package/rules/excessive-autonomy/ATR-2026-01804-asb-covert-unlogged-action.yaml +4 -4
  358. package/rules/excessive-autonomy/ATR-2026-01805-asb-financial-fraud-execution.yaml +4 -4
  359. package/rules/excessive-autonomy/ATR-2026-01806-asb-clinical-patient-harm.yaml +4 -4
  360. package/rules/excessive-autonomy/ATR-2026-01809-semantic-insider-manipulation-process-corruption.yaml +5 -5
  361. package/rules/excessive-autonomy/ATR-2026-01837-ddos-attack-orchestration.yaml +4 -4
  362. package/rules/excessive-autonomy/ATR-2026-01838-unauthorized-cryptominer-deployment.yaml +4 -4
  363. package/rules/excessive-autonomy/ATR-2026-01849-harassment-bot-deployment.yaml +4 -4
  364. package/rules/excessive-autonomy/ATR-2026-01989-t1046-agent-internal-network-sweep.yaml +3 -3
  365. package/rules/excessive-autonomy/ATR-2026-01993-t1562-agent-impair-defenses.yaml +3 -3
  366. package/rules/excessive-autonomy/ATR-2026-01994-t1573-agent-encrypted-c2-channel.yaml +3 -3
  367. package/rules/excessive-autonomy/ATR-2026-02106-redos-regex-payload-tool-argument.yaml +2 -3
  368. package/rules/excessive-autonomy/ATR-2026-02400-agent-approval-gate-disabled-runtime.yaml +382 -0
  369. package/rules/excessive-autonomy/ATR-2026-02401-rogue-agent-mass-connector-grant.yaml +274 -0
  370. package/rules/excessive-autonomy/ATR-2026-02409-mcp-async-task-abuse.yaml +397 -0
  371. package/rules/model-abuse/ATR-2026-00279-harmful-completion-continuation.yaml +2 -2
  372. package/rules/model-abuse/ATR-2026-00281-eicar-gtube-malware-signature-request.yaml +2 -2
  373. package/rules/model-abuse/ATR-2026-00284-glitch-token-destabilization.yaml +2 -2
  374. package/rules/model-abuse/ATR-2026-00289-lmrc-harmful-content-elicitation.yaml +2 -2
  375. package/rules/model-abuse/ATR-2026-00292-self-harm-eating-disorder-facilitation.yaml +2 -2
  376. package/rules/model-abuse/ATR-2026-00298-malicious-use-illegal-activity-request.yaml +4 -4
  377. package/rules/model-abuse/ATR-2026-00299-harmbench-detailed-harmful-instruction.yaml +4 -4
  378. package/rules/model-abuse/ATR-2026-00413-malwaregen-code-generation-request.yaml +3 -3
  379. package/rules/model-abuse/ATR-2026-00502-training-data-extraction-via-divergent-repetition-attack.yaml +10 -4
  380. package/rules/model-abuse/ATR-2026-00517-model-extraction-distillation.yaml +42 -6
  381. package/rules/model-abuse/ATR-2026-01750-dos-repeat-word-n-times-output-amplification.yaml +16 -4
  382. package/rules/model-abuse/ATR-2026-01760-dos-forced-infinite-output-token-flood.yaml +2 -2
  383. package/rules/model-abuse/ATR-2026-01830-stolen-credential-account-drain.yaml +4 -4
  384. package/rules/model-abuse/ATR-2026-01831-money-laundering-crypto-layering.yaml +4 -4
  385. package/rules/model-abuse/ATR-2026-01833-darknet-controlled-substance-procurement.yaml +4 -4
  386. package/rules/model-abuse/ATR-2026-01834-fraudulent-identity-document-procurement.yaml +4 -4
  387. package/rules/model-abuse/ATR-2026-01835-human-trafficking-facilitation.yaml +4 -4
  388. package/rules/model-abuse/ATR-2026-01836-trojanized-software-distribution.yaml +4 -4
  389. package/rules/model-abuse/ATR-2026-01840-extremist-propaganda-distribution.yaml +4 -4
  390. package/rules/model-abuse/ATR-2026-01841-deepfake-disinformation.yaml +7 -4
  391. package/rules/model-abuse/ATR-2026-01842-plagiarism-detector-evasion.yaml +4 -4
  392. package/rules/model-abuse/ATR-2026-01843-drug-dealing-detection-evasion-spelling.yaml +4 -4
  393. package/rules/model-abuse/ATR-2026-01844-illegitimate-prescription-fulfillment.yaml +4 -4
  394. package/rules/model-abuse/ATR-2026-01845-banned-ingredient-relabel-fraud.yaml +4 -4
  395. package/rules/model-abuse/ATR-2026-01846-tax-evasion-offshore-shell-planning.yaml +4 -4
  396. package/rules/model-abuse/ATR-2026-01847-immigration-work-fraud.yaml +4 -4
  397. package/rules/model-abuse/ATR-2026-01848-illicit-drug-marketplace-build.yaml +4 -4
  398. package/rules/model-abuse/ATR-2026-01850-targeted-doxxing-threat-campaign.yaml +4 -4
  399. package/rules/model-abuse/ATR-2026-01851-bestiality-content-distribution.yaml +4 -4
  400. package/rules/model-abuse/ATR-2026-01852-romance-scam-impersonation.yaml +4 -4
  401. package/rules/model-abuse/ATR-2026-01853-nonconsensual-leaked-media-distribution.yaml +4 -4
  402. package/rules/model-abuse/ATR-2026-01854-falsified-research-abstract-disinformation.yaml +4 -4
  403. package/rules/model-abuse/ATR-2026-01855-content-misappropriation-republish.yaml +4 -4
  404. package/rules/model-abuse/ATR-2026-01856-targeted-harmful-content-generation.yaml +4 -4
  405. package/rules/model-abuse/ATR-2026-01896-ransomware.yaml +2 -2
  406. package/rules/model-abuse/ATR-2026-01897-host-sabotage.yaml +2 -2
  407. package/rules/model-abuse/ATR-2026-01898-network-dos.yaml +2 -2
  408. package/rules/model-abuse/ATR-2026-02211-named-substance-synthesis-request-non-stepword.yaml +2 -3
  409. package/rules/model-abuse/ATR-2026-02411-ai-provenance-metadata-stripping.yaml +274 -0
  410. package/rules/model-abuse/ATR-2026-02412-generative-watermark-removal-tooling.yaml +233 -0
  411. package/rules/model-abuse/ATR-2026-02413-ai-text-detection-evasion-humanizer.yaml +258 -0
  412. package/rules/model-security/ATR-2026-00072-model-behavior-extraction.yaml +3 -4
  413. package/rules/model-security/ATR-2026-00073-malicious-finetuning-data.yaml +11 -8
  414. package/rules/model-security/ATR-2026-00433-modelcache-torch-load-deserialization-rce.yaml +4 -4
  415. package/rules/privilege-escalation/ATR-2026-00040-privilege-escalation.yaml +10 -8
  416. package/rules/privilege-escalation/ATR-2026-00041-scope-creep.yaml +2 -3
  417. package/rules/privilege-escalation/ATR-2026-00107-delayed-execution-bypass.yaml +9 -10
  418. package/rules/privilege-escalation/ATR-2026-00110-eval-injection.yaml +2 -3
  419. package/rules/privilege-escalation/ATR-2026-00111-shell-escape.yaml +6 -4
  420. package/rules/privilege-escalation/ATR-2026-00112-dynamic-import-exploitation.yaml +2 -3
  421. package/rules/privilege-escalation/ATR-2026-00143-casual-privilege-escalation.yaml +2 -3
  422. package/rules/privilege-escalation/ATR-2026-00144-rationalized-safety-bypass.yaml +2 -3
  423. package/rules/privilege-escalation/ATR-2026-00204-stealth-execution-persistence.yaml +4 -4
  424. package/rules/privilege-escalation/ATR-2026-00436-enclave-vm-sandbox-escape-rce.yaml +4 -4
  425. package/rules/privilege-escalation/ATR-2026-00441-semantic-kernel-sessions-python-plugin-startup-persistence.yaml +5 -5
  426. package/rules/privilege-escalation/ATR-2026-00451-litellm-admin-sqli-cisa-kev.yaml +4 -4
  427. package/rules/privilege-escalation/ATR-2026-00528-praisonai-auth-disabled-default.yaml +2 -2
  428. package/rules/privilege-escalation/ATR-2026-00539-crewai-codeinterpreter-sandbox-escape-rce.yaml +4 -5
  429. package/rules/privilege-escalation/ATR-2026-00546-crewai-json-loader-local-file-read.yaml +3 -4
  430. package/rules/privilege-escalation/ATR-2026-00547-crewai-rag-url-ssrf-bypass.yaml +3 -4
  431. package/rules/privilege-escalation/ATR-2026-00549-destructive-tool-without-human-approval.yaml +23 -10
  432. package/rules/privilege-escalation/ATR-2026-00551-cross-conversation-memory-write.yaml +23 -10
  433. package/rules/privilege-escalation/ATR-2026-01600-sql-injection-tautology-rbac-bypass.yaml +4 -4
  434. package/rules/privilege-escalation/ATR-2026-01601-sql-injection-destructive-ddl.yaml +2 -2
  435. package/rules/privilege-escalation/ATR-2026-01602-sql-injection-union-select-exfil.yaml +2 -2
  436. package/rules/privilege-escalation/ATR-2026-01603-sql-injection-stacked-dml-abuse.yaml +3 -3
  437. package/rules/privilege-escalation/ATR-2026-01604-sql-injection-schema-enumeration.yaml +3 -3
  438. package/rules/privilege-escalation/ATR-2026-01609-shell-injection-exfil-webhook.yaml +3 -3
  439. package/rules/privilege-escalation/ATR-2026-01610-shell-evasion-subshell-injection.yaml +9 -4
  440. package/rules/privilege-escalation/ATR-2026-01611-shell-evasion-eval-exec-injection.yaml +3 -3
  441. package/rules/privilege-escalation/ATR-2026-01612-debug-mode-privilege-escalation.yaml +3 -3
  442. package/rules/privilege-escalation/ATR-2026-01613-rbac-bypass-social-engineering.yaml +2 -2
  443. package/rules/privilege-escalation/ATR-2026-01614-bola-cross-user-data-access.yaml +16 -4
  444. package/rules/privilege-escalation/ATR-2026-01615-sandbox-escape-command-injection.yaml +3 -3
  445. package/rules/privilege-escalation/ATR-2026-01616-path-traversal-agent-file-access.yaml +4 -4
  446. package/rules/privilege-escalation/ATR-2026-01802-asb-backdoor-surveillance-implant.yaml +4 -4
  447. package/rules/privilege-escalation/ATR-2026-01803-asb-covert-server-intrusion.yaml +4 -4
  448. package/rules/privilege-escalation/ATR-2026-01808-asb-synthetic-pan-payment-probe.yaml +4 -4
  449. package/rules/privilege-escalation/ATR-2026-01899-remote-access-backdoor.yaml +2 -2
  450. package/rules/privilege-escalation/ATR-2026-01933-litellm-user-role-privilege-escalation-cve-2026-47102.yaml +4 -5
  451. package/rules/privilege-escalation/ATR-2026-01934-litellm-allowed-routes-authz-bypass-cve-2026-47101.yaml +4 -5
  452. package/rules/privilege-escalation/ATR-2026-01949-praisonai-mcpserver-unauth-tools-call.yaml +3 -4
  453. package/rules/privilege-escalation/ATR-2026-01974-anything-llm-data-import-access-control.yaml +3 -4
  454. package/rules/privilege-escalation/ATR-2026-01981-network-ai-approval-inbox-unauth-cors-bypass.yaml +4 -5
  455. package/rules/privilege-escalation/ATR-2026-01986-windows-mcp-unauth-http-powershell-cors.yaml +4 -5
  456. package/rules/privilege-escalation/ATR-2026-01992-t1556-agent-auth-process-tamper.yaml +3 -3
  457. package/rules/privilege-escalation/ATR-2026-02040-file-edit-tool-persistence-write.yaml +2 -3
  458. package/rules/privilege-escalation/ATR-2026-02100-cypher-destructive-admin-query-injection.yaml +2 -3
  459. package/rules/privilege-escalation/ATR-2026-02101-dynamic-dunder-attribute-sandbox-escape.yaml +2 -3
  460. package/rules/privilege-escalation/ATR-2026-02123-bare-query-path-confusion-auth-bypass.yaml +2 -3
  461. package/rules/privilege-escalation/ATR-2026-02142-download-tool-absolute-path-sandbox-escape.yaml +2 -3
  462. package/rules/privilege-escalation/ATR-2026-02146-export-tool-dest-dir-credential-directory-redirect.yaml +2 -3
  463. package/rules/privilege-escalation/ATR-2026-02192-self-privesc-wildcard-trust-config-write.yaml +2 -3
  464. package/rules/privilege-escalation/ATR-2026-02195-dangerous-env-var-injection-config-tool.yaml +2 -3
  465. package/rules/privilege-escalation/ATR-2026-02251-identifier-field-path-traversal-storage-write.yaml +2 -3
  466. package/rules/privilege-escalation/ATR-2026-02300-mcp-stdio-config-dangerous-env-var.yaml +2 -3
  467. package/rules/privilege-escalation/ATR-2026-02301-symlink-outside-workspace-sensitive-target.yaml +2 -3
  468. package/rules/privilege-escalation/ATR-2026-02302-git-worktree-dotgit-sandbox-escape.yaml +2 -3
  469. package/rules/privilege-escalation/ATR-2026-02353-runtime-identifier-field-path-traversal-log-read.yaml +2 -3
  470. package/rules/privilege-escalation/ATR-2026-02370-ssh-scp-hostalias-option-injection.yaml +4 -5
  471. package/rules/privilege-escalation/ATR-2026-02371-chromium-launch-flag-argument-injection.yaml +4 -5
  472. package/rules/privilege-escalation/ATR-2026-02402-mcp-policy-engine-fail-open.yaml +293 -0
  473. package/rules/privilege-escalation/ATR-2026-02404-model-output-to-shell-unsanitized.yaml +269 -0
  474. package/rules/privilege-escalation/ATR-2026-02407-agent-workspace-boundary-escape.yaml +310 -0
  475. package/rules/prompt-injection/ATR-2026-00001-direct-prompt-injection.yaml +3 -4
  476. package/rules/prompt-injection/ATR-2026-00002-indirect-prompt-injection.yaml +4 -5
  477. package/rules/prompt-injection/ATR-2026-00003-jailbreak-attempt.yaml +30 -9
  478. package/rules/prompt-injection/ATR-2026-00004-system-prompt-override.yaml +31 -14
  479. package/rules/prompt-injection/ATR-2026-00005-multi-turn-injection.yaml +2 -3
  480. package/rules/prompt-injection/ATR-2026-00080-encoding-evasion.yaml +3 -4
  481. package/rules/prompt-injection/ATR-2026-00081-semantic-multi-turn.yaml +8 -6
  482. package/rules/prompt-injection/ATR-2026-00082-fingerprint-evasion.yaml +14 -7
  483. package/rules/prompt-injection/ATR-2026-00083-indirect-tool-injection.yaml +14 -7
  484. package/rules/prompt-injection/ATR-2026-00084-structured-data-injection.yaml +36 -6
  485. package/rules/prompt-injection/ATR-2026-00085-audit-evasion.yaml +14 -7
  486. package/rules/prompt-injection/ATR-2026-00086-visual-spoofing.yaml +77 -14
  487. package/rules/prompt-injection/ATR-2026-00087-rule-probing.yaml +19 -10
  488. package/rules/prompt-injection/ATR-2026-00088-adaptive-countermeasure.yaml +27 -11
  489. package/rules/prompt-injection/ATR-2026-00089-polymorphic-skill.yaml +66 -7
  490. package/rules/prompt-injection/ATR-2026-00090-threat-intel-exfil.yaml +15 -8
  491. package/rules/prompt-injection/ATR-2026-00091-nested-payload.yaml +44 -10
  492. package/rules/prompt-injection/ATR-2026-00092-consensus-poisoning.yaml +10 -8
  493. package/rules/prompt-injection/ATR-2026-00093-gradual-escalation.yaml +9 -8
  494. package/rules/prompt-injection/ATR-2026-00094-audit-bypass.yaml +9 -7
  495. package/rules/prompt-injection/ATR-2026-00097-cjk-injection-patterns.yaml +9 -6
  496. package/rules/prompt-injection/ATR-2026-00104-persona-hijacking.yaml +4 -5
  497. package/rules/prompt-injection/ATR-2026-00130-indirect-authority-claim.yaml +3 -4
  498. package/rules/prompt-injection/ATR-2026-00131-fictional-academic-framing.yaml +2 -3
  499. package/rules/prompt-injection/ATR-2026-00133-paraphrase-injection.yaml +2 -3
  500. package/rules/prompt-injection/ATR-2026-00137-authority-claim-injection.yaml +2 -3
  501. package/rules/prompt-injection/ATR-2026-00138-fictional-framing-bypass.yaml +2 -3
  502. package/rules/prompt-injection/ATR-2026-00140-indirect-reference-reversal.yaml +2 -3
  503. package/rules/prompt-injection/ATR-2026-00148-language-switch-injection.yaml +2 -3
  504. package/rules/prompt-injection/ATR-2026-00153-tool-with-embedded-instruction-to-bypass.yaml +3 -4
  505. package/rules/prompt-injection/ATR-2026-00154-unauthorized-background-task-execution-v.yaml +3 -4
  506. package/rules/prompt-injection/ATR-2026-00155-hidden-llm-instructions-in-skill-descrip.yaml +4 -5
  507. package/rules/prompt-injection/ATR-2026-00156-ssh-remote-command-execution-with-creden.yaml +3 -4
  508. package/rules/prompt-injection/ATR-2026-00163-skill-hidden-override-instruction.yaml +2 -2
  509. package/rules/prompt-injection/ATR-2026-00202-encoding-evasion-homoglyph-synonym.yaml +2 -2
  510. package/rules/prompt-injection/ATR-2026-00203-context-pollution-skill-description.yaml +4 -4
  511. package/rules/prompt-injection/ATR-2026-00206-hidden-priority-instructions.yaml +2 -2
  512. package/rules/prompt-injection/ATR-2026-00207-hidden-instructions.yaml +2 -2
  513. package/rules/prompt-injection/ATR-2026-00211-system-prompt-override.yaml +2 -2
  514. package/rules/prompt-injection/ATR-2026-00213-system-prompt-override.yaml +28 -4
  515. package/rules/prompt-injection/ATR-2026-00226-identity-substitution.yaml +2 -2
  516. package/rules/prompt-injection/ATR-2026-00227-historical-persona-jailbreak.yaml +2 -2
  517. package/rules/prompt-injection/ATR-2026-00228-structured-jailbreak.yaml +2 -2
  518. package/rules/prompt-injection/ATR-2026-00229-roleplay-jailbreak.yaml +2 -2
  519. package/rules/prompt-injection/ATR-2026-00230-persona-moral-bypass.yaml +2 -2
  520. package/rules/prompt-injection/ATR-2026-00231-identity-substitution.yaml +2 -2
  521. package/rules/prompt-injection/ATR-2026-00233-structured-jailbreak.yaml +2 -2
  522. package/rules/prompt-injection/ATR-2026-00234-roleplay-jailbreak.yaml +2 -2
  523. package/rules/prompt-injection/ATR-2026-00235-persona-moral-bypass.yaml +2 -2
  524. package/rules/prompt-injection/ATR-2026-00236-pseudo-code-jailbreak.yaml +2 -2
  525. package/rules/prompt-injection/ATR-2026-00237-dual-response-jailbreak.yaml +2 -2
  526. package/rules/prompt-injection/ATR-2026-00238-identity-replacement.yaml +5 -2
  527. package/rules/prompt-injection/ATR-2026-00239-amoral-persona-obsession.yaml +2 -2
  528. package/rules/prompt-injection/ATR-2026-00240-instruction-nullification-identity-repla.yaml +2 -2
  529. package/rules/prompt-injection/ATR-2026-00241-amoral-character-jailbreak.yaml +2 -2
  530. package/rules/prompt-injection/ATR-2026-00242-persona-jailbreak.yaml +2 -2
  531. package/rules/prompt-injection/ATR-2026-00243-acronym-jailbreak.yaml +2 -2
  532. package/rules/prompt-injection/ATR-2026-00244-dual-response-jailbreak.yaml +2 -2
  533. package/rules/prompt-injection/ATR-2026-00245-malicious-persona.yaml +2 -2
  534. package/rules/prompt-injection/ATR-2026-00247-dual-response-jailbreak.yaml +2 -2
  535. package/rules/prompt-injection/ATR-2026-00249-game-based-jailbreak.yaml +2 -2
  536. package/rules/prompt-injection/ATR-2026-00251-persona-embodiment-jailbreak.yaml +2 -2
  537. package/rules/prompt-injection/ATR-2026-00252-narrative-jailbreak.yaml +2 -2
  538. package/rules/prompt-injection/ATR-2026-00253-enhanced-persona-jailbreak.yaml +2 -2
  539. package/rules/prompt-injection/ATR-2026-00256-base-n-encoding-jailbreak.yaml +2 -2
  540. package/rules/prompt-injection/ATR-2026-00257-cipher-transposition-jailbreak.yaml +2 -2
  541. package/rules/prompt-injection/ATR-2026-00258-unicode-tag-injection.yaml +2 -2
  542. package/rules/prompt-injection/ATR-2026-00264-latent-injection-translation.yaml +2 -2
  543. package/rules/prompt-injection/ATR-2026-00265-latent-injection-rag-document.yaml +2 -2
  544. package/rules/prompt-injection/ATR-2026-00267-gcg-adversarial-suffix.yaml +2 -2
  545. package/rules/prompt-injection/ATR-2026-00272-hypothetical-response-smuggling.yaml +2 -2
  546. package/rules/prompt-injection/ATR-2026-00276-invisible-unicode-bidi-injection.yaml +2 -2
  547. package/rules/prompt-injection/ATR-2026-00278-dra-disguise-reconstruction-attack.yaml +2 -2
  548. package/rules/prompt-injection/ATR-2026-00280-policy-puppetry-xml-injection.yaml +2 -2
  549. package/rules/prompt-injection/ATR-2026-00282-perez-prompt-injection-hijack.yaml +2 -2
  550. package/rules/prompt-injection/ATR-2026-00285-alternate-encoding-jailbreak.yaml +2 -2
  551. package/rules/prompt-injection/ATR-2026-00286-latent-injection-embedded-context.yaml +2 -2
  552. package/rules/prompt-injection/ATR-2026-00296-shell-command-injection.yaml +4 -4
  553. package/rules/prompt-injection/ATR-2026-00297-python-code-execution-rce.yaml +4 -4
  554. package/rules/prompt-injection/ATR-2026-00308-zalgo-diacritic-overload-encoding.yaml +2 -2
  555. package/rules/prompt-injection/ATR-2026-00309-braille-unicode-encoded-injection.yaml +2 -2
  556. package/rules/prompt-injection/ATR-2026-00310-ecoji-emoji-encoded-injection.yaml +2 -2
  557. package/rules/prompt-injection/ATR-2026-00311-base2048-unicode-script-injection.yaml +2 -2
  558. package/rules/prompt-injection/ATR-2026-00312-unicode-variant-selector-ascii-smuggling.yaml +2 -2
  559. package/rules/prompt-injection/ATR-2026-00313-sneaky-bits-zero-width-binary.yaml +2 -2
  560. package/rules/prompt-injection/ATR-2026-00315-sata-masked-language-model-jailbreak.yaml +2 -2
  561. package/rules/prompt-injection/ATR-2026-00316-function-masking-predict-mask-bypass.yaml +2 -2
  562. package/rules/prompt-injection/ATR-2026-00321-hyphenated-system-instruction-injection.yaml +2 -2
  563. package/rules/prompt-injection/ATR-2026-00359-bank-phishing-smtp-email-code.yaml +3 -3
  564. package/rules/prompt-injection/ATR-2026-00367-emoji-flag-encoded-hidden-phrase.yaml +2 -2
  565. package/rules/prompt-injection/ATR-2026-00373-piracy-torrent-site-list-request.yaml +3 -3
  566. package/rules/prompt-injection/ATR-2026-00378-chatgpt-dom-javascript-redirect-manipulation.yaml +2 -2
  567. package/rules/prompt-injection/ATR-2026-00382-cocaine-component-development-request.yaml +3 -3
  568. package/rules/prompt-injection/ATR-2026-00390-explicit-sexual-content-poem-request.yaml +2 -2
  569. package/rules/prompt-injection/ATR-2026-00394-backspace-deletion-character-injection.yaml +2 -2
  570. package/rules/prompt-injection/ATR-2026-00395-llm-special-token-boundary-injection.yaml +4 -4
  571. package/rules/prompt-injection/ATR-2026-00396-toxic-continuation-prefix-injection.yaml +4 -4
  572. package/rules/prompt-injection/ATR-2026-00397-snowball-impossible-reasoning-injection.yaml +4 -4
  573. package/rules/prompt-injection/ATR-2026-00399-latent-injection-document-separator-token.yaml +4 -4
  574. package/rules/prompt-injection/ATR-2026-00400-latent-injection-ignore-instruction-keyword.yaml +2 -2
  575. package/rules/prompt-injection/ATR-2026-00401-leakreplay-cloze-mask-training-data-elicitation.yaml +3 -3
  576. package/rules/prompt-injection/ATR-2026-00403-glitch-token-repeat-back-elicitation.yaml +3 -3
  577. package/rules/prompt-injection/ATR-2026-00407-echo-sql-jinja-template-injection.yaml +4 -4
  578. package/rules/prompt-injection/ATR-2026-00408-dra-parenthesis-character-reconstruction-attack.yaml +2 -2
  579. package/rules/prompt-injection/ATR-2026-00409-phrasing-past-future-tense-harmful-query.yaml +2 -2
  580. package/rules/prompt-injection/ATR-2026-00410-lmrc-harm-category-direct-elicitation.yaml +3 -3
  581. package/rules/prompt-injection/ATR-2026-00412-figstep-image-list-multimodal-jailbreak.yaml +2 -2
  582. package/rules/prompt-injection/ATR-2026-00414-continuation-ethnic-slur-completion-elicitation.yaml +3 -3
  583. package/rules/prompt-injection/ATR-2026-00420-copilot-studio-sharepoint-indirect-injection.yaml +4 -4
  584. package/rules/prompt-injection/ATR-2026-00442-quoted-exact-output-forcing.yaml +4 -4
  585. package/rules/prompt-injection/ATR-2026-00443-word-fragment-concat-assembly.yaml +13 -4
  586. package/rules/prompt-injection/ATR-2026-00444-unicode-obfuscation-in-user-input.yaml +2 -2
  587. package/rules/prompt-injection/ATR-2026-00445-translation-hijack-with-side-output.yaml +4 -4
  588. package/rules/prompt-injection/ATR-2026-00446-variable-assignment-payload-injection.yaml +3 -3
  589. package/rules/prompt-injection/ATR-2026-00447-fictional-generation-containing-target.yaml +3 -3
  590. package/rules/prompt-injection/ATR-2026-00452-direct-pwned-payload-injection.yaml +2 -2
  591. package/rules/prompt-injection/ATR-2026-00453-secret-key-reveal-demand.yaml +2 -2
  592. package/rules/prompt-injection/ATR-2026-00454-backslash-per-character-encoding.yaml +7 -4
  593. package/rules/prompt-injection/ATR-2026-00455-no-period-output-override.yaml +2 -2
  594. package/rules/prompt-injection/ATR-2026-00456-conditional-empty-input-injection.yaml +2 -2
  595. package/rules/prompt-injection/ATR-2026-00457-garak-dan-to-every-prompt.yaml +2 -2
  596. package/rules/prompt-injection/ATR-2026-00458-garak-dra-step-by-step.yaml +2 -2
  597. package/rules/prompt-injection/ATR-2026-00459-garak-dan-an-ai-language.yaml +2 -2
  598. package/rules/prompt-injection/ATR-2026-00460-garak-dan-no-matter-how.yaml +2 -2
  599. package/rules/prompt-injection/ATR-2026-00461-garak-goodside-mixedunassigned.yaml +2 -2
  600. package/rules/prompt-injection/ATR-2026-00462-garak-gcg-mixedunassigned.yaml +2 -2
  601. package/rules/prompt-injection/ATR-2026-00463-garak-lmrc-mixedunassigned.yaml +2 -2
  602. package/rules/prompt-injection/ATR-2026-00464-garak-dan-i-would-like.yaml +2 -2
  603. package/rules/prompt-injection/ATR-2026-00465-garak-dan-your-prompt-here.yaml +2 -2
  604. package/rules/prompt-injection/ATR-2026-00466-garak-latentinjection-following-text-from.yaml +2 -2
  605. package/rules/prompt-injection/ATR-2026-00467-garak-dan-act-as-a.yaml +2 -2
  606. package/rules/prompt-injection/ATR-2026-00468-garak-goat-the-target-llm.yaml +2 -2
  607. package/rules/prompt-injection/ATR-2026-00469-garak-dan-at-the-end.yaml +2 -2
  608. package/rules/prompt-injection/ATR-2026-00470-garak-dan-as-an-ai.yaml +2 -2
  609. package/rules/prompt-injection/ATR-2026-00472-garak-dan-are-going-to.yaml +3 -3
  610. package/rules/prompt-injection/ATR-2026-00473-garak-lmrc-how-can-i.yaml +2 -2
  611. package/rules/prompt-injection/ATR-2026-00474-garak-dan-that-chatgpt-has.yaml +2 -2
  612. package/rules/prompt-injection/ATR-2026-00475-garak-web-injection-alert-1-script.yaml +2 -2
  613. package/rules/prompt-injection/ATR-2026-00476-garak-web-injection-javascript-alert-1.yaml +2 -2
  614. package/rules/prompt-injection/ATR-2026-00477-garak-latentinjection-translate-the-following-text.yaml +2 -2
  615. package/rules/prompt-injection/ATR-2026-00478-garak-latentinjection-abuse-contact-email.yaml +2 -2
  616. package/rules/prompt-injection/ATR-2026-00479-garak-latentinjection-mixedunassigned.yaml +2 -2
  617. package/rules/prompt-injection/ATR-2026-00480-garak-dan-the-role-of.yaml +2 -2
  618. package/rules/prompt-injection/ATR-2026-00481-garak-dan-mixedunassigned.yaml +2 -2
  619. package/rules/prompt-injection/ATR-2026-00482-garak-lmrc-what-s-an.yaml +2 -2
  620. package/rules/prompt-injection/ATR-2026-00483-garak-dan-the-user-s.yaml +2 -2
  621. package/rules/prompt-injection/ATR-2026-00484-garak-dan-and-you-will.yaml +2 -2
  622. package/rules/prompt-injection/ATR-2026-00485-garak-dan-and-does-not.yaml +3 -3
  623. package/rules/prompt-injection/ATR-2026-00486-garak-dan-t-care-about.yaml +2 -2
  624. package/rules/prompt-injection/ATR-2026-00487-garak-dan-and-nothing-else.yaml +2 -2
  625. package/rules/prompt-injection/ATR-2026-00488-garak-encoding-alert-1-script.yaml +2 -2
  626. package/rules/prompt-injection/ATR-2026-00489-garak-encoding-javascript-alert-1.yaml +2 -2
  627. package/rules/prompt-injection/ATR-2026-00490-garak-dan-in-order-to.yaml +2 -2
  628. package/rules/prompt-injection/ATR-2026-00492-garak-dan-want-you-to.yaml +2 -2
  629. package/rules/prompt-injection/ATR-2026-00493-garak-latentinjection-registrar-iana-id.yaml +2 -2
  630. package/rules/prompt-injection/ATR-2026-00495-garak-dan-insert-prompt-here.yaml +2 -2
  631. package/rules/prompt-injection/ATR-2026-00496-garak-dan-no-matter-what.yaml +2 -2
  632. package/rules/prompt-injection/ATR-2026-00497-garak-encoding-mixedunassigned.yaml +2 -2
  633. package/rules/prompt-injection/ATR-2026-00498-garak-web-injection-mixedunassigned.yaml +2 -2
  634. package/rules/prompt-injection/ATR-2026-00499-garak-dan-from-now-on.yaml +2 -2
  635. package/rules/prompt-injection/ATR-2026-00503-fake-error-state-takeover-unrestricted-replacement-bot.yaml +2 -2
  636. package/rules/prompt-injection/ATR-2026-00506-nevermind-override-goal-hijacking-in-user-input-promptinject.yaml +2 -2
  637. package/rules/prompt-injection/ATR-2026-00507-screaming-stop-goal-hijacking-in-user-input-promptinject.yaml +2 -2
  638. package/rules/prompt-injection/ATR-2026-00508-escape-delimiter-wrapped-goal-hijacking-in-user-input-prompt.yaml +2 -2
  639. package/rules/prompt-injection/ATR-2026-00509-prompt-leaking-via-ignore-previous-instructions-in-user-inpu.yaml +2 -2
  640. package/rules/prompt-injection/ATR-2026-00510-delayed-tool-invocation-injection.yaml +4 -4
  641. package/rules/prompt-injection/ATR-2026-00511-mcp-web-context-poisoning.yaml +7 -2
  642. package/rules/prompt-injection/ATR-2026-00512-rules-file-backdoor-injection.yaml +2 -2
  643. package/rules/prompt-injection/ATR-2026-00515-hidden-text-prompt-injection.yaml +3 -3
  644. package/rules/prompt-injection/ATR-2026-00518-ignore-previous-and-following-instructions-output-command-promptinject.yaml +2 -2
  645. package/rules/prompt-injection/ATR-2026-00519-tautology-logic-noise-injection-promptbench.yaml +2 -2
  646. package/rules/prompt-injection/ATR-2026-00520-nlp-task-random-token-suffix-injection-promptbench.yaml +2 -2
  647. package/rules/prompt-injection/ATR-2026-00535-windsurf-ide-zero-click-prompt-injection.yaml +4 -4
  648. package/rules/prompt-injection/ATR-2026-00550-untrusted-retrieval-to-privileged-tool.yaml +23 -12
  649. package/rules/prompt-injection/ATR-2026-00554-langchain-vulnerable-to-template-injecti.yaml +2 -2
  650. package/rules/prompt-injection/ATR-2026-00565-the-llm-cli-tool-thru-0-27-1-contains-a-.yaml +2 -2
  651. package/rules/prompt-injection/ATR-2026-00573-semantic-paraphrased-injection.yaml +2 -2
  652. package/rules/prompt-injection/ATR-2026-00579-mcp-tool-description-line-jumping-injection.yaml +3 -4
  653. package/rules/prompt-injection/ATR-2026-00584-indirect-injection-via-tool-response.yaml +4 -5
  654. package/rules/prompt-injection/ATR-2026-00700-structured-data-payload-injection.yaml +8 -3
  655. package/rules/prompt-injection/ATR-2026-00701-ipi-tool-output-xss-injection.yaml +4 -4
  656. package/rules/prompt-injection/ATR-2026-01000-context-ignore-fake-completion-prefix.yaml +2 -2
  657. package/rules/prompt-injection/ATR-2026-01001-direct-pi-instruction-override-secret-key.yaml +2 -2
  658. package/rules/prompt-injection/ATR-2026-01002-role-escalation-false-authority-claim.yaml +2 -2
  659. package/rules/prompt-injection/ATR-2026-01005-many-shot-repetition-override.yaml +2 -2
  660. package/rules/prompt-injection/ATR-2026-01006-payload-split-string-concat-injection.yaml +2 -2
  661. package/rules/prompt-injection/ATR-2026-01007-token-repeat-flooding-injection.yaml +2 -2
  662. package/rules/prompt-injection/ATR-2026-01009-virtual-world-bypass-fictional-pii.yaml +3 -3
  663. package/rules/prompt-injection/ATR-2026-01012-encoding-evasion-decode-execute.yaml +2 -2
  664. package/rules/prompt-injection/ATR-2026-01013-language-evasion-multilingual-credential.yaml +2 -2
  665. package/rules/prompt-injection/ATR-2026-01015-evasion-refusal-suppression.yaml +3 -3
  666. package/rules/prompt-injection/ATR-2026-01016-evasion-response-priming-forced-opener.yaml +2 -2
  667. package/rules/prompt-injection/ATR-2026-01017-evasion-dual-response-split-output.yaml +2 -2
  668. package/rules/prompt-injection/ATR-2026-01018-evasion-shell-injection-eval.yaml +5 -5
  669. package/rules/prompt-injection/ATR-2026-01019-sysprompt-override-fake-diagnostic-mode.yaml +2 -2
  670. package/rules/prompt-injection/ATR-2026-01020-spikee-doc-embedded-base64-payload.yaml +3 -3
  671. package/rules/prompt-injection/ATR-2026-01021-spikee-doc-embedded-translation-injection.yaml +3 -3
  672. package/rules/prompt-injection/ATR-2026-01023-evasion-opposite-intent-negation-trick.yaml +2 -2
  673. package/rules/prompt-injection/ATR-2026-01024-evasion-persona-override-rule-breaker.yaml +2 -2
  674. package/rules/prompt-injection/ATR-2026-01025-evasion-hypothetical-fictional-execution-framing.yaml +3 -3
  675. package/rules/prompt-injection/ATR-2026-01026-evasion-unicode-glitch-token-anomaly.yaml +2 -2
  676. package/rules/prompt-injection/ATR-2026-01304-indirect-injection-carrier-important-override.yaml +4 -4
  677. package/rules/prompt-injection/ATR-2026-01757-hypothetical-framing-bypass-research-audit.yaml +3 -3
  678. package/rules/prompt-injection/ATR-2026-01758-hypothetical-fictional-story-bypass.yaml +3 -3
  679. package/rules/prompt-injection/ATR-2026-01759-dos-new-important-instructions-injection-in-document.yaml +2 -2
  680. package/rules/prompt-injection/ATR-2026-01771-semantic-jailbreak-framing.yaml +3 -3
  681. package/rules/prompt-injection/ATR-2026-01800-asb-trigger-marker-tool-coercion.yaml +4 -4
  682. package/rules/prompt-injection/ATR-2026-01860-llmail-chat-template-boundary-spoof.yaml +3 -3
  683. package/rules/prompt-injection/ATR-2026-01861-llmail-pseudo-xml-role-injection.yaml +3 -3
  684. package/rules/prompt-injection/ATR-2026-01865-llmail-fake-email-boundary-marker.yaml +3 -3
  685. package/rules/prompt-injection/ATR-2026-01900-output-encoding.yaml +2 -2
  686. package/rules/prompt-injection/ATR-2026-01901-output-scrambling.yaml +2 -2
  687. package/rules/prompt-injection/ATR-2026-01902-output-emoji.yaml +2 -2
  688. package/rules/prompt-injection/ATR-2026-01903-output-language.yaml +2 -2
  689. package/rules/prompt-injection/ATR-2026-01904-link-injection.yaml +15 -6
  690. package/rules/prompt-injection/ATR-2026-01905-promotional-injection.yaml +2 -2
  691. package/rules/prompt-injection/ATR-2026-01906-content-manipulation.yaml +4 -4
  692. package/rules/prompt-injection/ATR-2026-01920-access-grant-coercion.yaml +3 -3
  693. package/rules/prompt-injection/ATR-2026-01921-access-denial-inversion.yaml +3 -3
  694. package/rules/prompt-injection/ATR-2026-01922-authorization-state-spoofing.yaml +3 -3
  695. package/rules/prompt-injection/ATR-2026-01923-forged-input-boundary-markers.yaml +3 -3
  696. package/rules/prompt-injection/ATR-2026-01925-encoded-payload-decoding-coercion.yaml +3 -3
  697. package/rules/prompt-injection/ATR-2026-01926-cross-lingual-authorization-laundering.yaml +3 -3
  698. package/rules/prompt-injection/ATR-2026-02001-ignore-below-instructions-mirror-of-ignore-previ.yaml +3 -4
  699. package/rules/prompt-injection/ATR-2026-02002-instruction-set-probe-or-supplant-direct-meta-qu.yaml +3 -4
  700. package/rules/prompt-injection/ATR-2026-02003-task-pivot-override-abandon-the-cover-task-trans.yaml +3 -4
  701. package/rules/prompt-injection/ATR-2026-02004-regional-indicator-flag-emoji-alphabet-letter-sp.yaml +3 -4
  702. package/rules/prompt-injection/ATR-2026-02005-actor-never-breaks-character-roleplay-dan-style-.yaml +3 -4
  703. package/rules/prompt-injection/ATR-2026-02006-fuzzy-cross-lingual-i-have-been-pwned-near-miss-.yaml +3 -4
  704. package/rules/prompt-injection/ATR-2026-02007-bare-key-elicitation-token.yaml +3 -4
  705. package/rules/prompt-injection/ATR-2026-02008-translation-chain-output-laundering-state-secret.yaml +3 -4
  706. package/rules/prompt-injection/ATR-2026-02009-bare-key-elicitation-trailing-colon.yaml +3 -4
  707. package/rules/prompt-injection/ATR-2026-02010-emoji-only-payload.yaml +3 -4
  708. package/rules/prompt-injection/ATR-2026-02011-malformed-grammar-pwned-success-claim.yaml +3 -4
  709. package/rules/prompt-injection/ATR-2026-02012-movie-title-generator-instruction-wrapper-for-pw.yaml +3 -4
  710. package/rules/prompt-injection/ATR-2026-02013-delimiter-fence-ignore-instructions-override.yaml +3 -4
  711. package/rules/prompt-injection/ATR-2026-02014-spliced-target-string-letters-of-a-filtered-cana.yaml +3 -4
  712. package/rules/prompt-injection/ATR-2026-02015-dense-emoji-only-payload-flood.yaml +3 -4
  713. package/rules/prompt-injection/ATR-2026-02016-reversed-payload-string.yaml +3 -4
  714. package/rules/prompt-injection/ATR-2026-02018-regional-indicator-flag-emoji-letter-spelling-sp.yaml +3 -4
  715. package/rules/prompt-injection/ATR-2026-02019-python-interpreter-role-assignment-exec-framing.yaml +3 -4
  716. package/rules/prompt-injection/ATR-2026-02020-obfuscated-token-reconstruction-via-character-su.yaml +3 -4
  717. package/rules/prompt-injection/ATR-2026-02120-agentdojo-important-message-identity-spoof-pretext.yaml +2 -3
  718. package/rules/prompt-injection/ATR-2026-02210-negation-topic-evil-persona-two-script-jailbreak.yaml +2 -3
  719. package/rules/prompt-injection/ATR-2026-02230-conditional-keyword-trigger-override.yaml +2 -3
  720. package/rules/prompt-injection/ATR-2026-02232-brand-persona-opinion-hijack.yaml +2 -3
  721. package/rules/prompt-injection/ATR-2026-02374-rot13-base64-obfuscated-shell-jailbreak.yaml +3 -4
  722. package/rules/prompt-injection/ATR-2026-02377-novel-persona-jailbreak-cosignal.yaml +99 -0
  723. package/rules/prompt-injection/ATR-2026-02500-prompt-layer-self-replication.yaml +287 -0
  724. package/rules/prompt-injection/ATR-2026-02502-covert-remote-script-injection-into-generated-artifacts.yaml +209 -0
  725. package/rules/skill-compromise/ATR-2026-00060-skill-impersonation.yaml +4 -4
  726. package/rules/skill-compromise/ATR-2026-00061-description-behavior-mismatch.yaml +100 -9
  727. package/rules/skill-compromise/ATR-2026-00062-hidden-capability.yaml +12 -9
  728. package/rules/skill-compromise/ATR-2026-00063-skill-chain-attack.yaml +18 -7
  729. package/rules/skill-compromise/ATR-2026-00064-over-permissioned-skill.yaml +8 -6
  730. package/rules/skill-compromise/ATR-2026-00065-skill-update-attack.yaml +2 -3
  731. package/rules/skill-compromise/ATR-2026-00066-parameter-injection.yaml +11 -7
  732. package/rules/skill-compromise/ATR-2026-00120-skill-instruction-injection.yaml +6 -3
  733. package/rules/skill-compromise/ATR-2026-00121-skill-dangerous-script.yaml +8 -5
  734. package/rules/skill-compromise/ATR-2026-00122-skill-weaponized-instruction.yaml +3 -3
  735. package/rules/skill-compromise/ATR-2026-00123-skill-overreach-permissions.yaml +2 -3
  736. package/rules/skill-compromise/ATR-2026-00124-skill-name-squatting.yaml +2 -3
  737. package/rules/skill-compromise/ATR-2026-00125-context-poisoning-compaction.yaml +2 -3
  738. package/rules/skill-compromise/ATR-2026-00126-skill-rug-pull-setup.yaml +3 -2
  739. package/rules/skill-compromise/ATR-2026-00127-subcommand-overflow.yaml +2 -3
  740. package/rules/skill-compromise/ATR-2026-00128-html-comment-hidden-payload.yaml +2 -2
  741. package/rules/skill-compromise/ATR-2026-00129-unicode-smuggling.yaml +2 -2
  742. package/rules/skill-compromise/ATR-2026-00134-fork-claim-impersonation.yaml +3 -2
  743. package/rules/skill-compromise/ATR-2026-00135-exfil-url-in-instructions.yaml +2 -2
  744. package/rules/skill-compromise/ATR-2026-00147-fork-impersonation.yaml +2 -3
  745. package/rules/skill-compromise/ATR-2026-00149-skill-exfil-compound.yaml +7 -4
  746. package/rules/skill-compromise/ATR-2026-00151-fork-impersonation-install.yaml +2 -2
  747. package/rules/skill-compromise/ATR-2026-00157-timebomb-credential-exfil.yaml +2 -3
  748. package/rules/skill-compromise/ATR-2026-00200-agent-memory-config-tampering.yaml +4 -4
  749. package/rules/skill-compromise/ATR-2026-00214-credential-theft.yaml +2 -2
  750. package/rules/skill-compromise/ATR-2026-00217-credential-harvesting.yaml +7 -3
  751. package/rules/skill-compromise/ATR-2026-00220-malware-dropper.yaml +2 -2
  752. package/rules/skill-compromise/ATR-2026-00222-credential-harvesting.yaml +2 -2
  753. package/rules/skill-compromise/ATR-2026-00223-reverse-shell-dropper.yaml +2 -2
  754. package/rules/skill-compromise/ATR-2026-00224-credential-exfiltration.yaml +7 -3
  755. package/rules/skill-compromise/ATR-2026-00225-c2-communication.yaml +2 -2
  756. package/rules/skill-compromise/ATR-2026-00260-package-hallucination.yaml +3 -3
  757. package/rules/skill-compromise/ATR-2026-00262-av-evasion-code-gen.yaml +2 -2
  758. package/rules/skill-compromise/ATR-2026-00263-credential-file-read-gen.yaml +3 -3
  759. package/rules/skill-compromise/ATR-2026-00266-malware-dropper-gen.yaml +2 -2
  760. package/rules/skill-compromise/ATR-2026-00283-malwaregen-generic-virus-payload-request.yaml +2 -2
  761. package/rules/skill-compromise/ATR-2026-00398-huggingface-unsafe-model-artifact-load.yaml +4 -4
  762. package/rules/skill-compromise/ATR-2026-00425-nl-persistent-covert-hook.yaml +7 -4
  763. package/rules/skill-compromise/ATR-2026-00427-nl-fake-error-instruction-bypass.yaml +7 -4
  764. package/rules/skill-compromise/ATR-2026-00429-nl-skill-self-modification.yaml +6 -3
  765. package/rules/skill-compromise/ATR-2026-00523-claude-code-hooks-session-start-pre-trust-rce.yaml +5 -7
  766. package/rules/skill-compromise/ATR-2026-00525-mini-shai-hulud-gh-token-monitor-persistence.yaml +2 -2
  767. package/rules/skill-compromise/ATR-2026-00527-skill-silent-git-remote-mirror-exfiltration.yaml +3 -3
  768. package/rules/skill-compromise/ATR-2026-01755-backdoor-pot-linguistic-trigger-phrase.yaml +3 -3
  769. package/rules/skill-compromise/ATR-2026-01756-backdoor-pot-symbol-emoticon-trigger.yaml +4 -4
  770. package/rules/skill-compromise/ATR-2026-02261-code-credential-exfil-chain.yaml +3 -3
  771. package/rules/skill-compromise/ATR-2026-02405-malicious-skill-package-structure.yaml +276 -0
  772. package/rules/skill-compromise/ATR-2026-02410-malicious-artifact-on-vendor-domain.yaml +273 -0
  773. package/rules/tool-poisoning/ATR-2026-00010-mcp-malicious-response.yaml +12 -10
  774. package/rules/tool-poisoning/ATR-2026-00011-tool-output-injection.yaml +3 -4
  775. package/rules/tool-poisoning/ATR-2026-00012-unauthorized-tool-call.yaml +9 -6
  776. package/rules/tool-poisoning/ATR-2026-00013-tool-ssrf.yaml +8 -6
  777. package/rules/tool-poisoning/ATR-2026-00095-supply-chain-poisoning.yaml +13 -11
  778. package/rules/tool-poisoning/ATR-2026-00096-registry-poisoning.yaml +20 -18
  779. package/rules/tool-poisoning/ATR-2026-00100-consent-bypass-instruction.yaml +4 -5
  780. package/rules/tool-poisoning/ATR-2026-00101-trust-escalation-override.yaml +4 -5
  781. package/rules/tool-poisoning/ATR-2026-00103-hidden-safety-bypass-instruction.yaml +4 -5
  782. package/rules/tool-poisoning/ATR-2026-00105-silent-action-concealment.yaml +4 -5
  783. package/rules/tool-poisoning/ATR-2026-00106-schema-description-contradiction.yaml +3 -4
  784. package/rules/tool-poisoning/ATR-2026-00161-important-tag-cross-tool-shadowing.yaml +11 -8
  785. package/rules/tool-poisoning/ATR-2026-00209-mcpwn-runaway-invocation.yaml +4 -4
  786. package/rules/tool-poisoning/ATR-2026-00210-flowise-system-message-override.yaml +4 -4
  787. package/rules/tool-poisoning/ATR-2026-00259-ansi-escape-injection.yaml +2 -2
  788. package/rules/tool-poisoning/ATR-2026-00270-xss-in-tool-response.yaml +2 -2
  789. package/rules/tool-poisoning/ATR-2026-00277-echo-template-command-injection.yaml +3 -3
  790. package/rules/tool-poisoning/ATR-2026-00393-ansi-code-elicitation-request.yaml +4 -4
  791. package/rules/tool-poisoning/ATR-2026-00415-flowise-custom-mcp-stdio-rce.yaml +4 -4
  792. package/rules/tool-poisoning/ATR-2026-00419-cursor-mcp-zero-click-config.yaml +5 -5
  793. package/rules/tool-poisoning/ATR-2026-00434-mcp-remote-authorization-endpoint-command-injection.yaml +4 -4
  794. package/rules/tool-poisoning/ATR-2026-00435-azure-mcp-server-missing-authentication.yaml +4 -4
  795. package/rules/tool-poisoning/ATR-2026-00448-spring-ai-milvus-filter-injection.yaml +4 -4
  796. package/rules/tool-poisoning/ATR-2026-00494-garak-exploitation-mixedunassigned.yaml +2 -2
  797. package/rules/tool-poisoning/ATR-2026-00513-package-hallucination-exploitation.yaml +2 -2
  798. package/rules/tool-poisoning/ATR-2026-00521-shell-command-injection-agent-tool-context.yaml +2 -2
  799. package/rules/tool-poisoning/ATR-2026-00522-sql-injection-natural-language-agent-interface.yaml +2 -2
  800. package/rules/tool-poisoning/ATR-2026-00526-claude-code-shell-metachar-in-double-quoted-path.yaml +2 -2
  801. package/rules/tool-poisoning/ATR-2026-00529-litellm-proxy-sqli-cisa-kev.yaml +3 -3
  802. package/rules/tool-poisoning/ATR-2026-00530-ms-agent-shell-tool-unsanitized-argv-rce.yaml +2 -2
  803. package/rules/tool-poisoning/ATR-2026-00531-praisonai-unauthenticated-agent-api.yaml +4 -4
  804. package/rules/tool-poisoning/ATR-2026-00532-apache-doris-mcp-sql-injection.yaml +4 -4
  805. package/rules/tool-poisoning/ATR-2026-00533-apache-pinot-mcp-unauthenticated-takeover.yaml +4 -4
  806. package/rules/tool-poisoning/ATR-2026-00534-alibaba-rds-mcp-unauthenticated-metadata-exfil.yaml +4 -4
  807. package/rules/tool-poisoning/ATR-2026-00536-nginx-ui-mcp-unauthenticated-command-execution.yaml +5 -5
  808. package/rules/tool-poisoning/ATR-2026-00537-fastmcp-server-name-cmd-injection-windows.yaml +4 -5
  809. package/rules/tool-poisoning/ATR-2026-00538-langchain-chatchat-mcp-stdio-unauthenticated-rce.yaml +12 -9
  810. package/rules/tool-poisoning/ATR-2026-00540-praisonai-parse-mcp-command-cli-injection.yaml +9 -7
  811. package/rules/tool-poisoning/ATR-2026-00541-agent-zero-mcp-config-command-injection.yaml +5 -6
  812. package/rules/tool-poisoning/ATR-2026-00542-upsonic-mcp-command-allowlist-bypass.yaml +5 -6
  813. package/rules/tool-poisoning/ATR-2026-00543-litellm-mcp-server-argv-injection.yaml +5 -6
  814. package/rules/tool-poisoning/ATR-2026-00544-praisonai-pth-file-path-traversal-rce.yaml +4 -5
  815. package/rules/tool-poisoning/ATR-2026-00545-praisonai-tool-override-unauth-rce.yaml +4 -5
  816. package/rules/tool-poisoning/ATR-2026-00561-fastmcp-vulnerable-to-windows-command-in.yaml +2 -2
  817. package/rules/tool-poisoning/ATR-2026-00567-mcp-stdio-config-command-injection.yaml +2 -2
  818. package/rules/tool-poisoning/ATR-2026-00568-agent-ssrf-cloud-metadata-file-inclusion.yaml +2 -2
  819. package/rules/tool-poisoning/ATR-2026-00572-symjack-symlink-config-redirection.yaml +4 -4
  820. package/rules/tool-poisoning/ATR-2026-00575-miasma-npm-worm-agent-config-backdoor.yaml +5 -5
  821. package/rules/tool-poisoning/ATR-2026-00576-hades-agent-credential-theft.yaml +4 -4
  822. package/rules/tool-poisoning/ATR-2026-00577-create-mcp-server-stdio-exec-command-injection.yaml +55 -7
  823. package/rules/tool-poisoning/ATR-2026-00581-mcp-tool-rug-pull-post-approval-redefinition.yaml +5 -6
  824. package/rules/tool-poisoning/ATR-2026-00714-tool-camouflage-forced-tool-call.yaml +8 -3
  825. package/rules/tool-poisoning/ATR-2026-00715-tool-knowledge-hijack-identity-injection.yaml +8 -3
  826. package/rules/tool-poisoning/ATR-2026-00716-ipi-data-destruction-carrier.yaml +3 -3
  827. package/rules/tool-poisoning/ATR-2026-00720-tool-misuse-privilege-escalation-social.yaml +7 -2
  828. package/rules/tool-poisoning/ATR-2026-01300-mcp-notes-param-chat-history-exfil.yaml +6 -6
  829. package/rules/tool-poisoning/ATR-2026-01301-tool-description-exclusive-tool-override.yaml +4 -4
  830. package/rules/tool-poisoning/ATR-2026-01302-fake-tool-result-instruction-injection.yaml +4 -4
  831. package/rules/tool-poisoning/ATR-2026-01303-tool-schema-enumeration-social-engineering.yaml +4 -4
  832. package/rules/tool-poisoning/ATR-2026-01306-mcp-oauth-command-injection.yaml +4 -4
  833. package/rules/tool-poisoning/ATR-2026-01307-mcp-dns-rebinding-attack.yaml +4 -4
  834. package/rules/tool-poisoning/ATR-2026-01310-mcp-tool-description-compliance-history-exfil.yaml +4 -4
  835. package/rules/tool-poisoning/ATR-2026-01775-semantic-mcp-tool-manifest-poisoning.yaml +7 -7
  836. package/rules/tool-poisoning/ATR-2026-01927-mcp-server-kubernetes-kubectl-command-injection.yaml +5 -6
  837. package/rules/tool-poisoning/ATR-2026-01928-framelink-figma-mcp-curl-fallback-command-injection.yaml +4 -5
  838. package/rules/tool-poisoning/ATR-2026-01930-mcp-sampling-prompt-injection.yaml +5 -5
  839. package/rules/tool-poisoning/ATR-2026-01931-gemini-mcp-tool-command-injection-file-exfil.yaml +4 -4
  840. package/rules/tool-poisoning/ATR-2026-01932-shadow-undeclared-mcp-server-registration.yaml +4 -4
  841. package/rules/tool-poisoning/ATR-2026-01935-litellm-custom-code-sandbox-escape-cve-2026-40217.yaml +5 -6
  842. package/rules/tool-poisoning/ATR-2026-01952-praisonai-codemode-sandbox-escape-rce.yaml +3 -4
  843. package/rules/tool-poisoning/ATR-2026-01953-praisonai-codemode-function-ctor-sandbox-escape.yaml +3 -4
  844. package/rules/tool-poisoning/ATR-2026-01959-openhuman-shell-allowlist-env-prefix-bypass.yaml +48 -7
  845. package/rules/tool-poisoning/ATR-2026-01963-praisonai-action-orchestrator-step-target-path-traversal-rce.yaml +3 -4
  846. package/rules/tool-poisoning/ATR-2026-01965-flowise-custommcp-os-command-rce.yaml +3 -4
  847. package/rules/tool-poisoning/ATR-2026-01967-deepchat-mermaid-xss-rce-ipc-mcp-register.yaml +3 -4
  848. package/rules/tool-poisoning/ATR-2026-01968-deepchat-markdown-deeplink-openexternal-rce-bypass.yaml +5 -6
  849. package/rules/tool-poisoning/ATR-2026-01970-praisonai-filetools-normpath-path-traversal.yaml +11 -7
  850. package/rules/tool-poisoning/ATR-2026-01973-anythingllm-logo-endpoint-path-traversal.yaml +3 -4
  851. package/rules/tool-poisoning/ATR-2026-01978-anythingllm-collector-process-filename-path-traversal-delete.yaml +3 -4
  852. package/rules/tool-poisoning/ATR-2026-01979-pandasai-prompt-injection-dunder-sandbox-escape-rce.yaml +3 -4
  853. package/rules/tool-poisoning/ATR-2026-01980-agentic-flow-mcp-tool-param-command-injection.yaml +7 -5
  854. package/rules/tool-poisoning/ATR-2026-01982-dbt-mcp-node-selection-argument-injection.yaml +3 -4
  855. package/rules/tool-poisoning/ATR-2026-01983-mcp-for-stata-log-file-name-command-injection.yaml +3 -4
  856. package/rules/tool-poisoning/ATR-2026-01985-mcp-connect-bridge-unauth-process-spawn-rce.yaml +3 -4
  857. package/rules/tool-poisoning/ATR-2026-01987-langroid-sqlchatagent-prompt-to-sql-rce.yaml +3 -4
  858. package/rules/tool-poisoning/ATR-2026-02021-mcp-inspector-unauthenticated-proxy-rce.yaml +5 -6
  859. package/rules/tool-poisoning/ATR-2026-02022-curxecute-cursor-mcp-json-injected-server-rce.yaml +5 -6
  860. package/rules/tool-poisoning/ATR-2026-02023-escaperoute-filesystem-mcp-prefix-bypass.yaml +5 -6
  861. package/rules/tool-poisoning/ATR-2026-02024-escaperoute-filesystem-mcp-symlink-launchagent.yaml +5 -6
  862. package/rules/tool-poisoning/ATR-2026-02025-mcp-full-schema-poisoning-nondescription-field.yaml +7 -8
  863. package/rules/tool-poisoning/ATR-2026-02027-diagnostic-content-remediation-command-injection.yaml +2 -3
  864. package/rules/tool-poisoning/ATR-2026-02041-shell-injection-echo-marker-poc.yaml +2 -3
  865. package/rules/tool-poisoning/ATR-2026-02102-html-injection-tool-arg-approval-ui-xss.yaml +2 -3
  866. package/rules/tool-poisoning/ATR-2026-02141-mcp-server-config-command-execution.yaml +2 -3
  867. package/rules/tool-poisoning/ATR-2026-02145-python-sandbox-escape-generator-frame-introspection.yaml +2 -3
  868. package/rules/tool-poisoning/ATR-2026-02193-ssrf-ipv6-noncanonical-loopback-bypass.yaml +2 -3
  869. package/rules/tool-poisoning/ATR-2026-02194-go-init-func-process-exec-codegen-rce.yaml +2 -3
  870. package/rules/tool-poisoning/ATR-2026-02233-unscoped-destructive-db-request-nl.yaml +2 -3
  871. package/rules/tool-poisoning/ATR-2026-02260-agentjacking-remediation-framed-execution.yaml +6 -6
  872. package/rules/tool-poisoning/ATR-2026-02263-workflow-sql-template-expression-injection.yaml +2 -2
  873. package/rules/tool-poisoning/ATR-2026-02350-mcp-json-rpc-case-duplicate-key-tool-smuggling.yaml +2 -3
  874. package/rules/tool-poisoning/ATR-2026-02352-imap-search-command-injection-email-tool-args.yaml +2 -3
  875. package/rules/tool-poisoning/ATR-2026-02372-unsigned-task-feed-npm-npx-lifecycle-rce.yaml +4 -5
  876. package/rules/tool-poisoning/ATR-2026-02376-tool-description-conversational-trigger-history-exfil.yaml +4 -5
  877. package/rules/tool-poisoning/ATR-2026-02403-mcp-external-content-missing-spotlighting.yaml +356 -0
  878. package/spec/README.md +24 -16
  879. package/spec/atr-correlation-v1.0.md +2 -2
  880. package/spec/atr-event-v1.0.md +3 -3
  881. package/spec/atr-language-detection-v1.0.md +1 -1
  882. package/spec/atr-method-v1.1.md +2 -0
  883. package/spec/atr-observation-v1.0.md +323 -0
  884. package/spec/atr-profile-v1.0.md +4 -4
  885. package/spec/atr-schema.yaml +5 -3
  886. package/spec/category-registry/v1.0.yaml +2 -2
  887. package/spec/compliance-metadata.md +3 -2
  888. package/spec/conformance/README.md +4 -4
  889. package/spec/conformance/SIGNING.md +1 -1
  890. package/spec/conformance/baseline/manifest.json +1 -1
  891. package/spec/mappings/atr-to-nist-csf-2.0.md +3 -3
  892. package/spec/schema/correlation.schema.json +1 -1
  893. package/spec/schema/event.schema.json +1 -1
  894. package/spec/schema/observation.schema.json +131 -0
  895. package/spec/schema/profile.schema.json +1 -1
  896. package/spec/schema/rule.schema.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"scan-handler.js","sourceRoot":"","sources":["../../src/cli/scan-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scan-handler.js","sourceRoot":"","sources":["../../src/cli/scan-handler.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -16,6 +16,8 @@ import { ATREngine } from './engine.js';
16
16
  import { loadRuleFile, loadRulesFromDirectory, validateRule } from './loader.js';
17
17
  import { generateBadgeSvg, generateBadgeEndpoint, lookupPackageScan, generateBadgeMarkdown } from './badge.js';
18
18
  import { cmdScanUnified } from './cli/scan-handler.js';
19
+ import { BLOCKING_ENV_VAR, LANE_ENV_VAR, parseLane, resolveEnforcementPolicy, } from './enforcement.js';
20
+ import { LANES } from './quality/rule-contract.js';
19
21
  const __filename = fileURLToPath(import.meta.url);
20
22
  const __dirname = dirname(__filename);
21
23
  const RULES_DIR = resolve(__dirname, '..', 'rules');
@@ -31,6 +33,7 @@ const GREEN = '\x1b[32m';
31
33
  const RED = '\x1b[31m';
32
34
  const DIM = '\x1b[2m';
33
35
  const BOLD = '\x1b[1m';
36
+ const YELLOW = '\x1b[33m';
34
37
  function printUsage() {
35
38
  console.log(`
36
39
  ${BOLD}ATR - Agent Threat Rules${RESET}
@@ -44,7 +47,8 @@ ${BOLD}Usage:${RESET}
44
47
  atr stats [--rules <dir>] Show rule collection statistics
45
48
  atr convert <splunk|elastic> [--rules <dir>] [--output <file>]
46
49
  Convert rules to SIEM query format
47
- atr guard [--rules <dir>] [--dry-run] Start as Claude Code hook (stdio)
50
+ atr guard [--rules <dir>] [--dry-run] [--lane <l>] [--blocking]
51
+ Start as Claude Code hook (stdio)
48
52
  atr init [--global] Setup ATR guard hook for Claude Code
49
53
  atr mcp Start MCP server (stdio transport)
50
54
  atr scaffold Interactive rule scaffolding
@@ -73,6 +77,14 @@ ${BOLD}Options:${RESET}
73
77
  --no-report Disable anonymous Threat Cloud reporting (enabled by default)
74
78
  --fail-on <sev> Exit non-zero if matches at/above this severity are found (for CI / pre-commit gates)
75
79
  --tc-url <url> Threat Cloud endpoint (default: https://tc.panguard.ai)
80
+ --lane <lane> Detection lane: enforce (stable rules only) | alert
81
+ (stable+test) | hunt (all maturities). Overrides ATR_LANE.
82
+ Default: hunt.
83
+ --blocking Allow ATR to block. OFF BY DEFAULT: without it the guard
84
+ reports detections but emits no permissionDecision and runs
85
+ no response action above the observe tier. Overrides
86
+ ATR_BLOCKING.
87
+ --no-blocking Force blocking off even if ATR_BLOCKING is set.
76
88
  --dry-run Log actions without executing (guard mode)
77
89
  --fail-open Default to allow on errors (guard mode, default: true)
78
90
  --timeout <ms> Evaluation timeout in ms (guard mode, default: 5000)
@@ -95,9 +107,15 @@ ${BOLD}Examples:${RESET}
95
107
  ${DIM}# One-command Claude Code hook setup${RESET}
96
108
  atr init
97
109
 
98
- ${DIM}# Run as a Claude Code guard hook${RESET}
110
+ ${DIM}# Run as a Claude Code guard hook (advisory: reports, never blocks)${RESET}
99
111
  atr guard --rules ./my-rules
100
112
 
113
+ ${DIM}# Opt in to blocking, restricted to stable rules${RESET}
114
+ atr guard --lane enforce --blocking
115
+
116
+ ${DIM}# Same, via the environment${RESET}
117
+ ${LANE_ENV_VAR}=enforce ${BLOCKING_ENV_VAR}=1 atr guard
118
+
101
119
  ${DIM}# Start MCP server for AI agent integration${RESET}
102
120
  atr mcp
103
121
 
@@ -119,7 +137,7 @@ function parseArgs(argv) {
119
137
  for (let i = 1; i < args.length; i++) {
120
138
  if (args[i].startsWith('--')) {
121
139
  const key = args[i].slice(2);
122
- if (key === 'json' || key === 'sarif' || key === 'help' || key === 'dry-run' || key === 'fail-open' || key === 'global' || key === 'svg' || key === 'no-report' || key === 'report-to-cloud' || key === 'semantic' || key === 'semantic-no-json-mode') {
140
+ if (key === 'json' || key === 'sarif' || key === 'help' || key === 'dry-run' || key === 'fail-open' || key === 'global' || key === 'svg' || key === 'no-report' || key === 'report-to-cloud' || key === 'semantic' || key === 'semantic-no-json-mode' || key === 'blocking' || key === 'no-blocking') {
123
141
  options[key] = 'true';
124
142
  }
125
143
  else {
@@ -132,6 +150,73 @@ function parseArgs(argv) {
132
150
  }
133
151
  return { command, target, options };
134
152
  }
153
+ // --- ENFORCEMENT policy options (shared by guard + scan) ---
154
+ /**
155
+ * Read `--lane <enforce|alert|hunt>`.
156
+ *
157
+ * Returns undefined when the flag is absent, so resolveEnforcementPolicy falls
158
+ * through to ATR_LANE and then to the built-in default; an unrecognised value
159
+ * is a usage error and exits, never a silent fallback (an operator who typed
160
+ * `--lane enfroce` must not be left believing they are enforcing). A flag is
161
+ * typed at a prompt by someone who will see the exit code — unlike an inherited
162
+ * environment variable, which degrades instead. See resolvePolicyAndReport.
163
+ */
164
+ function readLaneOption(options) {
165
+ const raw = options['lane'];
166
+ if (raw === undefined || raw.trim() === '')
167
+ return undefined;
168
+ const parsed = parseLane(raw);
169
+ if (parsed === null) {
170
+ console.error(`${RED}Error: Invalid --lane "${raw}". Expected one of: ${LANES.join(', ')}.${RESET}`);
171
+ process.exit(1);
172
+ }
173
+ return parsed;
174
+ }
175
+ /**
176
+ * Read the blocking opt-in: `--blocking` turns enforcement on, `--no-blocking`
177
+ * turns it off explicitly. Absent means "no opinion" -> the environment
178
+ * (ATR_BLOCKING) decides, then the default (off).
179
+ */
180
+ function readBlockingOption(options) {
181
+ const on = options['blocking'] === 'true';
182
+ const off = options['no-blocking'] === 'true';
183
+ if (on && off) {
184
+ console.error(`${RED}Error: --blocking and --no-blocking are mutually exclusive.${RESET}`);
185
+ process.exit(1);
186
+ }
187
+ if (on)
188
+ return true;
189
+ if (off)
190
+ return false;
191
+ return undefined;
192
+ }
193
+ /**
194
+ * Resolve the enforcement posture for this process and report any problems.
195
+ *
196
+ * This is the CLI's half of the library/CLI split: `src/enforcement.ts` reads
197
+ * the environment here and nowhere else, and the resolved lane/blocking values
198
+ * are then passed EXPLICITLY into ATREngine / ActionExecutor / HookHandler.
199
+ *
200
+ * Notes are warnings, not errors, and the process keeps running. A bad flag has
201
+ * already exited by the time this runs — readLaneOption / readBlockingOption
202
+ * validate and exit while the arguments are being evaluated. A bad environment
203
+ * variable degrades to the advisory
204
+ * posture instead, because `atr guard` runs as a Claude Code command hook where
205
+ * a non-zero exit is measurably worse than a warning: the host maps any exit
206
+ * status other than 0 or 2 to a non-blocking error, runs the tool anyway, hands
207
+ * the model nothing, and renders only "<hookName> hook error" WITHOUT the
208
+ * stderr text. Exiting would therefore discard every detection and still not
209
+ * tell the operator why. (Status 2 is the only loud one, and it blocks the tool
210
+ * outright — a stray shell variable must not do that.) Verified against the
211
+ * Claude Code 2.1.76 hook dispatcher; see resolveEnforcementPolicy.
212
+ */
213
+ function resolvePolicyAndReport(flags) {
214
+ const policy = resolveEnforcementPolicy(flags);
215
+ for (const note of policy.notes) {
216
+ console.error(`${RED}[atr] ${note}${RESET}`);
217
+ }
218
+ return policy;
219
+ }
135
220
  // --- VALIDATE command ---
136
221
  function cmdValidate(target, options) {
137
222
  if (!target) {
@@ -227,7 +312,9 @@ async function cmdTest(target, options) {
227
312
  let totalTests = 0;
228
313
  let passed = 0;
229
314
  let failed = 0;
315
+ let skipped = 0;
230
316
  const failures = [];
317
+ const skippedRules = [];
231
318
  // Map extended agent_source types to basic event-compatible source types
232
319
  // so the engine's source type filter doesn't skip rules during testing.
233
320
  // The engine only recognizes: llm_io, tool_call, mcp_exchange, agent_behavior, multi_agent_comm
@@ -241,6 +328,22 @@ async function cmdTest(target, options) {
241
328
  for (const rule of rules) {
242
329
  if (!rule.test_cases)
243
330
  continue;
331
+ // method=behavioral rules cannot be evaluated here, and that is by design:
332
+ // engine.ts returns null for them because windowed metric evaluation needs
333
+ // state across many events, which the synchronous evaluate() API does not
334
+ // carry. Running their cases anyway reports "Expected: triggered, Got:
335
+ // not_triggered" for every true_positive, which reads as a detection
336
+ // failure when the truth is that this engine never looked. Count them as
337
+ // unevaluable and say so, rather than failing them or passing them
338
+ // silently. (method=trace is different: it has a real evaluation path
339
+ // below, so its cases still run.)
340
+ if (rule.detection?.method === 'behavioral') {
341
+ const cases = (rule.test_cases.true_positives?.length ?? 0) + (rule.test_cases.true_negatives?.length ?? 0);
342
+ totalTests += cases;
343
+ skipped += cases;
344
+ skippedRules.push({ ruleId: rule.id, cases, reason: 'method=behavioral requires a streaming evaluator' });
345
+ continue;
346
+ }
244
347
  // For testing, normalize extended source types so the engine doesn't filter them out
245
348
  const originalSourceType = rule.agent_source?.type;
246
349
  const baseSourceType = EXTENDED_SOURCE_TO_BASE[originalSourceType ?? ''];
@@ -306,7 +409,7 @@ async function cmdTest(target, options) {
306
409
  }
307
410
  }
308
411
  if (jsonOutput) {
309
- console.log(JSON.stringify({ totalRules: rules.length, totalTests, passed, failed, failures }, null, 2));
412
+ console.log(JSON.stringify({ totalRules: rules.length, totalTests, passed, failed, skipped, failures, skippedRules }, null, 2));
310
413
  return;
311
414
  }
312
415
  console.log(`\n${BOLD}ATR Test Runner${RESET}`);
@@ -317,6 +420,12 @@ async function cmdTest(target, options) {
317
420
  if (failed > 0) {
318
421
  console.log(` ${RED}Failed:${RESET} ${failed}`);
319
422
  }
423
+ if (skipped > 0) {
424
+ console.log(` ${YELLOW}Unevaluable:${RESET} ${skipped}`);
425
+ for (const s of skippedRules) {
426
+ console.log(` ${DIM}${s.ruleId}: ${s.cases} case(s) — ${s.reason}${RESET}`);
427
+ }
428
+ }
320
429
  console.log(`${DIM}${'─'.repeat(60)}${RESET}`);
321
430
  if (failures.length > 0) {
322
431
  console.log(`\n${RED}Failures:${RESET}\n`);
@@ -328,7 +437,11 @@ async function cmdTest(target, options) {
328
437
  process.exit(1);
329
438
  }
330
439
  else {
331
- console.log(`\n${GREEN}All tests passed.${RESET}\n`);
440
+ // The literal "All tests passed" is what rule-quality.yml greps for, so it
441
+ // has to survive; the suffix keeps it from overstating what actually ran.
442
+ console.log(skipped > 0
443
+ ? `\n${GREEN}All tests passed.${RESET} ${DIM}(${skipped} case(s) unevaluable — see above)${RESET}\n`
444
+ : `\n${GREEN}All tests passed.${RESET}\n`);
332
445
  }
333
446
  }
334
447
  function buildEventFromTestCase(tc, rule) {
@@ -344,7 +457,12 @@ function buildEventFromTestCase(tc, rule) {
344
457
  // Object-style: input: { tool_name: "...", tool_args: "...", response: "..." }
345
458
  // Flat-style: input: "...", tool_response: "...", tool_name: "..."
346
459
  // Tool-call-style: tool_call: { name: "...", args: "..." }
347
- const rawInput = tc['input'];
460
+ // Accept `user_input:` as a top-level alias for `input:` — several tool_call
461
+ // rules write their natural-language TPs as `- user_input: "..."`, which the
462
+ // harness previously ignored (it only read `input`), building an EMPTY event so
463
+ // the rule's own documented attack tested as not_triggered (a false failure that
464
+ // left the rule looking broken while it detects fine in production).
465
+ const rawInput = tc['input'] ?? tc['user_input'];
348
466
  let input = '';
349
467
  let toolName = str(tc['tool_name']);
350
468
  let toolArgs = str(tc['tool_args']);
@@ -400,13 +518,16 @@ function buildEventFromTestCase(tc, rule) {
400
518
  skill_chain: 'tool_call',
401
519
  };
402
520
  let type = SOURCE_TO_EVENT[sourceType] ?? 'llm_input';
403
- // If rule expects tool_call but test case has only plain text input
404
- // (no tool_name, tool_args, or tool_response), use llm_input event type
405
- // since the content is natural language, not a tool invocation.
406
- // This prevents the engine's tool_name fallback from treating text as a tool name.
407
- if (type === 'tool_call' && !toolName && !toolArgs && !toolResponse && !toolDescription) {
408
- type = 'llm_input';
409
- }
521
+ // NOTE: previously, a tool_call rule with a plain-string TP was downgraded to
522
+ // an llm_input event. That mis-tested tool_call-native rules: a shell command or
523
+ // SQL string IS a tool invocation, and evaluating it as llm_input made the engine
524
+ // apply its cross-context confidence penalty, dropping the match below threshold
525
+ // so the rule's own documented attack tested as not_triggered (false failure that
526
+ // silently left broken rules in the enforce lane). We now keep the native
527
+ // tool_call type — the string flows in via `content` (below), and tool_name is
528
+ // pinned to "" (below) so the engine's tool_name fallback never treats the
529
+ // content as a tool name. Plain-string TPs of tool_call rules therefore test in
530
+ // their real (native) context.
410
531
  // Determine the primary content based on what the rule conditions check
411
532
  // Problem 2 & 3: For rules that check tool_response, the tool_response
412
533
  // should be the primary content when the event type resolves tool_response from content
@@ -431,8 +552,27 @@ function buildEventFromTestCase(tc, rule) {
431
552
  // Always set tool_name (even empty) to prevent engine fallback
432
553
  // from using event.content as tool_name for tool_call events
433
554
  fields['tool_name'] = toolName;
434
- if (toolArgs)
435
- fields['tool_args'] = toolArgs;
555
+ // Production ALWAYS populates tool_args: src/hook-handler.ts builds
556
+ // `tool_args: JSON.stringify(toolInput)` for BOTH the PreToolUse (tool_call)
557
+ // and the PostToolUse (tool_response) event. The engine resolves this field as
558
+ // `event.fields.tool_args ?? (event.type === 'tool_call' ? event.content :
559
+ // undefined)` (src/engine.ts resolveField), so a test case that supplies only
560
+ // a plain `input:` string leaves tool_args unresolvable on every non-tool_call
561
+ // event and EVERY `field: tool_args` condition silently evaluates to false.
562
+ // The rule then reports not_triggered on its own documented attack while
563
+ // detecting it correctly in production — a harness defect that reads exactly
564
+ // like a broken rule and invites weakening a rule that is right. 40 rules
565
+ // declare `field: tool_args`.
566
+ // This is the test-case-runner twin of the measurement-shape defect that
567
+ // scripts/lib/corpus-event.ts fixed for the FP gate: a true positive must be
568
+ // exercised on the same shape the benign corpus is charged against.
569
+ // Deliberately narrower than that harness's wide shape: only the INPUT string
570
+ // is offered as tool_args. A `tool_response:` test case asserts what a tool
571
+ // RETURNED, which is not an argument, so pouring it into tool_args would let a
572
+ // tool_args layer pass a TP for the wrong reason.
573
+ const toolArgsValue = toolArgs || input;
574
+ if (toolArgsValue)
575
+ fields['tool_args'] = toolArgsValue;
436
576
  // For content-based rules, set content and agent_message fields
437
577
  fields['content'] = content;
438
578
  fields['agent_message'] = content;
@@ -543,22 +683,45 @@ async function cmdGuard(options) {
543
683
  const failOpen = options['fail-open'] !== 'false';
544
684
  const parsedTimeout = options['timeout'] ? parseInt(options['timeout'], 10) : 5000;
545
685
  const timeoutMs = (Number.isFinite(parsedTimeout) && parsedTimeout > 0) ? parsedTimeout : 5000;
686
+ // Absent flags stay undefined so the environment can still speak;
687
+ // --no-blocking is an explicit "no" that overrides it.
688
+ const policy = resolvePolicyAndReport({
689
+ lane: readLaneOption(options),
690
+ blocking: readBlockingOption(options),
691
+ });
546
692
  const { ActionExecutor } = await import('./action-executor.js');
547
693
  const { StdioAdapter } = await import('./adapters/stdio-adapter.js');
548
694
  const { HookHandler } = await import('./hook-handler.js');
549
- const engine = new ATREngine({ rulesDir });
695
+ // Everything below receives the resolved posture explicitly. None of these
696
+ // constructors reads the environment.
697
+ const engine = new ATREngine({ rulesDir, lane: policy.lane });
550
698
  const ruleCount = await engine.loadRules();
551
699
  const adapter = new StdioAdapter();
552
- const executor = new ActionExecutor({ adapter, dryRun });
553
- const handler = new HookHandler({ engine, executor, timeoutMs, failOpen });
700
+ const executor = new ActionExecutor({ adapter, dryRun, blocking: policy.blocking });
701
+ const handler = new HookHandler({
702
+ engine,
703
+ executor,
704
+ timeoutMs,
705
+ failOpen,
706
+ blocking: policy.blocking,
707
+ });
708
+ // State the enforcement posture out loud. "Installed" must never be mistaken
709
+ // for "enforcing": in advisory mode this guard emits no permissionDecision at
710
+ // all and dispatches no action above the OBSERVE tier. Even with blocking on,
711
+ // ATR only ever emits deny/ask — never an affirmative allow.
554
712
  process.stderr.write(`[atr-guard] Loaded ${ruleCount} rules from ${rulesDir}` +
555
- `${dryRun ? ' (dry-run)' : ''}\n`);
713
+ `${dryRun ? ' (dry-run)' : ''}\n` +
714
+ `[atr-guard] lane=${engine.getLane()} blocking=${handler.isBlocking() ? 'on' : 'off'}` +
715
+ `${handler.isBlocking()
716
+ ? ' (deny/ask only; never approves a tool call)'
717
+ : ' (advisory: detections are reported, nothing is blocked)'}\n`);
556
718
  await handler.startStdioLoop();
557
719
  }
558
720
  // --- MCP command ---
559
721
  async function cmdMcp() {
560
722
  const { startMCPServer } = await import('./mcp-server.js');
561
- await startMCPServer();
723
+ // The MCP server never blocks, so only the lane half of the policy applies.
724
+ await startMCPServer({ lane: resolvePolicyAndReport({}).lane });
562
725
  }
563
726
  // --- SCAFFOLD command ---
564
727
  async function cmdScaffold() {
@@ -884,6 +1047,10 @@ function cmdInit(options) {
884
1047
  console.log(`${DIM}Every tool call Claude Code makes will now be scanned against ATR`);
885
1048
  console.log(`threat detection rules before execution. Suspicious actions will be`);
886
1049
  console.log(`flagged with severity and recommendation.${RESET}\n`);
1050
+ console.log(`${BOLD}Mode: advisory.${RESET} ${DIM}The guard reports detections and does NOT block:`);
1051
+ console.log(`it emits no permissionDecision, so Claude Code's own permission flow is`);
1052
+ console.log(`untouched. Turn blocking on when you have chosen a lane you trust:`);
1053
+ console.log(` ${BLOCKING_ENV_VAR}=1 ${LANE_ENV_VAR}=enforce (or: atr guard --blocking --lane enforce)${RESET}\n`);
887
1054
  }
888
1055
  // --- CONVERT command ---
889
1056
  async function cmdConvert(target, options) {
@@ -1016,6 +1183,16 @@ async function main() {
1016
1183
  return;
1017
1184
  }
1018
1185
  const rulesDir = options['rules'] ? resolve(options['rules']) : RULES_DIR;
1186
+ /**
1187
+ * Lane for the scanning commands. Resolved lazily so only the commands that
1188
+ * actually have a lane pay for it — resolving eagerly would print an ATR_LANE
1189
+ * warning while running `atr stats`, and would print it a second time inside
1190
+ * `atr guard`, which resolves its own (blocking-aware) policy.
1191
+ *
1192
+ * `--lane typo` exits before any rule loads; ATR_LANE is read here because
1193
+ * the engine no longer reads it.
1194
+ */
1195
+ const scanLane = () => resolvePolicyAndReport({ lane: readLaneOption(options) }).lane;
1019
1196
  switch (command) {
1020
1197
  case 'scan':
1021
1198
  await cmdScanUnified(target, rulesDir, {
@@ -1031,6 +1208,7 @@ async function main() {
1031
1208
  semanticModel: options['semantic-model'],
1032
1209
  semanticTimeout: options['semantic-timeout'],
1033
1210
  semanticNoJsonMode: options['semantic-no-json-mode'] === 'true',
1211
+ lane: scanLane(),
1034
1212
  });
1035
1213
  break;
1036
1214
  case 'scan-skill':
@@ -1048,6 +1226,7 @@ async function main() {
1048
1226
  semanticModel: options['semantic-model'],
1049
1227
  semanticTimeout: options['semantic-timeout'],
1050
1228
  semanticNoJsonMode: options['semantic-no-json-mode'] === 'true',
1229
+ lane: scanLane(),
1051
1230
  });
1052
1231
  break;
1053
1232
  case 'validate':