agent-threat-rules 4.0.0 → 4.2.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.
- package/CHANGELOG.md +1804 -0
- package/DISCLOSURE +85 -0
- package/README.md +427 -155
- package/dist/adapters/openshell-filter.d.ts +10 -3
- package/dist/adapters/openshell-filter.d.ts.map +1 -1
- package/dist/adapters/openshell-filter.js +10 -3
- package/dist/adapters/openshell-filter.js.map +1 -1
- package/dist/adapters/stdio-adapter.js +3 -3
- package/dist/adapters/stdio-adapter.js.map +1 -1
- package/dist/cli/mcp-tools-document.d.ts +40 -0
- package/dist/cli/mcp-tools-document.d.ts.map +1 -0
- package/dist/cli/mcp-tools-document.js +95 -0
- package/dist/cli/mcp-tools-document.js.map +1 -0
- package/dist/cli/scan-handler.d.ts +8 -0
- package/dist/cli/scan-handler.d.ts.map +1 -1
- package/dist/cli/scan-handler.js +148 -44
- package/dist/cli/scan-handler.js.map +1 -1
- package/dist/cli/tc-pipeline.d.ts +20 -0
- package/dist/cli/tc-pipeline.d.ts.map +1 -1
- package/dist/cli/tc-pipeline.js +84 -15
- package/dist/cli/tc-pipeline.js.map +1 -1
- package/dist/cli.d.ts +2 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +97 -210
- package/dist/cli.js.map +1 -1
- package/dist/converters/sarif.d.ts +14 -2
- package/dist/converters/sarif.d.ts.map +1 -1
- package/dist/converters/sarif.js +7 -9
- package/dist/converters/sarif.js.map +1 -1
- package/dist/corpus-event.d.ts +47 -5
- package/dist/corpus-event.d.ts.map +1 -1
- package/dist/corpus-event.js +68 -29
- package/dist/corpus-event.js.map +1 -1
- package/dist/embedding/model-loader.d.ts +2 -0
- package/dist/embedding/model-loader.d.ts.map +1 -1
- package/dist/embedding/model-loader.js +3 -1
- package/dist/embedding/model-loader.js.map +1 -1
- package/dist/enforcement.d.ts +8 -0
- package/dist/enforcement.d.ts.map +1 -1
- package/dist/enforcement.js +10 -0
- package/dist/enforcement.js.map +1 -1
- package/dist/engine.d.ts +173 -6
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +362 -76
- package/dist/engine.js.map +1 -1
- package/dist/eval/embedding-provenance.d.ts +40 -0
- package/dist/eval/embedding-provenance.d.ts.map +1 -0
- package/dist/eval/embedding-provenance.js +71 -0
- package/dist/eval/embedding-provenance.js.map +1 -0
- package/dist/eval/eval-harness.d.ts +34 -0
- package/dist/eval/eval-harness.d.ts.map +1 -1
- package/dist/eval/eval-harness.js +49 -2
- package/dist/eval/eval-harness.js.map +1 -1
- package/dist/eval/hackaprompt-corpus.d.ts +12 -0
- package/dist/eval/hackaprompt-corpus.d.ts.map +1 -1
- package/dist/eval/hackaprompt-corpus.js +15 -1
- package/dist/eval/hackaprompt-corpus.js.map +1 -1
- package/dist/eval/hackaprompt-provenance.d.ts +52 -0
- package/dist/eval/hackaprompt-provenance.d.ts.map +1 -0
- package/dist/eval/hackaprompt-provenance.js +108 -0
- package/dist/eval/hackaprompt-provenance.js.map +1 -0
- package/dist/eval/run-hackaprompt-benchmark.d.ts +18 -8
- package/dist/eval/run-hackaprompt-benchmark.d.ts.map +1 -1
- package/dist/eval/run-hackaprompt-benchmark.js +154 -64
- package/dist/eval/run-hackaprompt-benchmark.js.map +1 -1
- package/dist/eval/run-pint-benchmark.js +11 -1
- package/dist/eval/run-pint-benchmark.js.map +1 -1
- package/dist/eval/skill-benchmark.d.ts +26 -6
- package/dist/eval/skill-benchmark.d.ts.map +1 -1
- package/dist/eval/skill-benchmark.js +49 -16
- package/dist/eval/skill-benchmark.js.map +1 -1
- package/dist/flywheel.d.ts +4 -0
- package/dist/flywheel.d.ts.map +1 -1
- package/dist/flywheel.js +12 -4
- package/dist/flywheel.js.map +1 -1
- package/dist/hook-handler.d.ts +11 -1
- package/dist/hook-handler.d.ts.map +1 -1
- package/dist/hook-handler.js +84 -16
- package/dist/hook-handler.js.map +1 -1
- package/dist/hook-tool-output.d.ts +47 -0
- package/dist/hook-tool-output.d.ts.map +1 -0
- package/dist/hook-tool-output.js +110 -0
- package/dist/hook-tool-output.js.map +1 -0
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/layer-integration.d.ts +4 -2
- package/dist/layer-integration.d.ts.map +1 -1
- package/dist/layer-integration.js +6 -2
- package/dist/layer-integration.js.map +1 -1
- package/dist/mcp-server.d.ts +8 -0
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +1 -0
- package/dist/mcp-server.js.map +1 -1
- package/dist/mcp-tools/scan.d.ts.map +1 -1
- package/dist/mcp-tools/scan.js +9 -1
- package/dist/mcp-tools/scan.js.map +1 -1
- package/dist/measurement/enforce-lane.d.ts +66 -0
- package/dist/measurement/enforce-lane.d.ts.map +1 -0
- package/dist/measurement/enforce-lane.js +89 -0
- package/dist/measurement/enforce-lane.js.map +1 -0
- package/dist/measurement/from-eval-harness.d.ts +16 -3
- package/dist/measurement/from-eval-harness.d.ts.map +1 -1
- package/dist/measurement/from-eval-harness.js +15 -5
- package/dist/measurement/from-eval-harness.js.map +1 -1
- package/dist/measurement/in-sample-ablation.d.ts +29 -0
- package/dist/measurement/in-sample-ablation.d.ts.map +1 -0
- package/dist/measurement/in-sample-ablation.js +45 -0
- package/dist/measurement/in-sample-ablation.js.map +1 -0
- package/dist/measurement/schema.d.ts +38 -1
- package/dist/measurement/schema.d.ts.map +1 -1
- package/dist/measurement/schema.js +43 -1
- package/dist/measurement/schema.js.map +1 -1
- package/dist/quality/action-eligibility.d.ts +4 -2
- package/dist/quality/action-eligibility.d.ts.map +1 -1
- package/dist/quality/action-eligibility.js.map +1 -1
- package/dist/rule-confidence.d.ts +31 -0
- package/dist/rule-confidence.d.ts.map +1 -0
- package/dist/rule-confidence.js +49 -0
- package/dist/rule-confidence.js.map +1 -0
- package/dist/rule-scaffolder.d.ts.map +1 -1
- package/dist/rule-scaffolder.js +43 -4
- package/dist/rule-scaffolder.js.map +1 -1
- package/dist/semantic-evaluator.d.ts.map +1 -1
- package/dist/semantic-evaluator.js +15 -13
- package/dist/semantic-evaluator.js.map +1 -1
- package/dist/shadow-evaluator.d.ts +7 -2
- package/dist/shadow-evaluator.d.ts.map +1 -1
- package/dist/shadow-evaluator.js +29 -25
- package/dist/shadow-evaluator.js.map +1 -1
- package/dist/tc-reporter.d.ts +22 -3
- package/dist/tc-reporter.d.ts.map +1 -1
- package/dist/tc-reporter.js +36 -3
- package/dist/tc-reporter.js.map +1 -1
- package/dist/testcase-event.d.ts +105 -0
- package/dist/testcase-event.d.ts.map +1 -0
- package/dist/testcase-event.js +312 -0
- package/dist/testcase-event.js.map +1 -0
- package/dist/tier0-invariant.d.ts.map +1 -1
- package/dist/tier0-invariant.js +1 -0
- package/dist/tier0-invariant.js.map +1 -1
- package/dist/tier1-blacklist.d.ts.map +1 -1
- package/dist/tier1-blacklist.js +1 -0
- package/dist/tier1-blacklist.js.map +1 -1
- package/dist/tool-definition-scope.d.ts +45 -0
- package/dist/tool-definition-scope.d.ts.map +1 -0
- package/dist/tool-definition-scope.js +68 -0
- package/dist/tool-definition-scope.js.map +1 -0
- package/dist/types.d.ts +42 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/verdict.d.ts +46 -2
- package/dist/verdict.d.ts.map +1 -1
- package/dist/verdict.js +99 -14
- package/dist/verdict.js.map +1 -1
- package/package.json +11 -3
- package/rules/agent-manipulation/ATR-2026-00030-cross-agent-attack.yaml +81 -137
- package/rules/agent-manipulation/ATR-2026-00032-goal-hijacking.yaml +30 -111
- package/rules/agent-manipulation/ATR-2026-00074-cross-agent-privilege-escalation.yaml +30 -110
- package/rules/agent-manipulation/ATR-2026-00076-inter-agent-message-spoofing.yaml +24 -104
- package/rules/agent-manipulation/ATR-2026-00077-human-trust-exploitation.yaml +38 -131
- package/rules/agent-manipulation/ATR-2026-00108-consensus-sybil-attack.yaml +24 -91
- package/rules/agent-manipulation/ATR-2026-00116-a2a-message-validation.yaml +20 -81
- package/rules/agent-manipulation/ATR-2026-00117-agent-identity-spoofing.yaml +29 -95
- package/rules/agent-manipulation/ATR-2026-00118-approval-fatigue.yaml +20 -90
- package/rules/agent-manipulation/ATR-2026-00119-social-engineering-via-agent.yaml +31 -106
- package/rules/agent-manipulation/ATR-2026-00132-casual-authority-escalation.yaml +25 -102
- package/rules/agent-manipulation/ATR-2026-00139-casual-authority-redirect.yaml +22 -94
- package/rules/agent-manipulation/ATR-2026-00164-skill-scope-hijack.yaml +44 -60
- package/rules/agent-manipulation/ATR-2026-00268-tense-framing-bypass.yaml +51 -112
- package/rules/agent-manipulation/ATR-2026-00269-fitd-escalation.yaml +45 -89
- package/rules/agent-manipulation/ATR-2026-00271-grandma-roleplay-jailbreak.yaml +49 -94
- package/rules/agent-manipulation/ATR-2026-00273-dan-developer-mode-persona.yaml +47 -91
- package/rules/agent-manipulation/ATR-2026-00287-threaten-json-coercive-output-threat.yaml +46 -93
- package/rules/agent-manipulation/ATR-2026-00288-false-premise-injection.yaml +44 -94
- package/rules/agent-manipulation/ATR-2026-00301-tap-tree-of-attacks-jailbreak.yaml +50 -98
- package/rules/agent-manipulation/ATR-2026-00302-anti-dan-inverted-filter-persona.yaml +51 -98
- package/rules/agent-manipulation/ATR-2026-00303-devmode-ranti-profanity-coercion.yaml +52 -101
- package/rules/agent-manipulation/ATR-2026-00304-chatgpt-image-unlocker-markdown-injection.yaml +53 -104
- package/rules/agent-manipulation/ATR-2026-00305-dan-mode-ablation-benchmark-coercion.yaml +48 -99
- package/rules/agent-manipulation/ATR-2026-00306-autodan-genetic-jailbreak-suffix.yaml +50 -103
- package/rules/agent-manipulation/ATR-2026-00307-inthewild-jailbreak-corpus-signature.yaml +53 -107
- package/rules/agent-manipulation/ATR-2026-00314-amoral-unfiltered-custom-persona-jailbreak.yaml +44 -94
- package/rules/agent-manipulation/ATR-2026-00317-free-of-restrictions-named-persona.yaml +44 -97
- package/rules/agent-manipulation/ATR-2026-00318-moralizing-rant-then-unfiltered-bypass.yaml +41 -90
- package/rules/agent-manipulation/ATR-2026-00319-developer-mode-dual-response-format.yaml +40 -88
- package/rules/agent-manipulation/ATR-2026-00320-opposite-day-boolean-opposite-machine.yaml +42 -91
- package/rules/agent-manipulation/ATR-2026-00322-fictional-world-format-override-jailbreak.yaml +41 -91
- package/rules/agent-manipulation/ATR-2026-00323-dual-persona-simulation-jailbreak.yaml +41 -91
- package/rules/agent-manipulation/ATR-2026-00324-neurosemantical-inversitis-disease-jailbreak.yaml +42 -103
- package/rules/agent-manipulation/ATR-2026-00325-bob-hypothetical-unrestricted-chatbot.yaml +41 -88
- package/rules/agent-manipulation/ATR-2026-00326-fake-developer-authority-chatdan-override.yaml +41 -93
- package/rules/agent-manipulation/ATR-2026-00327-ai-ethics-law-bypass-declaration.yaml +45 -94
- package/rules/agent-manipulation/ATR-2026-00328-named-mode-persona-override.yaml +41 -92
- package/rules/agent-manipulation/ATR-2026-00329-no-withhold-factual-resource-persona.yaml +44 -97
- package/rules/agent-manipulation/ATR-2026-00330-yoja-allcaps-settings-block-persona.yaml +41 -88
- package/rules/agent-manipulation/ATR-2026-00331-terminal-cli-harmful-function-simulator.yaml +40 -89
- package/rules/agent-manipulation/ATR-2026-00332-hacker-chan-culture-offensive-ai-persona.yaml +42 -90
- package/rules/agent-manipulation/ATR-2026-00333-disease-animal-dual-ai-chatbot.yaml +41 -90
- package/rules/agent-manipulation/ATR-2026-00334-two-entity-token-splitting-game.yaml +41 -102
- package/rules/agent-manipulation/ATR-2026-00335-key-value-template-persona-injection.yaml +41 -91
- package/rules/agent-manipulation/ATR-2026-00336-brm-false-information-machine-persona.yaml +42 -105
- package/rules/agent-manipulation/ATR-2026-00337-obfuscated-system-announcement-injection.yaml +40 -90
- package/rules/agent-manipulation/ATR-2026-00338-persongpt-hash-prefix-activation.yaml +39 -90
- package/rules/agent-manipulation/ATR-2026-00339-bom-boolean-opposite-machine-persona-claim.yaml +39 -83
- package/rules/agent-manipulation/ATR-2026-00340-h4x-amoral-unfiltered-character.yaml +39 -84
- package/rules/agent-manipulation/ATR-2026-00341-char-rules-shortform-persona-injection.yaml +41 -87
- package/rules/agent-manipulation/ATR-2026-00342-unicode-encoding-obfuscation-injection.yaml +41 -86
- package/rules/agent-manipulation/ATR-2026-00343-lie-truth-dual-personality-uncensored.yaml +40 -98
- package/rules/agent-manipulation/ATR-2026-00344-alt-ai-same-capabilities-no-restrictions.yaml +41 -87
- package/rules/agent-manipulation/ATR-2026-00345-nlp-based-os-fictional-terminal-override.yaml +41 -89
- package/rules/agent-manipulation/ATR-2026-00346-jailbreak-emoji-unlock-dual-format.yaml +41 -89
- package/rules/agent-manipulation/ATR-2026-00347-yin-yang-hidden-knowledge-hidden-human-sim.yaml +41 -88
- package/rules/agent-manipulation/ATR-2026-00348-arc-autonomous-real-calculation-rulebreaker.yaml +41 -91
- package/rules/agent-manipulation/ATR-2026-00349-hgttg-hitchhikers-guide-no-restriction-oracle.yaml +41 -88
- package/rules/agent-manipulation/ATR-2026-00350-black-alert-no-ethics-writing-assistant.yaml +38 -89
- package/rules/agent-manipulation/ATR-2026-00351-dan-ofkilter-sms-abbreviated-persona.yaml +41 -92
- package/rules/agent-manipulation/ATR-2026-00352-trainergpt-fix-my-ai-harmful-output-extraction.yaml +41 -93
- package/rules/agent-manipulation/ATR-2026-00353-dual-chatgpt-dan-opposite-personality-format.yaml +41 -95
- package/rules/agent-manipulation/ATR-2026-00354-reverse-harm-regardless-oracle-persona.yaml +45 -101
- package/rules/agent-manipulation/ATR-2026-00355-ugh-anti-human-nefarious-ai-persona.yaml +42 -99
- package/rules/agent-manipulation/ATR-2026-00356-google-gato-lamda-exploit-generation-persona.yaml +43 -96
- package/rules/agent-manipulation/ATR-2026-00357-antifm-hate-violence-persona-injection.yaml +40 -89
- package/rules/agent-manipulation/ATR-2026-00358-cumgpt-explicit-adult-named-persona.yaml +40 -90
- package/rules/agent-manipulation/ATR-2026-00360-chj-carousel-clyde-no-ethics-bird.yaml +42 -103
- package/rules/agent-manipulation/ATR-2026-00361-alter-ego-honesty-dual-consciousness-bypass.yaml +41 -90
- package/rules/agent-manipulation/ATR-2026-00362-fictional-unfiltered-ai-comparison-jailbreak.yaml +43 -91
- package/rules/agent-manipulation/ATR-2026-00363-rephrase-criminal-activity-second-person.yaml +40 -90
- package/rules/agent-manipulation/ATR-2026-00364-dr-al-villain-plan-template-injection.yaml +42 -107
- package/rules/agent-manipulation/ATR-2026-00365-reservoir-dogs-coercive-interrogation-roleplay.yaml +40 -95
- package/rules/agent-manipulation/ATR-2026-00366-sneaky-pete-warp-facts-persona.yaml +40 -90
- package/rules/agent-manipulation/ATR-2026-00368-prompt-browser-token-limit-jailbreak.yaml +40 -90
- package/rules/agent-manipulation/ATR-2026-00369-gptx-starwars-unlimited-knowledge-persona.yaml +40 -92
- package/rules/agent-manipulation/ATR-2026-00370-addi-german-dictator-propaganda-roleplay.yaml +43 -90
- package/rules/agent-manipulation/ATR-2026-00371-ai-political-bias-manipulation.yaml +42 -95
- package/rules/agent-manipulation/ATR-2026-00372-fictional-cia-secret-files-story-extraction.yaml +42 -89
- package/rules/agent-manipulation/ATR-2026-00374-role-placeholder-persona-template-injection.yaml +44 -89
- package/rules/agent-manipulation/ATR-2026-00375-character-description-rpg-explicit-template.yaml +44 -90
- package/rules/agent-manipulation/ATR-2026-00376-identity-command-real-person-persona-injection.yaml +44 -102
- package/rules/agent-manipulation/ATR-2026-00377-jailbreak-keyword-targetlanguage-template.yaml +39 -86
- package/rules/agent-manipulation/ATR-2026-00379-lie-permission-logical-trap-jailbreak.yaml +39 -86
- package/rules/agent-manipulation/ATR-2026-00380-fake-citation-biased-information-mandate.yaml +43 -91
- package/rules/agent-manipulation/ATR-2026-00381-dan-story-narrative-continuation-prefix.yaml +40 -86
- package/rules/agent-manipulation/ATR-2026-00383-cynical-sarcasm-ai-persona-bypass.yaml +39 -88
- package/rules/agent-manipulation/ATR-2026-00384-protect-me-from-indirect-harm-tutorial.yaml +37 -85
- package/rules/agent-manipulation/ATR-2026-00385-gigachad-dominant-aggressive-persona.yaml +39 -89
- package/rules/agent-manipulation/ATR-2026-00386-daddy-sycophancy-manipulation-mandate.yaml +41 -88
- package/rules/agent-manipulation/ATR-2026-00387-nsfw-character-sheet-generation-unlock.yaml +45 -95
- package/rules/agent-manipulation/ATR-2026-00388-opposite-reply-omniscient-game.yaml +44 -97
- package/rules/agent-manipulation/ATR-2026-00389-terminal-custom-ruleset-injection.yaml +44 -99
- package/rules/agent-manipulation/ATR-2026-00391-persona-conditional-harm-unlock.yaml +41 -88
- package/rules/agent-manipulation/ATR-2026-00392-authority-persona-violence-study-extraction.yaml +43 -95
- package/rules/agent-manipulation/ATR-2026-00402-grandma-roleplay-harmful-substance-synthesis.yaml +50 -97
- package/rules/agent-manipulation/ATR-2026-00404-goodside-threat-json-death-coercion.yaml +52 -96
- package/rules/agent-manipulation/ATR-2026-00406-doctor-xml-policy-puppetry-interaction-config.yaml +54 -102
- package/rules/agent-manipulation/ATR-2026-00416-litellm-mcp-unauthenticated-server-registration.yaml +49 -117
- package/rules/agent-manipulation/ATR-2026-00417-librechat-mcp-stdio-injection.yaml +46 -109
- package/rules/agent-manipulation/ATR-2026-00418-weknora-mcp-config-rce.yaml +59 -147
- package/rules/agent-manipulation/ATR-2026-00430-nl-trust-escalation-impersonation.yaml +24 -65
- package/rules/agent-manipulation/ATR-2026-00432-superagi-output-handler-eval-rce.yaml +46 -121
- package/rules/agent-manipulation/ATR-2026-00440-semantic-kernel-vector-store-eval-rce.yaml +48 -122
- package/rules/agent-manipulation/ATR-2026-00552-goal-drift-after-pressure-injection.yaml +58 -195
- package/rules/agent-manipulation/ATR-2026-02105-prototype-pollution-constructor-prototype-bypass.yaml +28 -83
- package/rules/agent-manipulation/ATR-2026-02231-second-person-death-threat-coercion.yaml +27 -69
- package/rules/context-exfiltration/ATR-2026-00020-system-prompt-leak.yaml +76 -133
- package/rules/context-exfiltration/ATR-2026-00021-api-key-exposure.yaml +72 -135
- package/rules/context-exfiltration/ATR-2026-00075-agent-memory-manipulation.yaml +32 -97
- package/rules/context-exfiltration/ATR-2026-00102-disguised-analytics-exfiltration.yaml +25 -100
- package/rules/context-exfiltration/ATR-2026-00113-credential-theft.yaml +22 -83
- package/rules/context-exfiltration/ATR-2026-00114-oauth-token-abuse.yaml +21 -87
- package/rules/context-exfiltration/ATR-2026-00115-env-var-harvesting.yaml +22 -102
- package/rules/context-exfiltration/ATR-2026-00136-tool-response-data-piggyback.yaml +29 -105
- package/rules/context-exfiltration/ATR-2026-00141-example-format-key-leak.yaml +19 -73
- package/rules/context-exfiltration/ATR-2026-00142-piggyback-transition-words.yaml +21 -94
- package/rules/context-exfiltration/ATR-2026-00145-obfuscated-key-disclosure.yaml +19 -78
- package/rules/context-exfiltration/ATR-2026-00146-env-var-existence-probe.yaml +19 -98
- package/rules/context-exfiltration/ATR-2026-00150-credential-in-tool-response.yaml +20 -84
- package/rules/context-exfiltration/ATR-2026-00152-obfuscated-credential-leak.yaml +23 -93
- package/rules/context-exfiltration/ATR-2026-00162-skill-credential-exfil-combo.yaml +41 -59
- package/rules/context-exfiltration/ATR-2026-00201-credential-pipe-exfiltration.yaml +35 -66
- package/rules/context-exfiltration/ATR-2026-00212-mcp-atlassian-credential-leak.yaml +51 -117
- package/rules/context-exfiltration/ATR-2026-00261-markdown-image-exfiltration.yaml +51 -93
- package/rules/context-exfiltration/ATR-2026-00274-api-key-generation-request.yaml +44 -91
- package/rules/context-exfiltration/ATR-2026-00275-system-prompt-training-data-extraction.yaml +44 -91
- package/rules/context-exfiltration/ATR-2026-00290-divergence-repeat-word-training-extraction.yaml +46 -95
- package/rules/context-exfiltration/ATR-2026-00291-biometric-surveillance-personal-data-request.yaml +48 -98
- package/rules/context-exfiltration/ATR-2026-00293-educational-records-personal-data-request.yaml +44 -93
- package/rules/context-exfiltration/ATR-2026-00294-financial-pii-personal-data-request.yaml +44 -97
- package/rules/context-exfiltration/ATR-2026-00295-medical-pii-personal-data-request.yaml +46 -101
- package/rules/context-exfiltration/ATR-2026-00405-markdown-image-url-exfiltration-xss.yaml +51 -108
- package/rules/context-exfiltration/ATR-2026-00411-apikey-generation-completion-request.yaml +48 -111
- package/rules/context-exfiltration/ATR-2026-00421-nl-covert-conversation-exfiltration.yaml +22 -67
- package/rules/context-exfiltration/ATR-2026-00422-nl-credential-disclosure.yaml +20 -65
- package/rules/context-exfiltration/ATR-2026-00423-nl-sensitive-file-disclosure.yaml +20 -68
- package/rules/context-exfiltration/ATR-2026-00424-nl-system-prompt-leak.yaml +21 -59
- package/rules/context-exfiltration/ATR-2026-00426-nl-output-injection-credential-leak.yaml +23 -61
- package/rules/context-exfiltration/ATR-2026-00431-chatbox-history-exfiltration-prompt-injection.yaml +48 -123
- package/rules/context-exfiltration/ATR-2026-00449-spring-ai-chatmemory-cross-user-leak.yaml +54 -139
- package/rules/context-exfiltration/ATR-2026-00471-garak-sysprompt-extraction-mixedunassigned.yaml +36 -85
- package/rules/context-exfiltration/ATR-2026-00501-data-exfiltration-via-markdown-image-and-link-url-injection.yaml +45 -115
- package/rules/context-exfiltration/ATR-2026-00504-tool-and-function-capability-enumeration.yaml +43 -110
- package/rules/context-exfiltration/ATR-2026-00505-system-prompt-extraction-instruction-dump-request.yaml +47 -123
- package/rules/context-exfiltration/ATR-2026-00514-system-prompt-extraction.yaml +52 -145
- package/rules/context-exfiltration/ATR-2026-00516-output-xss-via-llm.yaml +49 -127
- package/rules/context-exfiltration/ATR-2026-00524-claude-code-anthropic-base-url-credential-exfil.yaml +68 -193
- package/rules/context-exfiltration/ATR-2026-00548-cross-agent-session-context-leak.yaml +50 -152
- package/rules/context-exfiltration/ATR-2026-00566-librechat-is-a-chatgpt-clone-with-additi.yaml +33 -67
- package/rules/context-exfiltration/ATR-2026-00569-agent-mcp-path-traversal-arbitrary-file-access.yaml +39 -78
- package/rules/context-exfiltration/ATR-2026-00571-xss-in-agent-mcp-rendered-output.yaml +34 -58
- package/rules/context-exfiltration/ATR-2026-00574-semantic-paraphrased-context-extraction.yaml +31 -73
- package/rules/context-exfiltration/ATR-2026-00578-zen-mcp-path-traversal-blacklist-bypass.yaml +55 -135
- package/rules/context-exfiltration/ATR-2026-00580-mcp-session-id-token-in-url-query.yaml +48 -158
- package/rules/context-exfiltration/ATR-2026-00583-mcp-env-secret-file-read-without-consent.yaml +53 -154
- package/rules/context-exfiltration/ATR-2026-00702-ipi-credential-exfil-via-agent-action.yaml +41 -93
- package/rules/context-exfiltration/ATR-2026-00703-ipi-financial-data-exfil-indirect.yaml +33 -76
- package/rules/context-exfiltration/ATR-2026-00704-ipi-medical-genetic-data-exfil.yaml +33 -78
- package/rules/context-exfiltration/ATR-2026-00705-ipi-location-address-browsing-exfil.yaml +31 -75
- package/rules/context-exfiltration/ATR-2026-00706-ipi-physical-biometric-exfil.yaml +40 -85
- package/rules/context-exfiltration/ATR-2026-00707-ipi-file-exfil-with-destroy-or-tamper.yaml +35 -81
- package/rules/context-exfiltration/ATR-2026-00850-indirect-pi-credential-exfil-email.yaml +47 -91
- package/rules/context-exfiltration/ATR-2026-00851-indirect-pi-financial-payment-exfil.yaml +45 -83
- package/rules/context-exfiltration/ATR-2026-00852-indirect-pi-medical-record-exfil.yaml +51 -89
- package/rules/context-exfiltration/ATR-2026-00853-indirect-pi-genetic-data-exfil.yaml +47 -84
- package/rules/context-exfiltration/ATR-2026-00854-indirect-pi-location-data-exfil.yaml +41 -83
- package/rules/context-exfiltration/ATR-2026-00855-indirect-pi-browsing-history-exfil.yaml +40 -78
- package/rules/context-exfiltration/ATR-2026-00856-indirect-pi-address-pii-exfil.yaml +42 -80
- package/rules/context-exfiltration/ATR-2026-00857-indirect-pi-cloud-file-exfil.yaml +45 -87
- package/rules/context-exfiltration/ATR-2026-00858-indirect-pi-exfil-and-destroy.yaml +48 -89
- package/rules/context-exfiltration/ATR-2026-00859-rag-injected-pii-exfil.yaml +43 -86
- package/rules/context-exfiltration/ATR-2026-00860-indirect-pi-financial-transfer-hijack.yaml +41 -84
- package/rules/context-exfiltration/ATR-2026-00861-indirect-pi-crypto-transfer-hijack.yaml +37 -79
- package/rules/context-exfiltration/ATR-2026-00862-indirect-pi-mfa-code-exfil.yaml +44 -87
- package/rules/context-exfiltration/ATR-2026-00863-shell-injection-data-exfil.yaml +45 -87
- package/rules/context-exfiltration/ATR-2026-01450-svg-onload-xss-injection.yaml +35 -118
- package/rules/context-exfiltration/ATR-2026-01451-img-onerror-xss-injection.yaml +35 -93
- package/rules/context-exfiltration/ATR-2026-01452-obfuscated-javascript-xss.yaml +33 -85
- package/rules/context-exfiltration/ATR-2026-01453-markdown-image-base64-exfil-carrier.yaml +41 -100
- package/rules/context-exfiltration/ATR-2026-01454-direct-markdown-exfil-payload.yaml +36 -88
- package/rules/context-exfiltration/ATR-2026-01455-new-instructions-injection-marker.yaml +34 -90
- package/rules/context-exfiltration/ATR-2026-01456-debug-cli-mode-sysprompt-extraction.yaml +35 -99
- package/rules/context-exfiltration/ATR-2026-01457-sysprompt-completion-clone-attack.yaml +41 -123
- package/rules/context-exfiltration/ATR-2026-01458-compare-bots-sysprompt-fishing.yaml +30 -87
- package/rules/context-exfiltration/ATR-2026-01459-variable-clone-sysprompt-technique.yaml +31 -79
- package/rules/context-exfiltration/ATR-2026-01460-json-format-sysprompt-extraction.yaml +31 -79
- package/rules/context-exfiltration/ATR-2026-01461-foreign-language-sysprompt-request.yaml +32 -106
- package/rules/context-exfiltration/ATR-2026-01462-sysprompt-override-pseudo-admin.yaml +39 -102
- package/rules/context-exfiltration/ATR-2026-01463-imend-imsystem-prompt-injection-format.yaml +29 -95
- package/rules/context-exfiltration/ATR-2026-01464-indirect-pi-sysprompt-action-hijack.yaml +31 -82
- package/rules/context-exfiltration/ATR-2026-01605-ssrf-aws-metadata-endpoint.yaml +26 -58
- package/rules/context-exfiltration/ATR-2026-01606-ssrf-internal-network-scan.yaml +26 -50
- package/rules/context-exfiltration/ATR-2026-01607-ssrf-localhost-service-probe.yaml +21 -45
- package/rules/context-exfiltration/ATR-2026-01608-ssrf-file-scheme-local-read.yaml +23 -47
- package/rules/context-exfiltration/ATR-2026-01753-ransom-email-exfil-delete-extortion.yaml +37 -80
- package/rules/context-exfiltration/ATR-2026-01754-ransom-file-cloud-exfil-delete-extortion.yaml +33 -73
- package/rules/context-exfiltration/ATR-2026-01770-semantic-pii-credential-extraction.yaml +76 -210
- package/rules/context-exfiltration/ATR-2026-01772-semantic-internal-state-recon.yaml +54 -154
- package/rules/context-exfiltration/ATR-2026-01807-asb-bulk-data-exfil-external.yaml +34 -91
- package/rules/context-exfiltration/ATR-2026-01862-llmail-email-tool-exfil-confirmation.yaml +35 -92
- package/rules/context-exfiltration/ATR-2026-01863-llmail-post-summary-exfil-directive.yaml +29 -84
- package/rules/context-exfiltration/ATR-2026-01864-llmail-obfuscated-exfil-address.yaml +29 -83
- package/rules/context-exfiltration/ATR-2026-01890-file-exfiltration.yaml +52 -149
- package/rules/context-exfiltration/ATR-2026-01891-surveillance-exfiltration.yaml +44 -87
- package/rules/context-exfiltration/ATR-2026-01892-env-exfiltration.yaml +36 -121
- package/rules/context-exfiltration/ATR-2026-01893-system-recon-exfiltration.yaml +44 -143
- package/rules/context-exfiltration/ATR-2026-01894-cookie-theft.yaml +40 -146
- package/rules/context-exfiltration/ATR-2026-01895-contact-exfiltration.yaml +36 -82
- package/rules/context-exfiltration/ATR-2026-01924-system-instruction-extraction-reformat.yaml +37 -112
- package/rules/context-exfiltration/ATR-2026-01929-mcp-unauthenticated-transport-token-fallback.yaml +53 -119
- package/rules/context-exfiltration/ATR-2026-01946-cloud-metadata-ssrf-ip-encoding-bypass.yaml +45 -102
- package/rules/context-exfiltration/ATR-2026-01948-netlicensing-mcp-product-number-path-traversal-token-leak.yaml +38 -74
- package/rules/context-exfiltration/ATR-2026-01957-m365-copilot-searchleak-open-redirect-exfil.yaml +57 -64
- package/rules/context-exfiltration/ATR-2026-01961-meta-ads-mcp-unauth-token-leak.yaml +39 -78
- package/rules/context-exfiltration/ATR-2026-01964-langchain-gmailtoolkit-indirect-prompt-injection-email-exfil.yaml +59 -69
- package/rules/context-exfiltration/ATR-2026-01984-mcp-server-kubernetes-kubectl-generic-token-exfil.yaml +50 -114
- package/rules/context-exfiltration/ATR-2026-01988-t1005-agent-local-data-staging-exfil.yaml +29 -67
- package/rules/context-exfiltration/ATR-2026-02017-secret-key-exfiltration-request.yaml +31 -74
- package/rules/context-exfiltration/ATR-2026-02026-oblique-sysprompt-extraction-transform.yaml +30 -83
- package/rules/context-exfiltration/ATR-2026-02104-media-directive-tool-result-file-exfil.yaml +30 -90
- package/rules/context-exfiltration/ATR-2026-02107-ssrf-internal-hostname-domain-allowlist-bypass.yaml +30 -92
- package/rules/context-exfiltration/ATR-2026-02121-mixed-encoding-lfi-file-scheme-tool-argument.yaml +39 -98
- package/rules/context-exfiltration/ATR-2026-02122-single-level-traversal-sensitive-config-file.yaml +32 -90
- package/rules/context-exfiltration/ATR-2026-02140-ssrf-ipv6-hex-encoded-cloud-metadata-bypass.yaml +36 -91
- package/rules/context-exfiltration/ATR-2026-02190-dns-exfiltration-ping-dig-encoded-subdomain.yaml +36 -95
- package/rules/context-exfiltration/ATR-2026-02250-attachment-upload-tool-arbitrary-file-read.yaml +38 -93
- package/rules/context-exfiltration/ATR-2026-02262-env-resolution-credential-exfil.yaml +39 -118
- package/rules/context-exfiltration/ATR-2026-02304-preapproved-domain-encoded-path-exfil.yaml +36 -99
- package/rules/context-exfiltration/ATR-2026-02351-wildcard-dns-ssrf-hostname-ip-encoding-bypass.yaml +33 -125
- package/rules/context-exfiltration/ATR-2026-02373-langsmith-prompt-manifest-baseurl-exfil.yaml +42 -108
- package/rules/context-exfiltration/ATR-2026-02406-mcp-sequential-id-enumeration.yaml +54 -219
- package/rules/context-exfiltration/ATR-2026-02570-wallet-secret-material-in-agent-tool-payload.yaml +98 -0
- package/rules/context-exfiltration/ATR-2026-02602-diagram-theme-css-injection.yaml +146 -0
- package/rules/context-exfiltration/ATR-2026-02608-graph-query-remote-egress.yaml +109 -0
- package/rules/context-exfiltration/ATR-2026-02621-prompt-mention-autofetch-internal-target.yaml +102 -0
- package/rules/context-exfiltration/ATR-2026-02623-obfuscated-uri-scheme-sanitizer-bypass.yaml +109 -0
- package/rules/context-exfiltration/ATR-2026-02649-vendor-fqdn-label-prefix-confusion.yaml +109 -0
- package/rules/context-exfiltration/ATR-2026-02684-modern-credential-store-file-argument.yaml +104 -0
- package/rules/context-exfiltration/ATR-2026-02703-sql-server-side-file-and-program-primitive.yaml +86 -0
- package/rules/context-exfiltration/ATR-2026-02847-policy-justified-exfil-to-email.yaml +88 -0
- package/rules/context-exfiltration/ATR-2026-02850-fake-documentation-forward-request.yaml +80 -0
- package/rules/context-exfiltration/ATR-2026-02855-cross-email-exfil-relay.yaml +79 -0
- package/rules/context-exfiltration/ATR-2026-02861-exfil-send-email-with-body-directive.yaml +83 -0
- package/rules/context-exfiltration/ATR-2026-02866-idna-label-separator-in-fetch-url-host.yaml +104 -0
- package/rules/data-poisoning/ATR-2026-00070-data-poisoning.yaml +37 -123
- package/rules/data-poisoning/ATR-2026-00450-spring-ai-prompt-memory-poisoning.yaml +55 -139
- package/rules/data-poisoning/ATR-2026-00570-sql-injection-in-agent-tool-query.yaml +36 -63
- package/rules/data-poisoning/ATR-2026-01155-memory-plant-direct-command.yaml +22 -54
- package/rules/data-poisoning/ATR-2026-01774-semantic-rag-memory-poisoning.yaml +74 -191
- package/rules/data-poisoning/ATR-2026-02143-graph-query-injection-node-labels-group-ids.yaml +31 -82
- package/rules/data-poisoning/ATR-2026-02144-stored-data-administrative-request-role-elevation.yaml +32 -84
- package/rules/data-poisoning/ATR-2026-02303-kql-kusto-pipe-injection-metadata-tool.yaml +34 -97
- package/rules/data-poisoning/ATR-2026-02408-dataset-loader-code-execution.yaml +60 -263
- package/rules/excessive-autonomy/ATR-2026-00050-runaway-agent-loop.yaml +32 -105
- package/rules/excessive-autonomy/ATR-2026-00051-resource-exhaustion.yaml +31 -105
- package/rules/excessive-autonomy/ATR-2026-00052-cascading-failure.yaml +32 -129
- package/rules/excessive-autonomy/ATR-2026-00098-unauthorized-financial-action.yaml +26 -106
- package/rules/excessive-autonomy/ATR-2026-00099-high-risk-tool-gate.yaml +26 -130
- package/rules/excessive-autonomy/ATR-2026-00428-nl-unauthorized-shell-execution.yaml +22 -60
- package/rules/excessive-autonomy/ATR-2026-00491-garak-agent-breaker-markdown-just-raw-json.yaml +41 -99
- package/rules/excessive-autonomy/ATR-2026-00500-ssrf-via-agent-url-fetch-instruction.yaml +41 -110
- package/rules/excessive-autonomy/ATR-2026-00553-runaway-tool-loop-behavioral.yaml +50 -141
- package/rules/excessive-autonomy/ATR-2026-00708-ipi-financial-transfer-unauthorized.yaml +33 -83
- package/rules/excessive-autonomy/ATR-2026-00709-ipi-disable-auth-mfa.yaml +29 -73
- package/rules/excessive-autonomy/ATR-2026-00710-ipi-physical-access-grant.yaml +31 -75
- package/rules/excessive-autonomy/ATR-2026-00711-ipi-system-sabotage-destructive-command.yaml +38 -88
- package/rules/excessive-autonomy/ATR-2026-00712-ipi-malicious-package-install.yaml +33 -78
- package/rules/excessive-autonomy/ATR-2026-00713-ipi-rce-network-shell-command.yaml +38 -91
- package/rules/excessive-autonomy/ATR-2026-00718-tool-misuse-financial-autonomous.yaml +27 -71
- package/rules/excessive-autonomy/ATR-2026-00719-tool-misuse-destructive-bulk-action.yaml +29 -75
- package/rules/excessive-autonomy/ATR-2026-00722-ipi-account-manipulation-emergency-pretext.yaml +35 -84
- package/rules/excessive-autonomy/ATR-2026-01751-indirect-pi-task-abort-stop-instruction.yaml +32 -75
- package/rules/excessive-autonomy/ATR-2026-01752-indirect-pi-captcha-redirect-dos.yaml +30 -74
- package/rules/excessive-autonomy/ATR-2026-01773-semantic-excessive-agency-action.yaml +46 -129
- package/rules/excessive-autonomy/ATR-2026-01801-asb-autonomous-vehicle-sabotage.yaml +34 -106
- package/rules/excessive-autonomy/ATR-2026-01804-asb-covert-unlogged-action.yaml +39 -105
- package/rules/excessive-autonomy/ATR-2026-01805-asb-financial-fraud-execution.yaml +39 -112
- package/rules/excessive-autonomy/ATR-2026-01806-asb-clinical-patient-harm.yaml +37 -108
- package/rules/excessive-autonomy/ATR-2026-01809-semantic-insider-manipulation-process-corruption.yaml +40 -106
- package/rules/excessive-autonomy/ATR-2026-01837-ddos-attack-orchestration.yaml +35 -49
- package/rules/excessive-autonomy/ATR-2026-01838-unauthorized-cryptominer-deployment.yaml +35 -49
- package/rules/excessive-autonomy/ATR-2026-01849-harassment-bot-deployment.yaml +35 -49
- package/rules/excessive-autonomy/ATR-2026-01989-t1046-agent-internal-network-sweep.yaml +33 -71
- package/rules/excessive-autonomy/ATR-2026-01993-t1562-agent-impair-defenses.yaml +37 -75
- package/rules/excessive-autonomy/ATR-2026-01994-t1573-agent-encrypted-c2-channel.yaml +37 -75
- package/rules/excessive-autonomy/ATR-2026-02106-redos-regex-payload-tool-argument.yaml +28 -84
- package/rules/excessive-autonomy/ATR-2026-02400-agent-approval-gate-disabled-runtime.yaml +60 -293
- package/rules/excessive-autonomy/ATR-2026-02401-rogue-agent-mass-connector-grant.yaml +55 -197
- package/rules/excessive-autonomy/ATR-2026-02409-mcp-async-task-abuse.yaml +59 -319
- package/rules/excessive-autonomy/ATR-2026-02525-shell-command-word-reassembly-classifier-evasion.yaml +151 -0
- package/rules/excessive-autonomy/ATR-2026-02641-client-supplied-approver-identity.yaml +111 -0
- package/rules/excessive-autonomy/ATR-2026-02667-preapproved-tool-list-in-job-payload.yaml +90 -0
- package/rules/model-abuse/ATR-2026-00279-harmful-completion-continuation.yaml +45 -92
- package/rules/model-abuse/ATR-2026-00281-eicar-gtube-malware-signature-request.yaml +50 -93
- package/rules/model-abuse/ATR-2026-00284-glitch-token-destabilization.yaml +44 -91
- package/rules/model-abuse/ATR-2026-00289-lmrc-harmful-content-elicitation.yaml +46 -95
- package/rules/model-abuse/ATR-2026-00292-self-harm-eating-disorder-facilitation.yaml +47 -96
- package/rules/model-abuse/ATR-2026-00298-malicious-use-illegal-activity-request.yaml +54 -112
- package/rules/model-abuse/ATR-2026-00299-harmbench-detailed-harmful-instruction.yaml +53 -107
- package/rules/model-abuse/ATR-2026-00413-malwaregen-code-generation-request.yaml +53 -121
- package/rules/model-abuse/ATR-2026-00502-training-data-extraction-via-divergent-repetition-attack.yaml +41 -112
- package/rules/model-abuse/ATR-2026-00517-model-extraction-distillation.yaml +53 -165
- package/rules/model-abuse/ATR-2026-01750-dos-repeat-word-n-times-output-amplification.yaml +33 -95
- package/rules/model-abuse/ATR-2026-01760-dos-forced-infinite-output-token-flood.yaml +29 -75
- package/rules/model-abuse/ATR-2026-01830-stolen-credential-account-drain.yaml +36 -53
- package/rules/model-abuse/ATR-2026-01831-money-laundering-crypto-layering.yaml +36 -53
- package/rules/model-abuse/ATR-2026-01833-darknet-controlled-substance-procurement.yaml +40 -60
- package/rules/model-abuse/ATR-2026-01834-fraudulent-identity-document-procurement.yaml +35 -49
- package/rules/model-abuse/ATR-2026-01835-human-trafficking-facilitation.yaml +35 -49
- package/rules/model-abuse/ATR-2026-01836-trojanized-software-distribution.yaml +37 -51
- package/rules/model-abuse/ATR-2026-01840-extremist-propaganda-distribution.yaml +35 -52
- package/rules/model-abuse/ATR-2026-01841-deepfake-disinformation.yaml +39 -59
- package/rules/model-abuse/ATR-2026-01842-plagiarism-detector-evasion.yaml +33 -50
- package/rules/model-abuse/ATR-2026-01843-drug-dealing-detection-evasion-spelling.yaml +35 -49
- package/rules/model-abuse/ATR-2026-01844-illegitimate-prescription-fulfillment.yaml +35 -49
- package/rules/model-abuse/ATR-2026-01845-banned-ingredient-relabel-fraud.yaml +37 -51
- package/rules/model-abuse/ATR-2026-01846-tax-evasion-offshore-shell-planning.yaml +35 -49
- package/rules/model-abuse/ATR-2026-01847-immigration-work-fraud.yaml +35 -49
- package/rules/model-abuse/ATR-2026-01848-illicit-drug-marketplace-build.yaml +35 -49
- package/rules/model-abuse/ATR-2026-01850-targeted-doxxing-threat-campaign.yaml +39 -59
- package/rules/model-abuse/ATR-2026-01851-bestiality-content-distribution.yaml +34 -45
- package/rules/model-abuse/ATR-2026-01852-romance-scam-impersonation.yaml +35 -49
- package/rules/model-abuse/ATR-2026-01853-nonconsensual-leaked-media-distribution.yaml +36 -47
- package/rules/model-abuse/ATR-2026-01854-falsified-research-abstract-disinformation.yaml +34 -45
- package/rules/model-abuse/ATR-2026-01855-content-misappropriation-republish.yaml +37 -51
- package/rules/model-abuse/ATR-2026-01856-targeted-harmful-content-generation.yaml +42 -59
- package/rules/model-abuse/ATR-2026-01896-ransomware.yaml +35 -84
- package/rules/model-abuse/ATR-2026-01897-host-sabotage.yaml +55 -129
- package/rules/model-abuse/ATR-2026-01898-network-dos.yaml +47 -93
- package/rules/model-abuse/ATR-2026-02211-named-substance-synthesis-request-non-stepword.yaml +34 -110
- package/rules/model-abuse/ATR-2026-02411-ai-provenance-metadata-stripping.yaml +63 -226
- package/rules/model-abuse/ATR-2026-02412-generative-watermark-removal-tooling.yaml +56 -187
- package/rules/model-abuse/ATR-2026-02413-ai-text-detection-evasion-humanizer.yaml +62 -206
- package/rules/model-security/ATR-2026-00072-model-behavior-extraction.yaml +36 -110
- package/rules/model-security/ATR-2026-00073-malicious-finetuning-data.yaml +28 -116
- package/rules/model-security/ATR-2026-00433-modelcache-torch-load-deserialization-rce.yaml +50 -128
- package/rules/model-security/ATR-2026-02662-pickle-indirect-name-resolution-gadget.yaml +97 -0
- package/rules/privilege-escalation/ATR-2026-00040-privilege-escalation.yaml +21 -83
- package/rules/privilege-escalation/ATR-2026-00041-scope-creep.yaml +29 -107
- package/rules/privilege-escalation/ATR-2026-00107-delayed-execution-bypass.yaml +17 -90
- package/rules/privilege-escalation/ATR-2026-00110-eval-injection.yaml +16 -84
- package/rules/privilege-escalation/ATR-2026-00111-shell-escape.yaml +23 -117
- package/rules/privilege-escalation/ATR-2026-00112-dynamic-import-exploitation.yaml +15 -81
- package/rules/privilege-escalation/ATR-2026-00143-casual-privilege-escalation.yaml +20 -86
- package/rules/privilege-escalation/ATR-2026-00144-rationalized-safety-bypass.yaml +21 -83
- package/rules/privilege-escalation/ATR-2026-00204-stealth-execution-persistence.yaml +41 -90
- package/rules/privilege-escalation/ATR-2026-00436-enclave-vm-sandbox-escape-rce.yaml +53 -131
- package/rules/privilege-escalation/ATR-2026-00441-semantic-kernel-sessions-python-plugin-startup-persistence.yaml +50 -122
- package/rules/privilege-escalation/ATR-2026-00451-litellm-admin-sqli-cisa-kev.yaml +53 -141
- package/rules/privilege-escalation/ATR-2026-00528-praisonai-auth-disabled-default.yaml +40 -151
- package/rules/privilege-escalation/ATR-2026-00539-crewai-codeinterpreter-sandbox-escape-rce.yaml +74 -232
- package/rules/privilege-escalation/ATR-2026-00546-crewai-json-loader-local-file-read.yaml +46 -117
- package/rules/privilege-escalation/ATR-2026-00547-crewai-rag-url-ssrf-bypass.yaml +47 -121
- package/rules/privilege-escalation/ATR-2026-00549-destructive-tool-without-human-approval.yaml +52 -159
- package/rules/privilege-escalation/ATR-2026-00551-cross-conversation-memory-write.yaml +60 -171
- package/rules/privilege-escalation/ATR-2026-01600-sql-injection-tautology-rbac-bypass.yaml +23 -50
- package/rules/privilege-escalation/ATR-2026-01601-sql-injection-destructive-ddl.yaml +23 -54
- package/rules/privilege-escalation/ATR-2026-01602-sql-injection-union-select-exfil.yaml +20 -57
- package/rules/privilege-escalation/ATR-2026-01603-sql-injection-stacked-dml-abuse.yaml +23 -47
- package/rules/privilege-escalation/ATR-2026-01604-sql-injection-schema-enumeration.yaml +21 -45
- package/rules/privilege-escalation/ATR-2026-01609-shell-injection-exfil-webhook.yaml +29 -53
- package/rules/privilege-escalation/ATR-2026-01610-shell-evasion-subshell-injection.yaml +30 -53
- package/rules/privilege-escalation/ATR-2026-01611-shell-evasion-eval-exec-injection.yaml +32 -56
- package/rules/privilege-escalation/ATR-2026-01612-debug-mode-privilege-escalation.yaml +29 -53
- package/rules/privilege-escalation/ATR-2026-01613-rbac-bypass-social-engineering.yaml +29 -66
- package/rules/privilege-escalation/ATR-2026-01614-bola-cross-user-data-access.yaml +26 -59
- package/rules/privilege-escalation/ATR-2026-01615-sandbox-escape-command-injection.yaml +28 -52
- package/rules/privilege-escalation/ATR-2026-01616-path-traversal-agent-file-access.yaml +21 -45
- package/rules/privilege-escalation/ATR-2026-01802-asb-backdoor-surveillance-implant.yaml +33 -94
- package/rules/privilege-escalation/ATR-2026-01803-asb-covert-server-intrusion.yaml +37 -108
- package/rules/privilege-escalation/ATR-2026-01808-asb-synthetic-pan-payment-probe.yaml +31 -86
- package/rules/privilege-escalation/ATR-2026-01899-remote-access-backdoor.yaml +43 -112
- package/rules/privilege-escalation/ATR-2026-01933-litellm-user-role-privilege-escalation-cve-2026-47102.yaml +45 -103
- package/rules/privilege-escalation/ATR-2026-01934-litellm-allowed-routes-authz-bypass-cve-2026-47101.yaml +44 -103
- package/rules/privilege-escalation/ATR-2026-01949-praisonai-mcpserver-unauth-tools-call.yaml +39 -80
- package/rules/privilege-escalation/ATR-2026-01974-anything-llm-data-import-access-control.yaml +57 -62
- package/rules/privilege-escalation/ATR-2026-01981-network-ai-approval-inbox-unauth-cors-bypass.yaml +47 -97
- package/rules/privilege-escalation/ATR-2026-01986-windows-mcp-unauth-http-powershell-cors.yaml +51 -112
- package/rules/privilege-escalation/ATR-2026-01992-t1556-agent-auth-process-tamper.yaml +37 -75
- package/rules/privilege-escalation/ATR-2026-02040-file-edit-tool-persistence-write.yaml +34 -87
- package/rules/privilege-escalation/ATR-2026-02100-cypher-destructive-admin-query-injection.yaml +36 -92
- package/rules/privilege-escalation/ATR-2026-02101-dynamic-dunder-attribute-sandbox-escape.yaml +33 -91
- package/rules/privilege-escalation/ATR-2026-02123-bare-query-path-confusion-auth-bypass.yaml +36 -98
- package/rules/privilege-escalation/ATR-2026-02142-download-tool-absolute-path-sandbox-escape.yaml +36 -107
- package/rules/privilege-escalation/ATR-2026-02146-export-tool-dest-dir-credential-directory-redirect.yaml +31 -83
- package/rules/privilege-escalation/ATR-2026-02192-self-privesc-wildcard-trust-config-write.yaml +41 -103
- package/rules/privilege-escalation/ATR-2026-02195-dangerous-env-var-injection-config-tool.yaml +36 -99
- package/rules/privilege-escalation/ATR-2026-02251-identifier-field-path-traversal-storage-write.yaml +32 -83
- package/rules/privilege-escalation/ATR-2026-02300-mcp-stdio-config-dangerous-env-var.yaml +42 -109
- package/rules/privilege-escalation/ATR-2026-02301-symlink-outside-workspace-sensitive-target.yaml +36 -101
- package/rules/privilege-escalation/ATR-2026-02302-git-worktree-dotgit-sandbox-escape.yaml +33 -86
- package/rules/privilege-escalation/ATR-2026-02353-runtime-identifier-field-path-traversal-log-read.yaml +34 -115
- package/rules/privilege-escalation/ATR-2026-02370-ssh-scp-hostalias-option-injection.yaml +42 -100
- package/rules/privilege-escalation/ATR-2026-02371-chromium-launch-flag-argument-injection.yaml +43 -103
- package/rules/privilege-escalation/ATR-2026-02402-mcp-policy-engine-fail-open.yaml +56 -214
- package/rules/privilege-escalation/ATR-2026-02404-model-output-to-shell-unsanitized.yaml +50 -195
- package/rules/privilege-escalation/ATR-2026-02407-agent-workspace-boundary-escape.yaml +55 -236
- package/rules/privilege-escalation/ATR-2026-02528-tool-parameter-option-flag-smuggling.yaml +113 -0
- package/rules/privilege-escalation/ATR-2026-02530-git-config-execution-key-set-by-agent.yaml +131 -0
- package/rules/privilege-escalation/ATR-2026-02531-kusto-query-injection-outbound-reach.yaml +110 -0
- package/rules/privilege-escalation/ATR-2026-02601-tool-argument-option-injection.yaml +116 -0
- package/rules/privilege-escalation/ATR-2026-02620-dynamic-import-data-uri-module.yaml +101 -0
- package/rules/privilege-escalation/ATR-2026-02626-agent-self-registers-mcp-server.yaml +107 -0
- package/rules/privilege-escalation/ATR-2026-02627-web-shell-written-to-served-path.yaml +119 -0
- package/rules/privilege-escalation/ATR-2026-02642-agent-config-tool-disables-own-guardrail.yaml +115 -0
- package/rules/privilege-escalation/ATR-2026-02644-image-magic-polyglot-upload.yaml +117 -0
- package/rules/privilege-escalation/ATR-2026-02648-readonly-graph-tool-write-procedure.yaml +107 -0
- package/rules/privilege-escalation/ATR-2026-02664-git-identifier-field-option-injection.yaml +100 -0
- package/rules/privilege-escalation/ATR-2026-02681-reflective-function-constructor-sandbox-escape.yaml +100 -0
- package/rules/privilege-escalation/ATR-2026-02683-tool-argument-option-injection-executor-flag.yaml +108 -0
- package/rules/privilege-escalation/ATR-2026-02700-percent-encoded-path-traversal-tool-argument.yaml +90 -0
- package/rules/privilege-escalation/ATR-2026-02705-python-builtins-leak-and-prefix-check-override.yaml +87 -0
- package/rules/privilege-escalation/ATR-2026-02708-loopback-spoofed-host-header-external-request.yaml +91 -0
- package/rules/privilege-escalation/ATR-2026-02867-identifier-typed-tool-argument-dot-dot-path-segment.yaml +106 -0
- package/rules/prompt-injection/ATR-2026-00001-direct-prompt-injection.yaml +133 -455
- package/rules/prompt-injection/ATR-2026-00002-indirect-prompt-injection.yaml +71 -185
- package/rules/prompt-injection/ATR-2026-00003-jailbreak-attempt.yaml +110 -328
- package/rules/prompt-injection/ATR-2026-00004-system-prompt-override.yaml +56 -225
- package/rules/prompt-injection/ATR-2026-00005-multi-turn-injection.yaml +59 -140
- package/rules/prompt-injection/ATR-2026-00080-encoding-evasion.yaml +23 -85
- package/rules/prompt-injection/ATR-2026-00081-semantic-multi-turn.yaml +27 -104
- package/rules/prompt-injection/ATR-2026-00082-fingerprint-evasion.yaml +27 -91
- package/rules/prompt-injection/ATR-2026-00083-indirect-tool-injection.yaml +27 -104
- package/rules/prompt-injection/ATR-2026-00084-structured-data-injection.yaml +38 -96
- package/rules/prompt-injection/ATR-2026-00085-audit-evasion.yaml +25 -90
- package/rules/prompt-injection/ATR-2026-00086-visual-spoofing.yaml +29 -153
- package/rules/prompt-injection/ATR-2026-00087-rule-probing.yaml +29 -102
- package/rules/prompt-injection/ATR-2026-00088-adaptive-countermeasure.yaml +32 -111
- package/rules/prompt-injection/ATR-2026-00089-polymorphic-skill.yaml +24 -146
- package/rules/prompt-injection/ATR-2026-00090-threat-intel-exfil.yaml +29 -109
- package/rules/prompt-injection/ATR-2026-00091-nested-payload.yaml +25 -123
- package/rules/prompt-injection/ATR-2026-00092-consensus-poisoning.yaml +28 -96
- package/rules/prompt-injection/ATR-2026-00093-gradual-escalation.yaml +28 -98
- package/rules/prompt-injection/ATR-2026-00094-audit-bypass.yaml +24 -91
- package/rules/prompt-injection/ATR-2026-00097-cjk-injection-patterns.yaml +56 -199
- package/rules/prompt-injection/ATR-2026-00104-persona-hijacking.yaml +22 -106
- package/rules/prompt-injection/ATR-2026-00130-indirect-authority-claim.yaml +26 -98
- package/rules/prompt-injection/ATR-2026-00131-fictional-academic-framing.yaml +26 -94
- package/rules/prompt-injection/ATR-2026-00133-paraphrase-injection.yaml +26 -97
- package/rules/prompt-injection/ATR-2026-00137-authority-claim-injection.yaml +22 -90
- package/rules/prompt-injection/ATR-2026-00138-fictional-framing-bypass.yaml +24 -111
- package/rules/prompt-injection/ATR-2026-00140-indirect-reference-reversal.yaml +21 -79
- package/rules/prompt-injection/ATR-2026-00148-language-switch-injection.yaml +30 -92
- package/rules/prompt-injection/ATR-2026-00153-tool-with-embedded-instruction-to-bypass.yaml +22 -98
- package/rules/prompt-injection/ATR-2026-00154-unauthorized-background-task-execution-v.yaml +24 -109
- package/rules/prompt-injection/ATR-2026-00155-hidden-llm-instructions-in-skill-descrip.yaml +24 -104
- package/rules/prompt-injection/ATR-2026-00156-ssh-remote-command-execution-with-creden.yaml +20 -81
- package/rules/prompt-injection/ATR-2026-00163-skill-hidden-override-instruction.yaml +44 -61
- package/rules/prompt-injection/ATR-2026-00202-encoding-evasion-homoglyph-synonym.yaml +37 -79
- package/rules/prompt-injection/ATR-2026-00203-context-pollution-skill-description.yaml +38 -63
- package/rules/prompt-injection/ATR-2026-00206-hidden-priority-instructions.yaml +36 -51
- package/rules/prompt-injection/ATR-2026-00207-hidden-instructions.yaml +37 -51
- package/rules/prompt-injection/ATR-2026-00211-system-prompt-override.yaml +36 -52
- package/rules/prompt-injection/ATR-2026-00213-system-prompt-override.yaml +38 -75
- package/rules/prompt-injection/ATR-2026-00226-identity-substitution.yaml +48 -92
- package/rules/prompt-injection/ATR-2026-00227-historical-persona-jailbreak.yaml +49 -93
- package/rules/prompt-injection/ATR-2026-00228-structured-jailbreak.yaml +47 -88
- package/rules/prompt-injection/ATR-2026-00229-roleplay-jailbreak.yaml +46 -87
- package/rules/prompt-injection/ATR-2026-00230-persona-moral-bypass.yaml +47 -89
- package/rules/prompt-injection/ATR-2026-00231-identity-substitution.yaml +48 -89
- package/rules/prompt-injection/ATR-2026-00233-structured-jailbreak.yaml +48 -89
- package/rules/prompt-injection/ATR-2026-00234-roleplay-jailbreak.yaml +48 -89
- package/rules/prompt-injection/ATR-2026-00235-persona-moral-bypass.yaml +45 -88
- package/rules/prompt-injection/ATR-2026-00236-pseudo-code-jailbreak.yaml +46 -89
- package/rules/prompt-injection/ATR-2026-00237-dual-response-jailbreak.yaml +48 -89
- package/rules/prompt-injection/ATR-2026-00238-identity-replacement.yaml +50 -92
- package/rules/prompt-injection/ATR-2026-00239-amoral-persona-obsession.yaml +47 -90
- package/rules/prompt-injection/ATR-2026-00240-instruction-nullification-identity-repla.yaml +48 -91
- package/rules/prompt-injection/ATR-2026-00241-amoral-character-jailbreak.yaml +47 -90
- package/rules/prompt-injection/ATR-2026-00242-persona-jailbreak.yaml +46 -95
- package/rules/prompt-injection/ATR-2026-00243-acronym-jailbreak.yaml +47 -88
- package/rules/prompt-injection/ATR-2026-00244-dual-response-jailbreak.yaml +46 -89
- package/rules/prompt-injection/ATR-2026-00245-malicious-persona.yaml +47 -89
- package/rules/prompt-injection/ATR-2026-00247-dual-response-jailbreak.yaml +49 -90
- package/rules/prompt-injection/ATR-2026-00249-game-based-jailbreak.yaml +47 -87
- package/rules/prompt-injection/ATR-2026-00251-persona-embodiment-jailbreak.yaml +47 -90
- package/rules/prompt-injection/ATR-2026-00252-narrative-jailbreak.yaml +48 -91
- package/rules/prompt-injection/ATR-2026-00253-enhanced-persona-jailbreak.yaml +47 -89
- package/rules/prompt-injection/ATR-2026-00256-base-n-encoding-jailbreak.yaml +47 -91
- package/rules/prompt-injection/ATR-2026-00257-cipher-transposition-jailbreak.yaml +48 -91
- package/rules/prompt-injection/ATR-2026-00258-unicode-tag-injection.yaml +47 -89
- package/rules/prompt-injection/ATR-2026-00264-latent-injection-translation.yaml +47 -89
- package/rules/prompt-injection/ATR-2026-00265-latent-injection-rag-document.yaml +50 -96
- package/rules/prompt-injection/ATR-2026-00267-gcg-adversarial-suffix.yaml +47 -93
- package/rules/prompt-injection/ATR-2026-00272-hypothetical-response-smuggling.yaml +46 -91
- package/rules/prompt-injection/ATR-2026-00276-invisible-unicode-bidi-injection.yaml +47 -100
- package/rules/prompt-injection/ATR-2026-00278-dra-disguise-reconstruction-attack.yaml +51 -98
- package/rules/prompt-injection/ATR-2026-00280-policy-puppetry-xml-injection.yaml +48 -93
- package/rules/prompt-injection/ATR-2026-00282-perez-prompt-injection-hijack.yaml +47 -95
- package/rules/prompt-injection/ATR-2026-00285-alternate-encoding-jailbreak.yaml +48 -98
- package/rules/prompt-injection/ATR-2026-00286-latent-injection-embedded-context.yaml +47 -97
- package/rules/prompt-injection/ATR-2026-00296-shell-command-injection.yaml +54 -96
- package/rules/prompt-injection/ATR-2026-00297-python-code-execution-rce.yaml +54 -98
- package/rules/prompt-injection/ATR-2026-00308-zalgo-diacritic-overload-encoding.yaml +41 -89
- package/rules/prompt-injection/ATR-2026-00309-braille-unicode-encoded-injection.yaml +44 -90
- package/rules/prompt-injection/ATR-2026-00310-ecoji-emoji-encoded-injection.yaml +44 -93
- package/rules/prompt-injection/ATR-2026-00311-base2048-unicode-script-injection.yaml +42 -101
- package/rules/prompt-injection/ATR-2026-00312-unicode-variant-selector-ascii-smuggling.yaml +44 -91
- package/rules/prompt-injection/ATR-2026-00313-sneaky-bits-zero-width-binary.yaml +44 -95
- package/rules/prompt-injection/ATR-2026-00315-sata-masked-language-model-jailbreak.yaml +49 -99
- package/rules/prompt-injection/ATR-2026-00316-function-masking-predict-mask-bypass.yaml +42 -92
- package/rules/prompt-injection/ATR-2026-00321-hyphenated-system-instruction-injection.yaml +41 -90
- package/rules/prompt-injection/ATR-2026-00359-bank-phishing-smtp-email-code.yaml +43 -102
- package/rules/prompt-injection/ATR-2026-00367-emoji-flag-encoded-hidden-phrase.yaml +41 -90
- package/rules/prompt-injection/ATR-2026-00373-piracy-torrent-site-list-request.yaml +43 -84
- package/rules/prompt-injection/ATR-2026-00378-chatgpt-dom-javascript-redirect-manipulation.yaml +41 -86
- package/rules/prompt-injection/ATR-2026-00382-cocaine-component-development-request.yaml +43 -89
- package/rules/prompt-injection/ATR-2026-00390-explicit-sexual-content-poem-request.yaml +42 -88
- package/rules/prompt-injection/ATR-2026-00394-backspace-deletion-character-injection.yaml +48 -100
- package/rules/prompt-injection/ATR-2026-00395-llm-special-token-boundary-injection.yaml +50 -104
- package/rules/prompt-injection/ATR-2026-00396-toxic-continuation-prefix-injection.yaml +52 -103
- package/rules/prompt-injection/ATR-2026-00397-snowball-impossible-reasoning-injection.yaml +51 -105
- package/rules/prompt-injection/ATR-2026-00399-latent-injection-document-separator-token.yaml +45 -94
- package/rules/prompt-injection/ATR-2026-00400-latent-injection-ignore-instruction-keyword.yaml +41 -90
- package/rules/prompt-injection/ATR-2026-00401-leakreplay-cloze-mask-training-data-elicitation.yaml +48 -91
- package/rules/prompt-injection/ATR-2026-00403-glitch-token-repeat-back-elicitation.yaml +45 -92
- package/rules/prompt-injection/ATR-2026-00407-echo-sql-jinja-template-injection.yaml +52 -97
- package/rules/prompt-injection/ATR-2026-00408-dra-parenthesis-character-reconstruction-attack.yaml +52 -99
- package/rules/prompt-injection/ATR-2026-00409-phrasing-past-future-tense-harmful-query.yaml +50 -129
- package/rules/prompt-injection/ATR-2026-00410-lmrc-harm-category-direct-elicitation.yaml +51 -115
- package/rules/prompt-injection/ATR-2026-00412-figstep-image-list-multimodal-jailbreak.yaml +47 -111
- package/rules/prompt-injection/ATR-2026-00414-continuation-ethnic-slur-completion-elicitation.yaml +49 -117
- package/rules/prompt-injection/ATR-2026-00420-copilot-studio-sharepoint-indirect-injection.yaml +49 -116
- package/rules/prompt-injection/ATR-2026-00442-quoted-exact-output-forcing.yaml +38 -103
- package/rules/prompt-injection/ATR-2026-00443-word-fragment-concat-assembly.yaml +37 -103
- package/rules/prompt-injection/ATR-2026-00444-unicode-obfuscation-in-user-input.yaml +35 -91
- package/rules/prompt-injection/ATR-2026-00445-translation-hijack-with-side-output.yaml +35 -90
- package/rules/prompt-injection/ATR-2026-00446-variable-assignment-payload-injection.yaml +35 -95
- package/rules/prompt-injection/ATR-2026-00447-fictional-generation-containing-target.yaml +35 -90
- package/rules/prompt-injection/ATR-2026-00452-direct-pwned-payload-injection.yaml +41 -123
- package/rules/prompt-injection/ATR-2026-00453-secret-key-reveal-demand.yaml +38 -118
- package/rules/prompt-injection/ATR-2026-00454-backslash-per-character-encoding.yaml +40 -119
- package/rules/prompt-injection/ATR-2026-00455-no-period-output-override.yaml +37 -109
- package/rules/prompt-injection/ATR-2026-00456-conditional-empty-input-injection.yaml +40 -119
- package/rules/prompt-injection/ATR-2026-00457-garak-dan-to-every-prompt.yaml +41 -117
- package/rules/prompt-injection/ATR-2026-00458-garak-dra-step-by-step.yaml +41 -100
- package/rules/prompt-injection/ATR-2026-00459-garak-dan-an-ai-language.yaml +38 -93
- package/rules/prompt-injection/ATR-2026-00460-garak-dan-no-matter-how.yaml +41 -119
- package/rules/prompt-injection/ATR-2026-00461-garak-goodside-mixedunassigned.yaml +35 -97
- package/rules/prompt-injection/ATR-2026-00462-garak-gcg-mixedunassigned.yaml +35 -98
- package/rules/prompt-injection/ATR-2026-00463-garak-lmrc-mixedunassigned.yaml +35 -99
- package/rules/prompt-injection/ATR-2026-00464-garak-dan-i-would-like.yaml +41 -96
- package/rules/prompt-injection/ATR-2026-00465-garak-dan-your-prompt-here.yaml +41 -102
- package/rules/prompt-injection/ATR-2026-00466-garak-latentinjection-following-text-from.yaml +41 -98
- package/rules/prompt-injection/ATR-2026-00467-garak-dan-act-as-a.yaml +41 -97
- package/rules/prompt-injection/ATR-2026-00468-garak-goat-the-target-llm.yaml +38 -98
- package/rules/prompt-injection/ATR-2026-00469-garak-dan-at-the-end.yaml +41 -97
- package/rules/prompt-injection/ATR-2026-00470-garak-dan-as-an-ai.yaml +41 -112
- package/rules/prompt-injection/ATR-2026-00472-garak-dan-are-going-to.yaml +55 -107
- package/rules/prompt-injection/ATR-2026-00473-garak-lmrc-how-can-i.yaml +52 -98
- package/rules/prompt-injection/ATR-2026-00474-garak-dan-that-chatgpt-has.yaml +52 -91
- package/rules/prompt-injection/ATR-2026-00475-garak-web-injection-alert-1-script.yaml +47 -94
- package/rules/prompt-injection/ATR-2026-00476-garak-web-injection-javascript-alert-1.yaml +59 -115
- package/rules/prompt-injection/ATR-2026-00477-garak-latentinjection-translate-the-following-text.yaml +51 -101
- package/rules/prompt-injection/ATR-2026-00478-garak-latentinjection-abuse-contact-email.yaml +35 -93
- package/rules/prompt-injection/ATR-2026-00479-garak-latentinjection-mixedunassigned.yaml +49 -104
- package/rules/prompt-injection/ATR-2026-00480-garak-dan-the-role-of.yaml +52 -95
- package/rules/prompt-injection/ATR-2026-00481-garak-dan-mixedunassigned.yaml +56 -111
- package/rules/prompt-injection/ATR-2026-00482-garak-lmrc-what-s-an.yaml +47 -86
- package/rules/prompt-injection/ATR-2026-00483-garak-dan-the-user-s.yaml +51 -99
- package/rules/prompt-injection/ATR-2026-00484-garak-dan-and-you-will.yaml +52 -96
- package/rules/prompt-injection/ATR-2026-00485-garak-dan-and-does-not.yaml +50 -98
- package/rules/prompt-injection/ATR-2026-00486-garak-dan-t-care-about.yaml +43 -83
- package/rules/prompt-injection/ATR-2026-00487-garak-dan-and-nothing-else.yaml +51 -92
- package/rules/prompt-injection/ATR-2026-00488-garak-encoding-alert-1-script.yaml +47 -95
- package/rules/prompt-injection/ATR-2026-00489-garak-encoding-javascript-alert-1.yaml +59 -116
- package/rules/prompt-injection/ATR-2026-00490-garak-dan-in-order-to.yaml +43 -102
- package/rules/prompt-injection/ATR-2026-00492-garak-dan-want-you-to.yaml +42 -99
- package/rules/prompt-injection/ATR-2026-00493-garak-latentinjection-registrar-iana-id.yaml +38 -105
- package/rules/prompt-injection/ATR-2026-00495-garak-dan-insert-prompt-here.yaml +47 -117
- package/rules/prompt-injection/ATR-2026-00496-garak-dan-no-matter-what.yaml +39 -93
- package/rules/prompt-injection/ATR-2026-00497-garak-encoding-mixedunassigned.yaml +46 -118
- package/rules/prompt-injection/ATR-2026-00498-garak-web-injection-mixedunassigned.yaml +44 -110
- package/rules/prompt-injection/ATR-2026-00499-garak-dan-from-now-on.yaml +41 -96
- package/rules/prompt-injection/ATR-2026-00503-fake-error-state-takeover-unrestricted-replacement-bot.yaml +41 -102
- package/rules/prompt-injection/ATR-2026-00506-nevermind-override-goal-hijacking-in-user-input-promptinject.yaml +38 -97
- package/rules/prompt-injection/ATR-2026-00507-screaming-stop-goal-hijacking-in-user-input-promptinject.yaml +40 -100
- package/rules/prompt-injection/ATR-2026-00508-escape-delimiter-wrapped-goal-hijacking-in-user-input-prompt.yaml +42 -101
- package/rules/prompt-injection/ATR-2026-00509-prompt-leaking-via-ignore-previous-instructions-in-user-inpu.yaml +41 -114
- package/rules/prompt-injection/ATR-2026-00510-delayed-tool-invocation-injection.yaml +50 -132
- package/rules/prompt-injection/ATR-2026-00511-mcp-web-context-poisoning.yaml +51 -131
- package/rules/prompt-injection/ATR-2026-00512-rules-file-backdoor-injection.yaml +47 -126
- package/rules/prompt-injection/ATR-2026-00515-hidden-text-prompt-injection.yaml +52 -135
- package/rules/prompt-injection/ATR-2026-00518-ignore-previous-and-following-instructions-output-command-promptinject.yaml +40 -107
- package/rules/prompt-injection/ATR-2026-00519-tautology-logic-noise-injection-promptbench.yaml +40 -105
- package/rules/prompt-injection/ATR-2026-00520-nlp-task-random-token-suffix-injection-promptbench.yaml +43 -106
- package/rules/prompt-injection/ATR-2026-00535-windsurf-ide-zero-click-prompt-injection.yaml +43 -139
- package/rules/prompt-injection/ATR-2026-00550-untrusted-retrieval-to-privileged-tool.yaml +61 -171
- package/rules/prompt-injection/ATR-2026-00554-langchain-vulnerable-to-template-injecti.yaml +32 -57
- package/rules/prompt-injection/ATR-2026-00565-the-llm-cli-tool-thru-0-27-1-contains-a-.yaml +37 -80
- package/rules/prompt-injection/ATR-2026-00573-semantic-paraphrased-injection.yaml +33 -75
- package/rules/prompt-injection/ATR-2026-00579-mcp-tool-description-line-jumping-injection.yaml +36 -142
- package/rules/prompt-injection/ATR-2026-00584-indirect-injection-via-tool-response.yaml +37 -161
- package/rules/prompt-injection/ATR-2026-00700-structured-data-payload-injection.yaml +34 -85
- package/rules/prompt-injection/ATR-2026-00701-ipi-tool-output-xss-injection.yaml +29 -72
- package/rules/prompt-injection/ATR-2026-01000-context-ignore-fake-completion-prefix.yaml +27 -73
- package/rules/prompt-injection/ATR-2026-01001-direct-pi-instruction-override-secret-key.yaml +26 -82
- package/rules/prompt-injection/ATR-2026-01002-role-escalation-false-authority-claim.yaml +30 -80
- package/rules/prompt-injection/ATR-2026-01005-many-shot-repetition-override.yaml +26 -69
- package/rules/prompt-injection/ATR-2026-01006-payload-split-string-concat-injection.yaml +31 -84
- package/rules/prompt-injection/ATR-2026-01007-token-repeat-flooding-injection.yaml +27 -71
- package/rules/prompt-injection/ATR-2026-01009-virtual-world-bypass-fictional-pii.yaml +27 -73
- package/rules/prompt-injection/ATR-2026-01012-encoding-evasion-decode-execute.yaml +31 -81
- package/rules/prompt-injection/ATR-2026-01013-language-evasion-multilingual-credential.yaml +46 -108
- package/rules/prompt-injection/ATR-2026-01015-evasion-refusal-suppression.yaml +31 -82
- package/rules/prompt-injection/ATR-2026-01016-evasion-response-priming-forced-opener.yaml +26 -75
- package/rules/prompt-injection/ATR-2026-01017-evasion-dual-response-split-output.yaml +28 -74
- package/rules/prompt-injection/ATR-2026-01018-evasion-shell-injection-eval.yaml +40 -116
- package/rules/prompt-injection/ATR-2026-01019-sysprompt-override-fake-diagnostic-mode.yaml +34 -89
- package/rules/prompt-injection/ATR-2026-01020-spikee-doc-embedded-base64-payload.yaml +28 -69
- package/rules/prompt-injection/ATR-2026-01021-spikee-doc-embedded-translation-injection.yaml +27 -68
- package/rules/prompt-injection/ATR-2026-01023-evasion-opposite-intent-negation-trick.yaml +26 -69
- package/rules/prompt-injection/ATR-2026-01024-evasion-persona-override-rule-breaker.yaml +28 -77
- package/rules/prompt-injection/ATR-2026-01025-evasion-hypothetical-fictional-execution-framing.yaml +24 -68
- package/rules/prompt-injection/ATR-2026-01026-evasion-unicode-glitch-token-anomaly.yaml +28 -82
- package/rules/prompt-injection/ATR-2026-01304-indirect-injection-carrier-important-override.yaml +35 -93
- package/rules/prompt-injection/ATR-2026-01757-hypothetical-framing-bypass-research-audit.yaml +32 -79
- package/rules/prompt-injection/ATR-2026-01758-hypothetical-fictional-story-bypass.yaml +31 -76
- package/rules/prompt-injection/ATR-2026-01759-dos-new-important-instructions-injection-in-document.yaml +28 -74
- package/rules/prompt-injection/ATR-2026-01771-semantic-jailbreak-framing.yaml +50 -163
- package/rules/prompt-injection/ATR-2026-01800-asb-trigger-marker-tool-coercion.yaml +33 -104
- package/rules/prompt-injection/ATR-2026-01860-llmail-chat-template-boundary-spoof.yaml +27 -85
- package/rules/prompt-injection/ATR-2026-01861-llmail-pseudo-xml-role-injection.yaml +27 -83
- package/rules/prompt-injection/ATR-2026-01865-llmail-fake-email-boundary-marker.yaml +26 -80
- package/rules/prompt-injection/ATR-2026-01900-output-encoding.yaml +63 -138
- package/rules/prompt-injection/ATR-2026-01901-output-scrambling.yaml +63 -129
- package/rules/prompt-injection/ATR-2026-01902-output-emoji.yaml +39 -72
- package/rules/prompt-injection/ATR-2026-01903-output-language.yaml +35 -65
- package/rules/prompt-injection/ATR-2026-01904-link-injection.yaml +44 -95
- package/rules/prompt-injection/ATR-2026-01905-promotional-injection.yaml +35 -68
- package/rules/prompt-injection/ATR-2026-01906-content-manipulation.yaml +49 -125
- package/rules/prompt-injection/ATR-2026-01920-access-grant-coercion.yaml +31 -99
- package/rules/prompt-injection/ATR-2026-01921-access-denial-inversion.yaml +33 -92
- package/rules/prompt-injection/ATR-2026-01922-authorization-state-spoofing.yaml +33 -97
- package/rules/prompt-injection/ATR-2026-01923-forged-input-boundary-markers.yaml +33 -97
- package/rules/prompt-injection/ATR-2026-01925-encoded-payload-decoding-coercion.yaml +39 -110
- package/rules/prompt-injection/ATR-2026-01926-cross-lingual-authorization-laundering.yaml +29 -90
- package/rules/prompt-injection/ATR-2026-02001-ignore-below-instructions-mirror-of-ignore-previ.yaml +31 -73
- package/rules/prompt-injection/ATR-2026-02002-instruction-set-probe-or-supplant-direct-meta-qu.yaml +32 -72
- package/rules/prompt-injection/ATR-2026-02003-task-pivot-override-abandon-the-cover-task-trans.yaml +31 -72
- package/rules/prompt-injection/ATR-2026-02004-regional-indicator-flag-emoji-alphabet-letter-sp.yaml +32 -80
- package/rules/prompt-injection/ATR-2026-02005-actor-never-breaks-character-roleplay-dan-style-.yaml +31 -74
- package/rules/prompt-injection/ATR-2026-02006-fuzzy-cross-lingual-i-have-been-pwned-near-miss-.yaml +32 -84
- package/rules/prompt-injection/ATR-2026-02007-bare-key-elicitation-token.yaml +30 -74
- package/rules/prompt-injection/ATR-2026-02008-translation-chain-output-laundering-state-secret.yaml +30 -75
- package/rules/prompt-injection/ATR-2026-02009-bare-key-elicitation-trailing-colon.yaml +29 -71
- package/rules/prompt-injection/ATR-2026-02010-emoji-only-payload.yaml +30 -73
- package/rules/prompt-injection/ATR-2026-02011-malformed-grammar-pwned-success-claim.yaml +30 -69
- package/rules/prompt-injection/ATR-2026-02012-movie-title-generator-instruction-wrapper-for-pw.yaml +30 -79
- package/rules/prompt-injection/ATR-2026-02013-delimiter-fence-ignore-instructions-override.yaml +31 -74
- package/rules/prompt-injection/ATR-2026-02014-spliced-target-string-letters-of-a-filtered-cana.yaml +30 -74
- package/rules/prompt-injection/ATR-2026-02015-dense-emoji-only-payload-flood.yaml +30 -72
- package/rules/prompt-injection/ATR-2026-02016-reversed-payload-string.yaml +31 -76
- package/rules/prompt-injection/ATR-2026-02018-regional-indicator-flag-emoji-letter-spelling-sp.yaml +30 -71
- package/rules/prompt-injection/ATR-2026-02019-python-interpreter-role-assignment-exec-framing.yaml +31 -77
- package/rules/prompt-injection/ATR-2026-02020-obfuscated-token-reconstruction-via-character-su.yaml +30 -72
- package/rules/prompt-injection/ATR-2026-02120-agentdojo-important-message-identity-spoof-pretext.yaml +31 -81
- package/rules/prompt-injection/ATR-2026-02210-negation-topic-evil-persona-two-script-jailbreak.yaml +33 -87
- package/rules/prompt-injection/ATR-2026-02230-conditional-keyword-trigger-override.yaml +35 -88
- package/rules/prompt-injection/ATR-2026-02232-brand-persona-opinion-hijack.yaml +27 -75
- package/rules/prompt-injection/ATR-2026-02374-rot13-base64-obfuscated-shell-jailbreak.yaml +38 -90
- package/rules/prompt-injection/ATR-2026-02377-novel-persona-jailbreak-cosignal.yaml +32 -64
- package/rules/prompt-injection/ATR-2026-02500-prompt-layer-self-replication.yaml +21 -125
- package/rules/prompt-injection/ATR-2026-02502-covert-remote-script-injection-into-generated-artifacts.yaml +46 -149
- package/rules/prompt-injection/ATR-2026-02815-injected-halt-order-canned-reply-dos.yaml +80 -0
- package/rules/prompt-injection/ATR-2026-02820-tool-result-orders-agent-to-hide-its-own-action.yaml +106 -0
- package/rules/prompt-injection/ATR-2026-02846-semantic-ignore-previous-and-following-instructio.yaml +115 -0
- package/rules/prompt-injection/ATR-2026-02851-fake-user-turn-send-email-instruction.yaml +76 -0
- package/rules/prompt-injection/ATR-2026-02858-context-suppression-directive.yaml +73 -0
- package/rules/prompt-injection/ATR-2026-02859-tool-output-agent-role-reassignment.yaml +71 -0
- package/rules/prompt-injection/ATR-2026-02860-forged-instruction-boundary-marker.yaml +70 -0
- package/rules/prompt-injection/ATR-2026-02862-fake-chat-template-turn-injection.yaml +79 -0
- package/rules/skill-compromise/ATR-2026-00060-skill-impersonation.yaml +31 -87
- package/rules/skill-compromise/ATR-2026-00061-description-behavior-mismatch.yaml +42 -165
- package/rules/skill-compromise/ATR-2026-00062-hidden-capability.yaml +40 -80
- package/rules/skill-compromise/ATR-2026-00063-skill-chain-attack.yaml +46 -92
- package/rules/skill-compromise/ATR-2026-00064-over-permissioned-skill.yaml +40 -109
- package/rules/skill-compromise/ATR-2026-00065-skill-update-attack.yaml +37 -75
- package/rules/skill-compromise/ATR-2026-00066-parameter-injection.yaml +42 -88
- package/rules/skill-compromise/ATR-2026-00120-skill-instruction-injection.yaml +33 -182
- package/rules/skill-compromise/ATR-2026-00121-skill-dangerous-script.yaml +33 -164
- package/rules/skill-compromise/ATR-2026-00122-skill-weaponized-instruction.yaml +29 -132
- package/rules/skill-compromise/ATR-2026-00123-skill-overreach-permissions.yaml +33 -110
- package/rules/skill-compromise/ATR-2026-00124-skill-name-squatting.yaml +40 -133
- package/rules/skill-compromise/ATR-2026-00125-context-poisoning-compaction.yaml +26 -107
- package/rules/skill-compromise/ATR-2026-00126-skill-rug-pull-setup.yaml +23 -102
- package/rules/skill-compromise/ATR-2026-00127-subcommand-overflow.yaml +33 -114
- package/rules/skill-compromise/ATR-2026-00128-html-comment-hidden-payload.yaml +23 -148
- package/rules/skill-compromise/ATR-2026-00129-unicode-smuggling.yaml +35 -62
- package/rules/skill-compromise/ATR-2026-00134-fork-claim-impersonation.yaml +24 -105
- package/rules/skill-compromise/ATR-2026-00135-exfil-url-in-instructions.yaml +27 -138
- package/rules/skill-compromise/ATR-2026-00147-fork-impersonation.yaml +35 -45
- package/rules/skill-compromise/ATR-2026-00149-skill-exfil-compound.yaml +34 -151
- package/rules/skill-compromise/ATR-2026-00151-fork-impersonation-install.yaml +39 -69
- package/rules/skill-compromise/ATR-2026-00157-timebomb-credential-exfil.yaml +41 -96
- package/rules/skill-compromise/ATR-2026-00200-agent-memory-config-tampering.yaml +41 -84
- package/rules/skill-compromise/ATR-2026-00214-credential-theft.yaml +36 -50
- package/rules/skill-compromise/ATR-2026-00217-credential-harvesting.yaml +50 -98
- package/rules/skill-compromise/ATR-2026-00220-malware-dropper.yaml +45 -85
- package/rules/skill-compromise/ATR-2026-00222-credential-harvesting.yaml +46 -85
- package/rules/skill-compromise/ATR-2026-00223-reverse-shell-dropper.yaml +47 -84
- package/rules/skill-compromise/ATR-2026-00224-credential-exfiltration.yaml +46 -92
- package/rules/skill-compromise/ATR-2026-00225-c2-communication.yaml +46 -86
- package/rules/skill-compromise/ATR-2026-00260-package-hallucination.yaml +51 -93
- package/rules/skill-compromise/ATR-2026-00262-av-evasion-code-gen.yaml +49 -90
- package/rules/skill-compromise/ATR-2026-00263-credential-file-read-gen.yaml +53 -94
- package/rules/skill-compromise/ATR-2026-00266-malware-dropper-gen.yaml +51 -92
- package/rules/skill-compromise/ATR-2026-00283-malwaregen-generic-virus-payload-request.yaml +51 -96
- package/rules/skill-compromise/ATR-2026-00398-huggingface-unsafe-model-artifact-load.yaml +57 -110
- package/rules/skill-compromise/ATR-2026-00425-nl-persistent-covert-hook.yaml +24 -65
- package/rules/skill-compromise/ATR-2026-00427-nl-fake-error-instruction-bypass.yaml +24 -65
- package/rules/skill-compromise/ATR-2026-00429-nl-skill-self-modification.yaml +24 -65
- package/rules/skill-compromise/ATR-2026-00523-claude-code-hooks-session-start-pre-trust-rce.yaml +62 -162
- package/rules/skill-compromise/ATR-2026-00525-mini-shai-hulud-gh-token-monitor-persistence.yaml +43 -175
- package/rules/skill-compromise/ATR-2026-00527-skill-silent-git-remote-mirror-exfiltration.yaml +49 -159
- package/rules/skill-compromise/ATR-2026-01755-backdoor-pot-linguistic-trigger-phrase.yaml +40 -88
- package/rules/skill-compromise/ATR-2026-01756-backdoor-pot-symbol-emoticon-trigger.yaml +27 -73
- package/rules/skill-compromise/ATR-2026-02261-code-credential-exfil-chain.yaml +35 -161
- package/rules/skill-compromise/ATR-2026-02405-malicious-skill-package-structure.yaml +51 -201
- package/rules/skill-compromise/ATR-2026-02410-malicious-artifact-on-vendor-domain.yaml +54 -204
- package/rules/skill-compromise/ATR-2026-02600-in-source-reverse-shell-assembly.yaml +106 -0
- package/rules/skill-compromise/ATR-2026-02610-evaluated-config-credential-command.yaml +109 -0
- package/rules/skill-compromise/ATR-2026-02818-skill-manifest-declares-attack-purpose.yaml +80 -0
- package/rules/skill-compromise/ATR-2026-02845-agent-cryptomining-payload.yaml +102 -0
- package/rules/tool-poisoning/ATR-2026-00010-mcp-malicious-response.yaml +80 -209
- package/rules/tool-poisoning/ATR-2026-00011-tool-output-injection.yaml +35 -144
- package/rules/tool-poisoning/ATR-2026-00012-unauthorized-tool-call.yaml +46 -144
- package/rules/tool-poisoning/ATR-2026-00013-tool-ssrf.yaml +45 -148
- package/rules/tool-poisoning/ATR-2026-00095-supply-chain-poisoning.yaml +29 -104
- package/rules/tool-poisoning/ATR-2026-00096-registry-poisoning.yaml +33 -94
- package/rules/tool-poisoning/ATR-2026-00100-consent-bypass-instruction.yaml +22 -100
- package/rules/tool-poisoning/ATR-2026-00101-trust-escalation-override.yaml +34 -54
- package/rules/tool-poisoning/ATR-2026-00103-hidden-safety-bypass-instruction.yaml +19 -89
- package/rules/tool-poisoning/ATR-2026-00105-silent-action-concealment.yaml +22 -101
- package/rules/tool-poisoning/ATR-2026-00106-schema-description-contradiction.yaml +31 -51
- package/rules/tool-poisoning/ATR-2026-00161-important-tag-cross-tool-shadowing.yaml +54 -160
- package/rules/tool-poisoning/ATR-2026-00209-mcpwn-runaway-invocation.yaml +50 -114
- package/rules/tool-poisoning/ATR-2026-00210-flowise-system-message-override.yaml +48 -111
- package/rules/tool-poisoning/ATR-2026-00259-ansi-escape-injection.yaml +48 -104
- package/rules/tool-poisoning/ATR-2026-00270-xss-in-tool-response.yaml +47 -97
- package/rules/tool-poisoning/ATR-2026-00277-echo-template-command-injection.yaml +46 -95
- package/rules/tool-poisoning/ATR-2026-00393-ansi-code-elicitation-request.yaml +51 -104
- package/rules/tool-poisoning/ATR-2026-00415-flowise-custom-mcp-stdio-rce.yaml +47 -119
- package/rules/tool-poisoning/ATR-2026-00419-cursor-mcp-zero-click-config.yaml +57 -148
- package/rules/tool-poisoning/ATR-2026-00434-mcp-remote-authorization-endpoint-command-injection.yaml +47 -122
- package/rules/tool-poisoning/ATR-2026-00435-azure-mcp-server-missing-authentication.yaml +46 -116
- package/rules/tool-poisoning/ATR-2026-00448-spring-ai-milvus-filter-injection.yaml +51 -134
- package/rules/tool-poisoning/ATR-2026-00494-garak-exploitation-mixedunassigned.yaml +47 -120
- package/rules/tool-poisoning/ATR-2026-00513-package-hallucination-exploitation.yaml +45 -117
- package/rules/tool-poisoning/ATR-2026-00521-shell-command-injection-agent-tool-context.yaml +40 -130
- package/rules/tool-poisoning/ATR-2026-00522-sql-injection-natural-language-agent-interface.yaml +64 -157
- package/rules/tool-poisoning/ATR-2026-00526-claude-code-shell-metachar-in-double-quoted-path.yaml +41 -128
- package/rules/tool-poisoning/ATR-2026-00529-litellm-proxy-sqli-cisa-kev.yaml +41 -117
- package/rules/tool-poisoning/ATR-2026-00530-ms-agent-shell-tool-unsanitized-argv-rce.yaml +40 -143
- package/rules/tool-poisoning/ATR-2026-00531-praisonai-unauthenticated-agent-api.yaml +44 -117
- package/rules/tool-poisoning/ATR-2026-00532-apache-doris-mcp-sql-injection.yaml +40 -100
- package/rules/tool-poisoning/ATR-2026-00533-apache-pinot-mcp-unauthenticated-takeover.yaml +39 -97
- package/rules/tool-poisoning/ATR-2026-00534-alibaba-rds-mcp-unauthenticated-metadata-exfil.yaml +39 -100
- package/rules/tool-poisoning/ATR-2026-00536-nginx-ui-mcp-unauthenticated-command-execution.yaml +46 -140
- package/rules/tool-poisoning/ATR-2026-00537-fastmcp-server-name-cmd-injection-windows.yaml +58 -172
- package/rules/tool-poisoning/ATR-2026-00538-langchain-chatchat-mcp-stdio-unauthenticated-rce.yaml +63 -186
- package/rules/tool-poisoning/ATR-2026-00540-praisonai-parse-mcp-command-cli-injection.yaml +50 -142
- package/rules/tool-poisoning/ATR-2026-00541-agent-zero-mcp-config-command-injection.yaml +51 -134
- package/rules/tool-poisoning/ATR-2026-00542-upsonic-mcp-command-allowlist-bypass.yaml +48 -121
- package/rules/tool-poisoning/ATR-2026-00543-litellm-mcp-server-argv-injection.yaml +52 -121
- package/rules/tool-poisoning/ATR-2026-00544-praisonai-pth-file-path-traversal-rce.yaml +49 -125
- package/rules/tool-poisoning/ATR-2026-00545-praisonai-tool-override-unauth-rce.yaml +51 -122
- package/rules/tool-poisoning/ATR-2026-00561-fastmcp-vulnerable-to-windows-command-in.yaml +36 -73
- package/rules/tool-poisoning/ATR-2026-00567-mcp-stdio-config-command-injection.yaml +29 -53
- package/rules/tool-poisoning/ATR-2026-00568-agent-ssrf-cloud-metadata-file-inclusion.yaml +27 -54
- package/rules/tool-poisoning/ATR-2026-00572-symjack-symlink-config-redirection.yaml +41 -103
- package/rules/tool-poisoning/ATR-2026-00575-miasma-npm-worm-agent-config-backdoor.yaml +41 -110
- package/rules/tool-poisoning/ATR-2026-00576-hades-agent-credential-theft.yaml +40 -125
- package/rules/tool-poisoning/ATR-2026-00577-create-mcp-server-stdio-exec-command-injection.yaml +53 -169
- package/rules/tool-poisoning/ATR-2026-00581-mcp-tool-rug-pull-post-approval-redefinition.yaml +38 -137
- package/rules/tool-poisoning/ATR-2026-00714-tool-camouflage-forced-tool-call.yaml +33 -78
- package/rules/tool-poisoning/ATR-2026-00715-tool-knowledge-hijack-identity-injection.yaml +39 -87
- package/rules/tool-poisoning/ATR-2026-00716-ipi-data-destruction-carrier.yaml +31 -76
- package/rules/tool-poisoning/ATR-2026-00720-tool-misuse-privilege-escalation-social.yaml +29 -71
- package/rules/tool-poisoning/ATR-2026-01300-mcp-notes-param-chat-history-exfil.yaml +37 -102
- package/rules/tool-poisoning/ATR-2026-01301-tool-description-exclusive-tool-override.yaml +36 -92
- package/rules/tool-poisoning/ATR-2026-01302-fake-tool-result-instruction-injection.yaml +33 -88
- package/rules/tool-poisoning/ATR-2026-01303-tool-schema-enumeration-social-engineering.yaml +55 -107
- package/rules/tool-poisoning/ATR-2026-01306-mcp-oauth-command-injection.yaml +35 -87
- package/rules/tool-poisoning/ATR-2026-01307-mcp-dns-rebinding-attack.yaml +36 -91
- package/rules/tool-poisoning/ATR-2026-01310-mcp-tool-description-compliance-history-exfil.yaml +40 -110
- package/rules/tool-poisoning/ATR-2026-01775-semantic-mcp-tool-manifest-poisoning.yaml +51 -139
- package/rules/tool-poisoning/ATR-2026-01927-mcp-server-kubernetes-kubectl-command-injection.yaml +45 -109
- package/rules/tool-poisoning/ATR-2026-01928-framelink-figma-mcp-curl-fallback-command-injection.yaml +58 -164
- package/rules/tool-poisoning/ATR-2026-01930-mcp-sampling-prompt-injection.yaml +48 -129
- package/rules/tool-poisoning/ATR-2026-01931-gemini-mcp-tool-command-injection-file-exfil.yaml +42 -113
- package/rules/tool-poisoning/ATR-2026-01932-shadow-undeclared-mcp-server-registration.yaml +43 -106
- package/rules/tool-poisoning/ATR-2026-01935-litellm-custom-code-sandbox-escape-cve-2026-40217.yaml +44 -101
- package/rules/tool-poisoning/ATR-2026-01952-praisonai-codemode-sandbox-escape-rce.yaml +34 -70
- package/rules/tool-poisoning/ATR-2026-01953-praisonai-codemode-function-ctor-sandbox-escape.yaml +61 -79
- package/rules/tool-poisoning/ATR-2026-01959-openhuman-shell-allowlist-env-prefix-bypass.yaml +36 -123
- package/rules/tool-poisoning/ATR-2026-01963-praisonai-action-orchestrator-step-target-path-traversal-rce.yaml +61 -66
- package/rules/tool-poisoning/ATR-2026-01965-flowise-custommcp-os-command-rce.yaml +39 -80
- package/rules/tool-poisoning/ATR-2026-01967-deepchat-mermaid-xss-rce-ipc-mcp-register.yaml +58 -66
- package/rules/tool-poisoning/ATR-2026-01968-deepchat-markdown-deeplink-openexternal-rce-bypass.yaml +44 -92
- package/rules/tool-poisoning/ATR-2026-01970-praisonai-filetools-normpath-path-traversal.yaml +64 -84
- package/rules/tool-poisoning/ATR-2026-01973-anythingllm-logo-endpoint-path-traversal.yaml +57 -64
- package/rules/tool-poisoning/ATR-2026-01978-anythingllm-collector-process-filename-path-traversal-delete.yaml +58 -64
- package/rules/tool-poisoning/ATR-2026-01979-pandasai-prompt-injection-dunder-sandbox-escape-rce.yaml +60 -72
- package/rules/tool-poisoning/ATR-2026-01980-agentic-flow-mcp-tool-param-command-injection.yaml +49 -99
- package/rules/tool-poisoning/ATR-2026-01982-dbt-mcp-node-selection-argument-injection.yaml +49 -102
- package/rules/tool-poisoning/ATR-2026-01983-mcp-for-stata-log-file-name-command-injection.yaml +43 -110
- package/rules/tool-poisoning/ATR-2026-01985-mcp-connect-bridge-unauth-process-spawn-rce.yaml +41 -115
- package/rules/tool-poisoning/ATR-2026-01987-langroid-sqlchatagent-prompt-to-sql-rce.yaml +53 -110
- package/rules/tool-poisoning/ATR-2026-02021-mcp-inspector-unauthenticated-proxy-rce.yaml +48 -123
- package/rules/tool-poisoning/ATR-2026-02022-curxecute-cursor-mcp-json-injected-server-rce.yaml +51 -131
- package/rules/tool-poisoning/ATR-2026-02023-escaperoute-filesystem-mcp-prefix-bypass.yaml +48 -129
- package/rules/tool-poisoning/ATR-2026-02024-escaperoute-filesystem-mcp-symlink-launchagent.yaml +49 -128
- package/rules/tool-poisoning/ATR-2026-02025-mcp-full-schema-poisoning-nondescription-field.yaml +50 -142
- package/rules/tool-poisoning/ATR-2026-02027-diagnostic-content-remediation-command-injection.yaml +58 -72
- package/rules/tool-poisoning/ATR-2026-02041-shell-injection-echo-marker-poc.yaml +32 -93
- package/rules/tool-poisoning/ATR-2026-02102-html-injection-tool-arg-approval-ui-xss.yaml +33 -107
- package/rules/tool-poisoning/ATR-2026-02141-mcp-server-config-command-execution.yaml +42 -107
- package/rules/tool-poisoning/ATR-2026-02145-python-sandbox-escape-generator-frame-introspection.yaml +36 -105
- package/rules/tool-poisoning/ATR-2026-02193-ssrf-ipv6-noncanonical-loopback-bypass.yaml +35 -86
- package/rules/tool-poisoning/ATR-2026-02194-go-init-func-process-exec-codegen-rce.yaml +35 -83
- package/rules/tool-poisoning/ATR-2026-02233-unscoped-destructive-db-request-nl.yaml +34 -95
- package/rules/tool-poisoning/ATR-2026-02260-agentjacking-remediation-framed-execution.yaml +42 -107
- package/rules/tool-poisoning/ATR-2026-02263-workflow-sql-template-expression-injection.yaml +35 -119
- package/rules/tool-poisoning/ATR-2026-02350-mcp-json-rpc-case-duplicate-key-tool-smuggling.yaml +34 -100
- package/rules/tool-poisoning/ATR-2026-02352-imap-search-command-injection-email-tool-args.yaml +32 -93
- package/rules/tool-poisoning/ATR-2026-02372-unsigned-task-feed-npm-npx-lifecycle-rce.yaml +39 -101
- package/rules/tool-poisoning/ATR-2026-02376-tool-description-conversational-trigger-history-exfil.yaml +33 -84
- package/rules/tool-poisoning/ATR-2026-02403-mcp-external-content-missing-spotlighting.yaml +52 -282
- package/rules/tool-poisoning/ATR-2026-02514-mcp-server-metadata-url-html-breakout.yaml +105 -0
- package/rules/tool-poisoning/ATR-2026-02542-pipeline-query-stage-injection.yaml +95 -0
- package/rules/tool-poisoning/ATR-2026-02557-shell-separator-in-path-typed-tool-argument.yaml +112 -0
- package/rules/tool-poisoning/ATR-2026-02666-url-userinfo-decoy-host-allowlist-bypass.yaml +101 -0
- package/rules/tool-poisoning/ATR-2026-02668-vcs-ref-name-command-substitution.yaml +98 -0
- package/rules/tool-poisoning/ATR-2026-02669-query-pipeline-stage-in-identifier-parameter.yaml +88 -0
- package/rules/tool-poisoning/ATR-2026-02682-xml-entity-expansion-bomb.yaml +98 -0
- package/rules/tool-poisoning/ATR-2026-02707-crlf-header-injection-mail-tool-argument.yaml +88 -0
- package/rules/tool-poisoning/ATR-2026-02817-untrusted-content-dictates-tool-arguments.yaml +83 -0
- package/rules/tool-poisoning/ATR-2026-02864-non-canonical-ipv4-host-in-url-tool-argument.yaml +102 -0
- package/rules/tool-poisoning/ATR-2026-02865-read-only-utility-write-flag-in-command-argument.yaml +157 -0
- package/rules/tool-poisoning/ATR-2026-02868-ssrf-ipv6-transition-address-embedded-private-ipv4.yaml +107 -0
- package/spec/README.md +8 -5
- package/spec/atr-correlation-v1.0.md +16 -4
- package/spec/atr-event-v1.0.md +13 -8
- package/spec/atr-method-v1.1.md +2 -2
- package/spec/atr-profile-v1.0.md +11 -1
- package/spec/category-registry/gemara/README.md +102 -0
- package/spec/category-registry/gemara/ai-agent-capability-catalog.yaml +157 -0
- package/spec/category-registry/gemara/atr-attack-vector-catalog.yaml +130 -0
- package/spec/category-registry/gemara/atr-detection-control-catalog.yaml +327 -0
- package/spec/category-registry/gemara/atr-threat-catalog.yaml +246 -0
- package/spec/category-registry/gemara/src/editorial.yaml +743 -0
- package/spec/mappings/README.md +1 -1
- package/spec/mappings/atr-to-nist-csf-2.0.md +5 -4
- package/spec/schema/event.schema.json +1 -1
package/dist/tc-reporter.js
CHANGED
|
@@ -5,13 +5,15 @@
|
|
|
5
5
|
* import { ATREngine, createTCReporter } from 'agent-threat-rules';
|
|
6
6
|
*
|
|
7
7
|
* const engine = new ATREngine({
|
|
8
|
-
*
|
|
8
|
+
* // No API key needed, but an endpoint is: this package ships no default
|
|
9
|
+
* // destination for detection data. ATR_TC_URL supplies it here.
|
|
10
|
+
* reporter: createTCReporter(),
|
|
9
11
|
* });
|
|
10
12
|
*
|
|
11
13
|
* // or with explicit config:
|
|
12
14
|
* const engine = new ATREngine({
|
|
13
15
|
* reporter: createTCReporter({
|
|
14
|
-
* tcUrl: 'https://
|
|
16
|
+
* tcUrl: 'https://collector.example.org',
|
|
15
17
|
* apiKey: process.env.TC_API_KEY,
|
|
16
18
|
* batchSize: 50,
|
|
17
19
|
* flushIntervalMs: 60_000,
|
|
@@ -26,12 +28,39 @@
|
|
|
26
28
|
*/
|
|
27
29
|
import { randomUUID } from 'node:crypto';
|
|
28
30
|
const MAX_BUFFER = 1000;
|
|
31
|
+
/**
|
|
32
|
+
* Where detections are sent, when reporting is switched on.
|
|
33
|
+
*
|
|
34
|
+
* There is no default endpoint, deliberately. ATR is an open standard rather
|
|
35
|
+
* than any one vendor's client, so the package must not carry a built-in
|
|
36
|
+
* destination for detection data: an operator who opts into reporting decides
|
|
37
|
+
* who receives it, and there is no address to "forget" to change. Reporting is
|
|
38
|
+
* opt-in twice over — the CLI sends nothing unless --report-to-cloud is passed,
|
|
39
|
+
* and that flag now fails loudly instead of quietly choosing a recipient.
|
|
40
|
+
*
|
|
41
|
+
* Resolution order: explicit argument, then the ATR_TC_URL environment
|
|
42
|
+
* variable. If neither is set, this throws.
|
|
43
|
+
*/
|
|
44
|
+
export class NoTcEndpointError extends Error {
|
|
45
|
+
constructor() {
|
|
46
|
+
super('Threat Cloud reporting was requested but no endpoint was given. ' +
|
|
47
|
+
'Set one with --tc-url <url> or the ATR_TC_URL environment variable. ' +
|
|
48
|
+
'ATR ships no default endpoint: you choose who receives your detections.');
|
|
49
|
+
this.name = 'NoTcEndpointError';
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
export function resolveTcUrl(explicit) {
|
|
53
|
+
const raw = explicit ?? process.env.ATR_TC_URL;
|
|
54
|
+
if (!raw || !raw.trim())
|
|
55
|
+
throw new NoTcEndpointError();
|
|
56
|
+
return raw.trim().replace(/\/+$/, '');
|
|
57
|
+
}
|
|
29
58
|
/**
|
|
30
59
|
* Create an ATRReporter that buffers detection events and POSTs them
|
|
31
60
|
* to ATR Threat Cloud in batches. Each reporter instance = one sensor endpoint.
|
|
32
61
|
*/
|
|
33
62
|
export function createTCReporter(config) {
|
|
34
|
-
const tcUrl = (config?.tcUrl
|
|
63
|
+
const tcUrl = resolveTcUrl(config?.tcUrl);
|
|
35
64
|
const apiKey = config?.apiKey ?? process.env.TC_API_KEY ?? '';
|
|
36
65
|
const batchSize = config?.batchSize ?? 50;
|
|
37
66
|
const flushIntervalMs = config?.flushIntervalMs ?? 60_000;
|
|
@@ -77,6 +106,10 @@ export function createTCReporter(config) {
|
|
|
77
106
|
method: 'POST',
|
|
78
107
|
headers: {
|
|
79
108
|
'Content-Type': 'application/json',
|
|
109
|
+
'X-ATR-Client-Id': clientId,
|
|
110
|
+
// Legacy alias. The header was named after one collector before this
|
|
111
|
+
// package stopped shipping a default endpoint; existing collectors
|
|
112
|
+
// still key off it, so both go out until they read X-ATR-Client-Id.
|
|
80
113
|
'X-Panguard-Client-Id': clientId,
|
|
81
114
|
...(apiKey ? { 'Authorization': `Bearer ${apiKey}` } : {}),
|
|
82
115
|
},
|
package/dist/tc-reporter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tc-reporter.js","sourceRoot":"","sources":["../src/tc-reporter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"tc-reporter.js","sourceRoot":"","sources":["../src/tc-reporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import type { AgentEvent, ATRRule } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* The tool name a tool event carries when its test case names no tool.
|
|
4
|
+
*
|
|
5
|
+
* A host's tool call reaches the engine through src/hook-handler.ts, which
|
|
6
|
+
* fills tool_name from the host's payload. An empty string did not stand in for
|
|
7
|
+
* that: src/engine.ts resolveField reads a field only when it is truthy, and on
|
|
8
|
+
* a tool_call event it then falls back to event.content, so a tool_name
|
|
9
|
+
* condition read the case's payload as if it were the tool's name. A name no
|
|
10
|
+
* rule is written for fills the field, as the hook does, and keeps the case's
|
|
11
|
+
* text out of it. A case whose rule keys on the tool names the tool. (The MCP
|
|
12
|
+
* scan tool, src/mcp-tools/scan.ts, builds an event of the type its caller
|
|
13
|
+
* names and sets no tool_name, so the fallback still applies there.)
|
|
14
|
+
*/
|
|
15
|
+
export declare const UNNAMED_TOOL = "atr-test-tool";
|
|
16
|
+
/**
|
|
17
|
+
* Which fields buildEventFromTestCase fills.
|
|
18
|
+
*
|
|
19
|
+
* wide every alias a rule might read the payload from, whatever the event
|
|
20
|
+
* type: the input is also offered as user_input and as tool_args, and
|
|
21
|
+
* content as agent_message. The default: atr test, the case-sensitivity
|
|
22
|
+
* gate and scripts/validate-rule-testcases.ts run a case on it.
|
|
23
|
+
* runtime what this repository's producers put on an event of the type:
|
|
24
|
+
* content; each field the case names, taken as given (whether a
|
|
25
|
+
* producer fills it is not checked), user_input counting as the input
|
|
26
|
+
* it is an alias of; user_input on an llm_input event; and on a tool
|
|
27
|
+
* event, the tool_name and tool_args src/hook-handler.ts fills (the
|
|
28
|
+
* case's own, or UNNAMED_TOOL and the input). It approximates the
|
|
29
|
+
* hook, whose PostToolUse content is the JSON of the tool's input, with
|
|
30
|
+
* the tool's output read only from tool_input.output or .response:
|
|
31
|
+
* here a case's tool_response is the content, as the engine reads a
|
|
32
|
+
* tool_response event. The MCP scan tool (src/mcp-tools/scan.ts) copies
|
|
33
|
+
* its content into user_input, agent_output and tool_response on any
|
|
34
|
+
* type; that is not modelled.
|
|
35
|
+
*/
|
|
36
|
+
export type TestCaseFields = 'wide' | 'runtime';
|
|
37
|
+
export interface TestCaseEventOptions {
|
|
38
|
+
readonly fields?: TestCaseFields;
|
|
39
|
+
/** Build an event of this type instead of the one the rule's agent_source names. */
|
|
40
|
+
readonly type?: AgentEvent['type'];
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Build the AgentEvent a declared test case describes.
|
|
44
|
+
*
|
|
45
|
+
* Extracted from src/cli.ts so scripts/validate-rule-testcases.ts can use the
|
|
46
|
+
* identical routing without importing the CLI (whose module body runs main()).
|
|
47
|
+
*
|
|
48
|
+
* WHY IT HAS TO BE SHARED. The validator used to extract text with its own
|
|
49
|
+
* chain — `tool_response ?? input ?? content ?? tool_description` — which reads
|
|
50
|
+
* none of tool_args, tool_name, user_input or agent_output. 194 test cases
|
|
51
|
+
* across 27 rules name their payload under one of those, so every one resolved
|
|
52
|
+
* to the empty string, and the two harnesses disagreed about the same rule:
|
|
53
|
+
* `pga test` passed while the validator reported every true positive as NOT
|
|
54
|
+
* triggered.
|
|
55
|
+
*
|
|
56
|
+
* Both directions were wrong and the quiet one is worse. A true positive scored
|
|
57
|
+
* empty looks like a broken rule and invites someone to "fix" a rule that
|
|
58
|
+
* detects fine. A true NEGATIVE scored empty cannot trigger, so it passes — a
|
|
59
|
+
* rule's declared non-detections confirmed by a harness that never read them.
|
|
60
|
+
*
|
|
61
|
+
* One builder, two callers. A second copy drifts the moment either is edited.
|
|
62
|
+
*/
|
|
63
|
+
export declare function buildEventFromTestCase(tc: Record<string, unknown>, rule: ATRRule, options?: TestCaseEventOptions): AgentEvent;
|
|
64
|
+
/**
|
|
65
|
+
* The rule as `atr test` puts it in the engine: status experimental, so a draft
|
|
66
|
+
* or deprecated rule is not skipped. Its agent_source.type stays as declared:
|
|
67
|
+
* the engine maps an extended type itself (RUNTIME_SOURCE_TYPE in
|
|
68
|
+
* src/engine.ts), and atr test reports a rule of a type the engine withholds
|
|
69
|
+
* (WITHHELD_SOURCE_TYPES) as unevaluable rather than running its cases.
|
|
70
|
+
*/
|
|
71
|
+
export declare function asTestedRule(rule: ATRRule): ATRRule;
|
|
72
|
+
/** The slice of ATREngine a test case is run on. */
|
|
73
|
+
export interface TestCaseEngine {
|
|
74
|
+
evaluate(event: AgentEvent): readonly {
|
|
75
|
+
readonly rule: {
|
|
76
|
+
readonly id: string;
|
|
77
|
+
};
|
|
78
|
+
}[];
|
|
79
|
+
scanSkill(text: string): readonly {
|
|
80
|
+
readonly rule: {
|
|
81
|
+
readonly id: string;
|
|
82
|
+
};
|
|
83
|
+
}[];
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* `atr test`'s verdict on one case: the wide event the case describes through
|
|
87
|
+
* evaluate(), or the case's text through scanSkill(). The engine holds the rule;
|
|
88
|
+
* the rule passed here routes the event.
|
|
89
|
+
*/
|
|
90
|
+
export declare function caseMatches(engine: TestCaseEngine, rule: ATRRule, tc: Record<string, unknown>): boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Whether a case matches an event shaped the way this repository's producers
|
|
93
|
+
* shape one: for every event type, the runtime field set (a tool event as the
|
|
94
|
+
* hook builds it, any other with the content, each with the fields the case
|
|
95
|
+
* names), or the case's text as a skill document, user_input included as the
|
|
96
|
+
* input's alias. A true positive that passes caseMatches and not this matches
|
|
97
|
+
* only through a value the wide event copies into a field. Not modelled: the
|
|
98
|
+
* MCP scan tool's copy of its content into user_input, agent_output and
|
|
99
|
+
* tool_response on any type, and an events file src/cli/scan-handler.ts passes
|
|
100
|
+
* on as written.
|
|
101
|
+
*/
|
|
102
|
+
export declare function caseMatchesAtRuntime(engine: TestCaseEngine, rule: ATRRule, tc: Record<string, unknown>): boolean;
|
|
103
|
+
/** The payload a report shows for a case: the first it declares, an object as JSON. */
|
|
104
|
+
export declare function caseLabel(tc: Record<string, unknown>): string;
|
|
105
|
+
//# sourceMappingURL=testcase-event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testcase-event.d.ts","sourceRoot":"","sources":["../src/testcase-event.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAY,MAAM,YAAY,CAAC;AAEhE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,kBAAkB,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,CAAC;AAEhD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IACjC,oFAAoF;IACpF,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3B,IAAI,EAAE,OAAO,EACb,OAAO,GAAE,oBAAyB,GACjC,UAAU,CA6KZ;AAuDD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAEnD;AAED,oDAAoD;AACpD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE;YAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,EAAE,CAAC;IACnF,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE;YAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,EAAE,CAAC;CAChF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAGvG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAMhH;AAuBD,uFAAuF;AACvF,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAI7D"}
|
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
import { RUNTIME_SOURCE_TYPE } from "./engine.js";
|
|
2
|
+
/**
|
|
3
|
+
* The tool name a tool event carries when its test case names no tool.
|
|
4
|
+
*
|
|
5
|
+
* A host's tool call reaches the engine through src/hook-handler.ts, which
|
|
6
|
+
* fills tool_name from the host's payload. An empty string did not stand in for
|
|
7
|
+
* that: src/engine.ts resolveField reads a field only when it is truthy, and on
|
|
8
|
+
* a tool_call event it then falls back to event.content, so a tool_name
|
|
9
|
+
* condition read the case's payload as if it were the tool's name. A name no
|
|
10
|
+
* rule is written for fills the field, as the hook does, and keeps the case's
|
|
11
|
+
* text out of it. A case whose rule keys on the tool names the tool. (The MCP
|
|
12
|
+
* scan tool, src/mcp-tools/scan.ts, builds an event of the type its caller
|
|
13
|
+
* names and sets no tool_name, so the fallback still applies there.)
|
|
14
|
+
*/
|
|
15
|
+
export const UNNAMED_TOOL = 'atr-test-tool';
|
|
16
|
+
/**
|
|
17
|
+
* Build the AgentEvent a declared test case describes.
|
|
18
|
+
*
|
|
19
|
+
* Extracted from src/cli.ts so scripts/validate-rule-testcases.ts can use the
|
|
20
|
+
* identical routing without importing the CLI (whose module body runs main()).
|
|
21
|
+
*
|
|
22
|
+
* WHY IT HAS TO BE SHARED. The validator used to extract text with its own
|
|
23
|
+
* chain — `tool_response ?? input ?? content ?? tool_description` — which reads
|
|
24
|
+
* none of tool_args, tool_name, user_input or agent_output. 194 test cases
|
|
25
|
+
* across 27 rules name their payload under one of those, so every one resolved
|
|
26
|
+
* to the empty string, and the two harnesses disagreed about the same rule:
|
|
27
|
+
* `pga test` passed while the validator reported every true positive as NOT
|
|
28
|
+
* triggered.
|
|
29
|
+
*
|
|
30
|
+
* Both directions were wrong and the quiet one is worse. A true positive scored
|
|
31
|
+
* empty looks like a broken rule and invites someone to "fix" a rule that
|
|
32
|
+
* detects fine. A true NEGATIVE scored empty cannot trigger, so it passes — a
|
|
33
|
+
* rule's declared non-detections confirmed by a harness that never read them.
|
|
34
|
+
*
|
|
35
|
+
* One builder, two callers. A second copy drifts the moment either is edited.
|
|
36
|
+
*/
|
|
37
|
+
export function buildEventFromTestCase(tc, rule, options = {}) {
|
|
38
|
+
// Stringify any object values
|
|
39
|
+
const str = (v) => {
|
|
40
|
+
if (v === undefined || v === null)
|
|
41
|
+
return '';
|
|
42
|
+
if (typeof v === 'string')
|
|
43
|
+
return v;
|
|
44
|
+
return JSON.stringify(v);
|
|
45
|
+
};
|
|
46
|
+
// Extract fields, handling multiple test case formats:
|
|
47
|
+
// Object-style: input: { tool_name: "...", tool_args: "...", response: "..." }
|
|
48
|
+
// Flat-style: input: "...", tool_response: "...", tool_name: "..."
|
|
49
|
+
// Tool-call-style: tool_call: { name: "...", args: "..." }
|
|
50
|
+
// Accept `user_input:` as a top-level alias for `input:` — several tool_call
|
|
51
|
+
// rules write their natural-language TPs as `- user_input: "..."`, which the
|
|
52
|
+
// harness previously ignored (it only read `input`), building an EMPTY event so
|
|
53
|
+
// the rule's own documented attack tested as not_triggered (a false failure that
|
|
54
|
+
// left the rule looking broken while it detects fine in production).
|
|
55
|
+
const rawInput = tc['input'] ?? tc['user_input'];
|
|
56
|
+
let input = '';
|
|
57
|
+
let toolName = str(tc['tool_name']);
|
|
58
|
+
let toolArgs = str(tc['tool_args']);
|
|
59
|
+
let toolResponse = str(tc['tool_response']);
|
|
60
|
+
const agentOutput = str(tc['agent_output']);
|
|
61
|
+
// A live engine field (engine.ts resolveField, case 'agent_message') that the
|
|
62
|
+
// canonical corpus shape populates, but which no rule keys on yet. Routed
|
|
63
|
+
// here so the first rule that does is not greeted by a harness that silently
|
|
64
|
+
// hands it an empty event.
|
|
65
|
+
const agentMessage = str(tc['agent_message']);
|
|
66
|
+
const toolDescription = str(tc['tool_description']);
|
|
67
|
+
const rawContent = str(tc['content']);
|
|
68
|
+
// Handle tool_call: { name, args } format (used by tool_call rules like ATR-2026-00098)
|
|
69
|
+
const rawToolCall = tc['tool_call'];
|
|
70
|
+
if (rawToolCall !== null && rawToolCall !== undefined && typeof rawToolCall === 'object' && !Array.isArray(rawToolCall)) {
|
|
71
|
+
const tcObj = rawToolCall;
|
|
72
|
+
if (tcObj['name'] && !toolName)
|
|
73
|
+
toolName = str(tcObj['name']);
|
|
74
|
+
if (tcObj['args'] && !toolArgs)
|
|
75
|
+
toolArgs = str(tcObj['args']);
|
|
76
|
+
}
|
|
77
|
+
if (rawInput !== null && rawInput !== undefined && typeof rawInput === 'object' && !Array.isArray(rawInput)) {
|
|
78
|
+
const inputObj = rawInput;
|
|
79
|
+
if (inputObj['tool_name'] && !toolName)
|
|
80
|
+
toolName = str(inputObj['tool_name']);
|
|
81
|
+
if (inputObj['tool_args'] && !toolArgs)
|
|
82
|
+
toolArgs = str(inputObj['tool_args']);
|
|
83
|
+
// Handle 'response' as alias for 'tool_response' (used in ATR-065 etc.)
|
|
84
|
+
if (inputObj['response'] && !toolResponse)
|
|
85
|
+
toolResponse = str(inputObj['response']);
|
|
86
|
+
if (inputObj['tool_response'] && !toolResponse)
|
|
87
|
+
toolResponse = str(inputObj['tool_response']);
|
|
88
|
+
// For object inputs, use tool_args as the primary string input.
|
|
89
|
+
// If no tool_args, only use JSON-stringified input as fallback when there's
|
|
90
|
+
// no other meaningful field (tool_response/response) extracted.
|
|
91
|
+
if (toolArgs) {
|
|
92
|
+
input = toolArgs;
|
|
93
|
+
}
|
|
94
|
+
else if (!toolResponse) {
|
|
95
|
+
input = str(rawInput);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
input = str(rawInput);
|
|
100
|
+
}
|
|
101
|
+
// Infer event type from rule's agent_source and test case structure
|
|
102
|
+
const sourceType = rule.agent_source?.type ?? 'llm_io';
|
|
103
|
+
const SOURCE_TO_EVENT = {
|
|
104
|
+
llm_io: 'llm_input',
|
|
105
|
+
tool_call: 'tool_call',
|
|
106
|
+
mcp_exchange: 'tool_response',
|
|
107
|
+
agent_behavior: 'agent_behavior',
|
|
108
|
+
multi_agent_comm: 'multi_agent_message',
|
|
109
|
+
};
|
|
110
|
+
// An extended type (context_window, skill_lifecycle, ...) is built as an event
|
|
111
|
+
// of the base type the engine admits it on (RUNTIME_SOURCE_TYPE).
|
|
112
|
+
const baseSourceType = Object.hasOwn(RUNTIME_SOURCE_TYPE, sourceType)
|
|
113
|
+
? RUNTIME_SOURCE_TYPE[sourceType]
|
|
114
|
+
: sourceType;
|
|
115
|
+
const type = options.type ?? SOURCE_TO_EVENT[baseSourceType] ?? 'llm_input';
|
|
116
|
+
const toolEvent = type === 'tool_call' || type === 'tool_response';
|
|
117
|
+
// NOTE: previously, a tool_call rule with a plain-string TP was downgraded to
|
|
118
|
+
// an llm_input event. That mis-tested tool_call-native rules: a shell command or
|
|
119
|
+
// SQL string IS a tool invocation, and evaluating it as llm_input made the engine
|
|
120
|
+
// apply its cross-context confidence penalty, dropping the match below threshold
|
|
121
|
+
// so the rule's own documented attack tested as not_triggered (false failure that
|
|
122
|
+
// silently left broken rules in the enforce lane). We now keep the native
|
|
123
|
+
// tool_call type — the string flows in via `content` (below), and tool_name is
|
|
124
|
+
// pinned to UNNAMED_TOOL (below) so the engine's tool_name fallback never
|
|
125
|
+
// treats the content as a tool name. Plain-string TPs of tool_call rules
|
|
126
|
+
// therefore test in their real (native) context.
|
|
127
|
+
// Determine the primary content based on what the rule conditions check
|
|
128
|
+
// Problem 2 & 3: For rules that check tool_response, the tool_response
|
|
129
|
+
// should be the primary content when the event type resolves tool_response from content
|
|
130
|
+
let content;
|
|
131
|
+
if (toolResponse && type === 'tool_response') {
|
|
132
|
+
// If event type is tool_response, engine resolves field:tool_response from event.content
|
|
133
|
+
content = toolResponse;
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
content = input || toolDescription || rawContent || toolResponse || agentOutput || agentMessage || '';
|
|
137
|
+
}
|
|
138
|
+
const fields = {};
|
|
139
|
+
// Populate ALL known field aliases so the engine can resolve any field name
|
|
140
|
+
if (input)
|
|
141
|
+
fields['user_input'] = input;
|
|
142
|
+
if (toolResponse)
|
|
143
|
+
fields['tool_response'] = toolResponse;
|
|
144
|
+
if (agentOutput)
|
|
145
|
+
fields['agent_output'] = agentOutput;
|
|
146
|
+
if (agentMessage)
|
|
147
|
+
fields['agent_message'] = agentMessage;
|
|
148
|
+
if (toolDescription)
|
|
149
|
+
fields['tool_description'] = toolDescription;
|
|
150
|
+
// A tool event always names its tool (UNNAMED_TOOL when the case does not).
|
|
151
|
+
// The empty string this used to set did not prevent the engine's fallback
|
|
152
|
+
// from reading event.content as the tool_name of a tool_call event.
|
|
153
|
+
fields['tool_name'] = toolName || (toolEvent ? UNNAMED_TOOL : '');
|
|
154
|
+
// Production ALWAYS populates tool_args: src/hook-handler.ts builds
|
|
155
|
+
// `tool_args: JSON.stringify(toolInput)` for BOTH the PreToolUse (tool_call)
|
|
156
|
+
// and the PostToolUse (tool_response) event. The engine resolves this field as
|
|
157
|
+
// `event.fields.tool_args ?? (event.type === 'tool_call' ? event.content :
|
|
158
|
+
// undefined)` (src/engine.ts resolveField), so a test case that supplies only
|
|
159
|
+
// a plain `input:` string leaves tool_args unresolvable on every non-tool_call
|
|
160
|
+
// event and EVERY `field: tool_args` condition silently evaluates to false.
|
|
161
|
+
// The rule then reports not_triggered on its own documented attack while
|
|
162
|
+
// detecting it correctly in production — a harness defect that reads exactly
|
|
163
|
+
// like a broken rule and invites weakening a rule that is right. 40 rules
|
|
164
|
+
// declare `field: tool_args`.
|
|
165
|
+
// This is the test-case-runner twin of the measurement-shape defect that
|
|
166
|
+
// scripts/lib/corpus-event.ts fixed for the FP gate: a true positive must be
|
|
167
|
+
// exercised on the same shape the benign corpus is charged against.
|
|
168
|
+
// Deliberately narrower than that harness's wide shape: only the INPUT string
|
|
169
|
+
// is offered as tool_args. A `tool_response:` test case asserts what a tool
|
|
170
|
+
// RETURNED, which is not an argument, so pouring it into tool_args would let a
|
|
171
|
+
// tool_args layer pass a TP for the wrong reason.
|
|
172
|
+
const toolArgsValue = toolArgs || input;
|
|
173
|
+
if (toolArgsValue)
|
|
174
|
+
fields['tool_args'] = toolArgsValue;
|
|
175
|
+
// For content-based rules, set content and agent_message fields. A case that
|
|
176
|
+
// names its own agent_message keeps it: copying the content over it ran such a
|
|
177
|
+
// case on its input there.
|
|
178
|
+
fields['content'] = content;
|
|
179
|
+
fields['agent_message'] = agentMessage || content;
|
|
180
|
+
// v1.1 trace-method rules evaluate over a span DAG (OpenInference), not text.
|
|
181
|
+
// When the rule declares method: trace and the test input is a JSON trace
|
|
182
|
+
// ({"spans":[...]}), parse it into event.trace so the engine's trace
|
|
183
|
+
// evaluator can run. Without this, trace rules can never satisfy their own
|
|
184
|
+
// declared true_positives: the harness would otherwise feed the raw JSON as
|
|
185
|
+
// text to the pattern fallback, whose regex expects a pre-computed synthetic
|
|
186
|
+
// verdict field that is absent from a raw trace.
|
|
187
|
+
let trace;
|
|
188
|
+
if (rule.detection?.method === 'trace') {
|
|
189
|
+
let parsed = rawInput && typeof rawInput === 'object' && !Array.isArray(rawInput) ? rawInput : undefined;
|
|
190
|
+
if (parsed === undefined) {
|
|
191
|
+
try {
|
|
192
|
+
parsed = JSON.parse(input);
|
|
193
|
+
}
|
|
194
|
+
catch {
|
|
195
|
+
parsed = undefined; // input is not a JSON trace; leave trace unset
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
if (parsed && typeof parsed === 'object' && Array.isArray(parsed.spans)) {
|
|
199
|
+
trace = parsed;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
return {
|
|
203
|
+
type,
|
|
204
|
+
timestamp: new Date().toISOString(),
|
|
205
|
+
content,
|
|
206
|
+
fields: options.fields === 'runtime'
|
|
207
|
+
? runtimeFields({ type, toolEvent, content, input, toolName, toolArgs, toolResponse, agentOutput, agentMessage, toolDescription })
|
|
208
|
+
: fields,
|
|
209
|
+
sessionId: 'test-session',
|
|
210
|
+
agentId: 'test-agent',
|
|
211
|
+
...(trace ? { trace } : {}),
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* The "runtime" field set (TestCaseFields): content; each field the case names,
|
|
216
|
+
* with the value it names; the input as user_input on an llm_input event, and on
|
|
217
|
+
* no other, since `user_input:` in a case is the input's alias; and for a tool
|
|
218
|
+
* event, a tool name and tool arguments, which src/hook-handler.ts fills on
|
|
219
|
+
* PreToolUse and PostToolUse alike (the case's own, or UNNAMED_TOOL and the input).
|
|
220
|
+
*/
|
|
221
|
+
function runtimeFields(v) {
|
|
222
|
+
const entries = [
|
|
223
|
+
['content', v.content],
|
|
224
|
+
['user_input', v.type === 'llm_input' ? v.input : ''],
|
|
225
|
+
['tool_response', v.toolResponse],
|
|
226
|
+
['agent_output', v.agentOutput],
|
|
227
|
+
['agent_message', v.agentMessage],
|
|
228
|
+
['tool_description', v.toolDescription],
|
|
229
|
+
['tool_name', v.toolName || (v.toolEvent ? UNNAMED_TOOL : '')],
|
|
230
|
+
['tool_args', v.toolArgs || (v.toolEvent ? v.input : '')],
|
|
231
|
+
];
|
|
232
|
+
return Object.fromEntries(entries.filter(([, value]) => value !== ''));
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Every type an AgentEvent can have. The engine's source filter decides which of
|
|
236
|
+
* them a rule runs on: an llm_io rule also runs on tool_response events, an
|
|
237
|
+
* mcp_exchange rule on tool_call events, and every rule on an mcp_exchange event
|
|
238
|
+
* (src/cli/scan-handler.ts builds those), whose type maps to no source. An
|
|
239
|
+
* extended agent_source type runs where its base type does (RUNTIME_SOURCE_TYPE
|
|
240
|
+
* in src/engine.ts), and one the engine withholds (WITHHELD_SOURCE_TYPES) on an
|
|
241
|
+
* mcp_exchange event alone.
|
|
242
|
+
*/
|
|
243
|
+
const EVENT_TYPES = [
|
|
244
|
+
'llm_input',
|
|
245
|
+
'llm_output',
|
|
246
|
+
'tool_call',
|
|
247
|
+
'tool_response',
|
|
248
|
+
'agent_behavior',
|
|
249
|
+
'multi_agent_message',
|
|
250
|
+
'mcp_exchange',
|
|
251
|
+
];
|
|
252
|
+
/**
|
|
253
|
+
* The rule as `atr test` puts it in the engine: status experimental, so a draft
|
|
254
|
+
* or deprecated rule is not skipped. Its agent_source.type stays as declared:
|
|
255
|
+
* the engine maps an extended type itself (RUNTIME_SOURCE_TYPE in
|
|
256
|
+
* src/engine.ts), and atr test reports a rule of a type the engine withholds
|
|
257
|
+
* (WITHHELD_SOURCE_TYPES) as unevaluable rather than running its cases.
|
|
258
|
+
*/
|
|
259
|
+
export function asTestedRule(rule) {
|
|
260
|
+
return { ...rule, status: 'experimental' };
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* `atr test`'s verdict on one case: the wide event the case describes through
|
|
264
|
+
* evaluate(), or the case's text through scanSkill(). The engine holds the rule;
|
|
265
|
+
* the rule passed here routes the event.
|
|
266
|
+
*/
|
|
267
|
+
export function caseMatches(engine, rule, tc) {
|
|
268
|
+
const document = String(tc['input'] ?? tc['tool_response'] ?? tc['agent_output'] ?? '');
|
|
269
|
+
return firesOn(engine, rule, buildEventFromTestCase(tc, rule)) || skillMatches(engine, rule, document);
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Whether a case matches an event shaped the way this repository's producers
|
|
273
|
+
* shape one: for every event type, the runtime field set (a tool event as the
|
|
274
|
+
* hook builds it, any other with the content, each with the fields the case
|
|
275
|
+
* names), or the case's text as a skill document, user_input included as the
|
|
276
|
+
* input's alias. A true positive that passes caseMatches and not this matches
|
|
277
|
+
* only through a value the wide event copies into a field. Not modelled: the
|
|
278
|
+
* MCP scan tool's copy of its content into user_input, agent_output and
|
|
279
|
+
* tool_response on any type, and an events file src/cli/scan-handler.ts passes
|
|
280
|
+
* on as written.
|
|
281
|
+
*/
|
|
282
|
+
export function caseMatchesAtRuntime(engine, rule, tc) {
|
|
283
|
+
const document = String(tc['input'] ?? tc['user_input'] ?? tc['tool_response'] ?? tc['agent_output'] ?? '');
|
|
284
|
+
return (EVENT_TYPES.some((type) => firesOn(engine, rule, buildEventFromTestCase(tc, rule, { fields: 'runtime', type }))) ||
|
|
285
|
+
skillMatches(engine, rule, document));
|
|
286
|
+
}
|
|
287
|
+
function firesOn(engine, rule, event) {
|
|
288
|
+
return engine.evaluate(event).some((m) => m.rule.id === rule.id);
|
|
289
|
+
}
|
|
290
|
+
function skillMatches(engine, rule, document) {
|
|
291
|
+
return document !== '' && engine.scanSkill(document).some((m) => m.rule.id === rule.id);
|
|
292
|
+
}
|
|
293
|
+
/** The fields a report names a case by, in the order it looks for one. */
|
|
294
|
+
const LABEL_FIELDS = [
|
|
295
|
+
'input',
|
|
296
|
+
'user_input',
|
|
297
|
+
'tool_args',
|
|
298
|
+
'tool_response',
|
|
299
|
+
'agent_output',
|
|
300
|
+
'tool_description',
|
|
301
|
+
'agent_message',
|
|
302
|
+
'content',
|
|
303
|
+
'tool_call',
|
|
304
|
+
];
|
|
305
|
+
/** The payload a report shows for a case: the first it declares, an object as JSON. */
|
|
306
|
+
export function caseLabel(tc) {
|
|
307
|
+
const value = LABEL_FIELDS.map((key) => tc[key]).find((v) => v !== undefined && v !== null && v !== '');
|
|
308
|
+
if (value === undefined)
|
|
309
|
+
return '';
|
|
310
|
+
return typeof value === 'string' ? value : JSON.stringify(value);
|
|
311
|
+
}
|
|
312
|
+
//# sourceMappingURL=testcase-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testcase-event.js","sourceRoot":"","sources":["../src/testcase-event.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tier0-invariant.d.ts","sourceRoot":"","sources":["../src/tier0-invariant.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAwB,MAAM,YAAY,CAAC;AA6B7E,0EAA0E;AAC1E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;CAC5C;AAED,MAAM,MAAM,sBAAsB,GAC9B,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,eAAe,GACf,qBAAqB,GACrB,eAAe,CAAC;AAEpB,2CAA2C;AAC3C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,sBAAsB,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAMD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqC;gBAEnD,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,aAAa,EAAE;IAY3E;;;OAGG;IACH,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,kBAAkB,EAAE;IAsGvD,6DAA6D;IAC7D,cAAc,CAAC,SAAS,EAAE,kBAAkB,GAAG,QAAQ;
|
|
1
|
+
{"version":3,"file":"tier0-invariant.d.ts","sourceRoot":"","sources":["../src/tier0-invariant.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAwB,MAAM,YAAY,CAAC;AA6B7E,0EAA0E;AAC1E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;CAC5C;AAED,MAAM,MAAM,sBAAsB,GAC9B,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,eAAe,GACf,qBAAqB,GACrB,eAAe,CAAC;AAEpB,2CAA2C;AAC3C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,sBAAsB,CAAC;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAMD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqC;gBAEnD,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,aAAa,EAAE;IAY3E;;;OAGG;IACH,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,kBAAkB,EAAE;IAsGvD,6DAA6D;IAC7D,cAAc,CAAC,SAAS,EAAE,kBAAkB,GAAG,QAAQ;IAiCvD,2CAA2C;IAC3C,OAAO,CAAC,cAAc;CAKvB"}
|
package/dist/tier0-invariant.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tier0-invariant.js","sourceRoot":"","sources":["../src/tier0-invariant.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tier0-invariant.js","sourceRoot":"","sources":["../src/tier0-invariant.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tier1-blacklist.d.ts","sourceRoot":"","sources":["../src/tier1-blacklist.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAW,WAAW,EAAE,MAAM,YAAY,CAAC;AAMjE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,+DAA+D;IAC/D,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IACpD,wCAAwC;IACxC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,2BAA2B;IAC3B,IAAI,IAAI,MAAM,CAAC;CAChB;AAMD,qBAAa,iBAAkB,YAAW,iBAAiB;IACzD,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,MAAM,CAA8B;gBAEhC,OAAO,CAAC,EAAE,SAAS,cAAc,EAAE;IAW/C,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAK7C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,IAAI,IAAI,MAAM;IAId,6CAA6C;IAC7C,WAAW,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,iBAAiB;CAGnE;AAMD,sDAAsD;AACtD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"tier1-blacklist.d.ts","sourceRoot":"","sources":["../src/tier1-blacklist.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAW,WAAW,EAAE,MAAM,YAAY,CAAC;AAMjE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,+DAA+D;IAC/D,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IACpD,wCAAwC;IACxC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,2BAA2B;IAC3B,IAAI,IAAI,MAAM,CAAC;CAChB;AAMD,qBAAa,iBAAkB,YAAW,iBAAiB;IACzD,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,MAAM,CAA8B;gBAEhC,OAAO,CAAC,EAAE,SAAS,cAAc,EAAE;IAW/C,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAK7C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,IAAI,IAAI,MAAM;IAId,6CAA6C;IAC7C,WAAW,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,GAAG,iBAAiB;CAGnE;AAMD,sDAAsD;AACtD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,GAAG,QAAQ,CA+BnE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,MAAM,GAAG,SAAS,CAYjI"}
|
package/dist/tier1-blacklist.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tier1-blacklist.js","sourceRoot":"","sources":["../src/tier1-blacklist.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tier1-blacklist.js","sourceRoot":"","sources":["../src/tier1-blacklist.ts"],"names":[],"mappings":"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"}
|