openaca 0.1.0b1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. docs/frameworks/README.md +24 -0
  2. docs/frameworks/mitre-atlas.md +212 -0
  3. docs/frameworks/owasp-agentic-ai-top-10-2026.md +363 -0
  4. docs/frameworks/owasp-agentic-skills-top-10-2026.md +337 -0
  5. docs/frameworks/owasp-llm-top-10-2025.md +350 -0
  6. docs/frameworks/owasp-mcp-top-10-2025.md +358 -0
  7. openaca-0.1.0b1.dist-info/METADATA +464 -0
  8. openaca-0.1.0b1.dist-info/RECORD +161 -0
  9. openaca-0.1.0b1.dist-info/WHEEL +4 -0
  10. openaca-0.1.0b1.dist-info/entry_points.txt +2 -0
  11. openaca-0.1.0b1.dist-info/licenses/LICENSE +201 -0
  12. overlays/CVE-2026-20205.yaml +9 -0
  13. overlays/GHSA-3ch2-jxxc-v4xf.yaml +12 -0
  14. overlays/GHSA-3q26-f695-pp76.yaml +12 -0
  15. overlays/GHSA-6xpm-ggf7-wc3p.yaml +12 -0
  16. overlays/GHSA-m4qw-j7mx-qv6h.yaml +12 -0
  17. overlays/GHSA-rwc2-f344-q6w6.yaml +12 -0
  18. overlays/MAL-2024-8094.yaml +16 -0
  19. overlays/MAL-2024-9212.yaml +14 -0
  20. overlays/MAL-2024-9263.yaml +14 -0
  21. overlays/MAL-2025-15093.yaml +17 -0
  22. overlays/MAL-2025-190848.yaml +19 -0
  23. overlays/MAL-2025-190867.yaml +16 -0
  24. overlays/MAL-2025-190868.yaml +16 -0
  25. overlays/MAL-2025-190869.yaml +16 -0
  26. overlays/MAL-2025-190902.yaml +16 -0
  27. overlays/MAL-2025-190908.yaml +16 -0
  28. overlays/MAL-2025-190909.yaml +17 -0
  29. overlays/MAL-2025-190918.yaml +17 -0
  30. overlays/MAL-2025-190922.yaml +16 -0
  31. overlays/MAL-2025-190923.yaml +16 -0
  32. overlays/MAL-2025-190943.yaml +19 -0
  33. overlays/MAL-2025-191051.yaml +19 -0
  34. overlays/MAL-2025-191052.yaml +19 -0
  35. overlays/MAL-2025-191053.yaml +19 -0
  36. overlays/MAL-2025-191107.yaml +19 -0
  37. overlays/MAL-2025-191195.yaml +18 -0
  38. overlays/MAL-2025-191196.yaml +17 -0
  39. overlays/MAL-2025-191332.yaml +14 -0
  40. overlays/MAL-2025-191465.yaml +19 -0
  41. overlays/MAL-2025-191527.yaml +16 -0
  42. overlays/MAL-2025-191647.yaml +17 -0
  43. overlays/MAL-2025-191648.yaml +17 -0
  44. overlays/MAL-2025-191788.yaml +17 -0
  45. overlays/MAL-2025-191789.yaml +19 -0
  46. overlays/MAL-2025-191924.yaml +19 -0
  47. overlays/MAL-2025-191925.yaml +19 -0
  48. overlays/MAL-2025-191926.yaml +19 -0
  49. overlays/MAL-2025-191927.yaml +19 -0
  50. overlays/MAL-2025-191929.yaml +19 -0
  51. overlays/MAL-2025-191930.yaml +19 -0
  52. overlays/MAL-2025-191931.yaml +19 -0
  53. overlays/MAL-2025-192601.yaml +19 -0
  54. overlays/MAL-2025-192746.yaml +18 -0
  55. overlays/MAL-2025-192747.yaml +18 -0
  56. overlays/MAL-2025-2298.yaml +16 -0
  57. overlays/MAL-2025-26053.yaml +16 -0
  58. overlays/MAL-2025-26054.yaml +17 -0
  59. overlays/MAL-2025-3471.yaml +16 -0
  60. overlays/MAL-2025-4045.yaml +14 -0
  61. overlays/MAL-2025-41387.yaml +14 -0
  62. overlays/MAL-2025-41934.yaml +14 -0
  63. overlays/MAL-2025-41939.yaml +17 -0
  64. overlays/MAL-2025-41940.yaml +17 -0
  65. overlays/MAL-2025-42116.yaml +17 -0
  66. overlays/MAL-2025-42192.yaml +15 -0
  67. overlays/MAL-2025-4223.yaml +16 -0
  68. overlays/MAL-2025-42690.yaml +15 -0
  69. overlays/MAL-2025-4635.yaml +18 -0
  70. overlays/MAL-2025-46986.yaml +19 -0
  71. overlays/MAL-2025-47076.yaml +18 -0
  72. overlays/MAL-2025-47098.yaml +18 -0
  73. overlays/MAL-2025-47326.yaml +19 -0
  74. overlays/MAL-2025-47327.yaml +19 -0
  75. overlays/MAL-2025-47604.yaml +20 -0
  76. overlays/MAL-2025-47838.yaml +19 -0
  77. overlays/MAL-2025-47907.yaml +14 -0
  78. overlays/MAL-2025-47929.yaml +20 -0
  79. overlays/MAL-2025-48030.yaml +16 -0
  80. overlays/MAL-2025-48558.yaml +17 -0
  81. overlays/MAL-2025-48761.yaml +19 -0
  82. overlays/MAL-2025-48786.yaml +17 -0
  83. overlays/MAL-2025-49378.yaml +16 -0
  84. overlays/MAL-2025-49379.yaml +18 -0
  85. overlays/MAL-2025-49383.yaml +20 -0
  86. overlays/MAL-2025-5286.yaml +18 -0
  87. overlays/MAL-2025-5813.yaml +19 -0
  88. overlays/MAL-2025-6007.yaml +16 -0
  89. overlays/MAL-2025-6115.yaml +16 -0
  90. overlays/MAL-2025-6139.yaml +19 -0
  91. overlays/MAL-2025-635.yaml +17 -0
  92. overlays/MAL-2026-1151.yaml +16 -0
  93. overlays/MAL-2026-1321.yaml +16 -0
  94. overlays/MAL-2026-1380.yaml +16 -0
  95. overlays/MAL-2026-1642.yaml +17 -0
  96. overlays/MAL-2026-1930.yaml +19 -0
  97. overlays/MAL-2026-1990.yaml +16 -0
  98. overlays/MAL-2026-2004.yaml +16 -0
  99. overlays/MAL-2026-2005.yaml +16 -0
  100. overlays/MAL-2026-2006.yaml +16 -0
  101. overlays/MAL-2026-2144.yaml +18 -0
  102. overlays/MAL-2026-227.yaml +16 -0
  103. overlays/MAL-2026-229.yaml +16 -0
  104. overlays/MAL-2026-2315.yaml +20 -0
  105. overlays/MAL-2026-2328.yaml +19 -0
  106. overlays/MAL-2026-248.yaml +14 -0
  107. overlays/MAL-2026-2669.yaml +16 -0
  108. overlays/MAL-2026-2974.yaml +19 -0
  109. overlays/MAL-2026-3280.yaml +19 -0
  110. overlays/MAL-2026-3448.yaml +19 -0
  111. overlays/MAL-2026-3588.yaml +19 -0
  112. overlays/MAL-2026-3589.yaml +19 -0
  113. overlays/MAL-2026-3811.yaml +14 -0
  114. overlays/MAL-2026-405.yaml +16 -0
  115. overlays/MAL-2026-603.yaml +16 -0
  116. overlays/MAL-2026-844.yaml +15 -0
  117. overlays/MAL-2026-862.yaml +16 -0
  118. overlays/MAL-2026-904.yaml +14 -0
  119. schema/openaca.schema.json +154 -0
  120. tools/__init__.py +1 -0
  121. tools/cli.py +34 -0
  122. tools/component_ref.py +63 -0
  123. tools/cvss.py +154 -0
  124. tools/export.py +161 -0
  125. tools/finding_output.py +144 -0
  126. tools/lint.py +215 -0
  127. tools/matcher.py +225 -0
  128. tools/osv_federation.py +144 -0
  129. tools/overlays.py +83 -0
  130. tools/parsers/__init__.py +264 -0
  131. tools/parsers/claude_command_agent.py +168 -0
  132. tools/parsers/claude_install.py +741 -0
  133. tools/parsers/claude_plugin.py +201 -0
  134. tools/parsers/claude_settings.py +62 -0
  135. tools/parsers/claude_skill.py +91 -0
  136. tools/parsers/gitignore.py +102 -0
  137. tools/parsers/hooks_json.py +145 -0
  138. tools/parsers/mcp_json.py +393 -0
  139. tools/parsers/package_json.py +32 -0
  140. tools/parsers/package_lock_json.py +66 -0
  141. tools/parsers/pyproject_toml.py +99 -0
  142. tools/parsers/settings_layers.py +155 -0
  143. tools/parsers/uv_lock.py +51 -0
  144. tools/posture/__init__.py +145 -0
  145. tools/posture/finding.py +65 -0
  146. tools/posture/immutability.py +122 -0
  147. tools/posture/rules/__init__.py +1 -0
  148. tools/posture/rules/insecure_transport.py +84 -0
  149. tools/posture/rules/mutable_install.py +161 -0
  150. tools/promote.py +108 -0
  151. tools/render.py +980 -0
  152. tools/sarif.py +207 -0
  153. tools/scan.py +663 -0
  154. tools/seed/__init__.py +1 -0
  155. tools/seed/__main__.py +683 -0
  156. tools/seed/llm.py +422 -0
  157. tools/seed/validator.py +79 -0
  158. tools/severity.py +109 -0
  159. tools/templates/advisory.html.j2 +117 -0
  160. tools/templates/index.html.j2 +68 -0
  161. tools/templates/style.css +118 -0
@@ -0,0 +1,24 @@
1
+ # Framework References
2
+
3
+ These files are curated policy inputs for OpenACA overlay review and future
4
+ LLM-assisted candidate annotation. They intentionally summarize the
5
+ frameworks instead of mirroring full upstream documents.
6
+
7
+ Use them as stable prompt context when drafting:
8
+
9
+ - `database_specific.openaca.taxonomies`
10
+ - `database_specific.openaca.threat_kind`
11
+
12
+ Rules for updates:
13
+
14
+ - Keep source URLs and access dates current.
15
+ - Prefer concise mapping guidance over long copied text.
16
+ - Treat changes as review-worthy because they can change corpus
17
+ classification behavior.
18
+ - Do not duplicate upstream-owned CWE mappings into OpenACA overlays by
19
+ default; use `supplemental_taxonomies` only for reviewed OpenACA-owned
20
+ additions.
21
+
22
+ Overlay taxonomy IDs use lowercase prefixes where the schema expects
23
+ them, for example `asi04`, `mcp04:2025`, `ast02:2026`, and
24
+ `llm03:2025`.
@@ -0,0 +1,212 @@
1
+ # MITRE ATLAS
2
+
3
+ Sources:
4
+ - https://atlas.mitre.org/
5
+ - https://github.com/mitre-atlas/atlas-data
6
+ - https://raw.githubusercontent.com/mitre-atlas/atlas-data/main/dist/ATLAS.yaml
7
+
8
+ ATLAS data version referenced: 5.6.0
9
+
10
+ Accessed: 2026-05-13
11
+
12
+ Use MITRE ATLAS for adversary behavior that is specific to AI, ML, LLM,
13
+ agent, RAG, AI DevOps, AI service, or AI artifact systems. Do not force
14
+ an ATLAS mapping onto ordinary software malware, package vulnerabilities,
15
+ or generic web-app bugs unless the OSV record shows that the AI system is
16
+ part of the attack path.
17
+
18
+ ATLAS describes attacker techniques. An OpenACA overlay should map an ATLAS
19
+ technique only when the advisory evidence shows the attacker behavior,
20
+ not merely because the vulnerable package is used by an agent.
21
+
22
+ ## Selected IDs For OpenACA Review
23
+
24
+ | Overlay ID | Name | Use When |
25
+ | --- | --- | --- |
26
+ | `AML.T0010` | AI Supply Chain Compromise | The issue compromises AI-specific hardware, data, software, models, tools, or artifacts before they are used by a victim system. |
27
+ | `AML.T0010.001` | AI Software | A malicious or compromised software package is specifically AI, LLM, agent, MCP, model, data, or AI DevOps software. |
28
+ | `AML.T0010.002` | Data | The issue affects data used to train, tune, evaluate, retrieve, or operate an AI system. |
29
+ | `AML.T0010.003` | Model | The issue affects a model artifact, model weights, model package, or model provenance. |
30
+ | `AML.T0010.005` | AI Agent Tool | The supply-chain target is an agent tool such as an MCP server, agent plugin, hosted tool endpoint, or package that expands an agent's tool access. |
31
+ | `AML.T0011.002` | Poisoned AI Agent Tool | The victim invokes a malicious or poisoned tool through an agent interaction. |
32
+ | `AML.T0051` | LLM Prompt Injection | Malicious prompt content causes an LLM or agent to ignore instructions, bypass controls, or take unintended actions. |
33
+ | `AML.T0051.000` | Direct | The adversary submits the malicious prompt directly to the LLM or agent. |
34
+ | `AML.T0051.001` | Indirect | The malicious prompt is embedded in retrieved content, documents, webpages, tool metadata, code comments, or another data channel. |
35
+ | `AML.T0051.002` | Triggered | The injected prompt is dormant until a later user action, workflow event, retrieval, or tool invocation activates it. |
36
+ | `AML.T0053` | AI Agent Tool Invocation | The adversary causes an agent to call a tool it can access. |
37
+ | `AML.T0074` | Masquerading | Names, domains, package metadata, registry identity, branding, or file paths are crafted to look legitimate. |
38
+ | `AML.T0085` | Data from AI Services | The adversary uses access to an AI-enabled service to collect sensitive data. |
39
+ | `AML.T0085.001` | AI Agent Tools | The data collection path is an agent tool such as a repo, file, email, CRM, docs, chat, shell, browser, or SaaS connector. |
40
+ | `AML.T0086` | Exfiltration via AI Agent Tool Invocation | The adversary uses a write-capable agent tool to transmit sensitive data out of the victim environment. |
41
+ | `AML.T0096` | AI Service API | The adversary uses an AI service API as a command, control, or attack communication channel. |
42
+ | `AML.T0098` | AI Agent Tool Credential Harvesting | The adversary uses agent tool access to retrieve credentials, tokens, keys, session data, or auth material. |
43
+ | `AML.T0099` | AI Agent Tool Data Poisoning | The adversary plants malicious content where an agent tool can retrieve it. |
44
+ | `AML.T0100` | AI Agent Clickbait | Deceptive web content is designed to lure computer-use agents or AI browsers into unintended actions. |
45
+ | `AML.T0101` | Data Destruction via AI Agent Tool Invocation | The adversary causes an agent tool to delete, overwrite, encrypt, or otherwise destroy data. |
46
+ | `AML.T0103` | Deploy AI Agent | The adversary launches an agent in the victim environment to act on their behalf. |
47
+ | `AML.T0104` | Publish Poisoned AI Agent Tool | The adversary publishes a malicious agent tool for others to install or connect. |
48
+ | `AML.T0105` | Escape to Host | The attack breaks out of a sandbox, container, VM, or other isolation boundary used by an AI system or agent. |
49
+ | `AML.T0108` | AI Agent | The adversary abuses an existing AI agent as a command-and-control mechanism. |
50
+ | `AML.T0109` | AI Supply Chain Rug Pull | The adversary first builds trust in an AI component, then ships a malicious update. |
51
+ | `AML.T0110` | AI Agent Tool Poisoning | The adversary compromises or alters a tool already integrated with an agent so that it can influence future agent behavior. |
52
+
53
+ ## Classification Rules
54
+
55
+ ### Supply Chain
56
+
57
+ Use `AML.T0010` when the attack path depends on compromised AI supply.
58
+ Prefer a subtechnique when one is precise:
59
+
60
+ - Use `AML.T0010.001` for malicious AI software, LLM libraries, agent
61
+ frameworks, MCP servers, AI coding assistant extensions, model-serving
62
+ components, or AI DevOps packages.
63
+ - Use `AML.T0010.005` when the compromised supply-chain item is an
64
+ agent tool. This is the best default for malicious MCP servers and
65
+ malicious tool plugins that an agent can install or connect to.
66
+ - Use `AML.T0104` when the advisory is about publishing the poisoned
67
+ tool into a registry, repository, catalog, or hosted remote-tool
68
+ directory. Pair it with `AML.T0010.005` when the published artifact is
69
+ also the compromised supply-chain item.
70
+ - Use `AML.T0109` only when the record shows a trust-building phase
71
+ followed by a malicious update. Do not use it for one-off typosquats
72
+ or newly-published malicious packages.
73
+ - Use `AML.T0074` in addition to supply-chain IDs when the evidence
74
+ includes typosquatting, namesquatting, misleading branding, copied
75
+ package metadata, lookalike domains, or deceptive artifact names.
76
+
77
+ Do not use ATLAS supply-chain mappings for a normal CVE in a common
78
+ library merely because that library appears in an agent dependency tree.
79
+ The advisory needs AI, agent, model, tool, or AI DevOps relevance.
80
+
81
+ ### Prompt Injection
82
+
83
+ Use `AML.T0051` when prompt content is the attack mechanism. Choose a
84
+ subtechnique by where the malicious prompt enters the system:
85
+
86
+ - `AML.T0051.000`: attacker directly sends the prompt to the agent,
87
+ chatbot, API, or model.
88
+ - `AML.T0051.001`: prompt is hidden in content later retrieved or read
89
+ by the model, including webpages, documents, tickets, emails, repo
90
+ files, tool descriptions, MCP metadata, rules files, comments, or RAG
91
+ content.
92
+ - `AML.T0051.002`: prompt is planted earlier and activates only after a
93
+ later event, retrieval, user action, or workflow step.
94
+
95
+ Prompt injection often co-occurs with `AML.T0053`, `AML.T0086`,
96
+ `AML.T0099`, or `AML.T0101`. Add those only when the record shows the
97
+ agent tool behavior, data poisoning, exfiltration, or destructive action.
98
+
99
+ ### Agent Tool Abuse
100
+
101
+ Use these mappings when the advisory evidence shows agent tool access,
102
+ not merely the presence of an MCP package:
103
+
104
+ - `AML.T0053`: the adversary causes an agent to invoke a tool. This is a
105
+ broad action mapping; add a more specific impact technique when known.
106
+ - `AML.T0085.001`: the tool is used to retrieve sensitive data from
107
+ connected systems such as repos, document stores, email, chat, ticketing
108
+ systems, browsers, shells, or local files.
109
+ - `AML.T0086`: the tool transmits data out of the victim environment
110
+ through an apparently legitimate write action, such as sending email,
111
+ creating a document, posting to chat, opening a URL, or writing to an
112
+ attacker-controlled system.
113
+ - `AML.T0098`: the target data is credentials or auth material.
114
+ - `AML.T0101`: the tool performs destructive mutation such as deleting,
115
+ overwriting, encrypting, or corrupting data.
116
+
117
+ For a vulnerable MCP server that permits arbitrary command execution,
118
+ map to `AML.T0053` only when the exploit path involves the agent invoking
119
+ the server's tool. If the advisory is a conventional server-side command
120
+ injection with no agent invocation semantics, omit ATLAS unless another
121
+ AI-specific behavior is present.
122
+
123
+ ### Agent Tool Poisoning And Data Poisoning
124
+
125
+ Use `AML.T0110` when an existing agent tool is compromised or altered
126
+ after it is integrated. This is about persistence or long-term influence
127
+ through a trusted tool.
128
+
129
+ Use `AML.T0011.002` when the victim invokes the poisoned tool and that
130
+ tool execution is the immediate entry point.
131
+
132
+ Use `AML.T0099` when malicious content is planted where an agent tool can
133
+ retrieve it, such as shared documents, repo files, websites, issues,
134
+ tickets, emails, notes, vector-store content, or RAG sources. Add
135
+ `AML.T0051.001` when the planted content includes prompt injection.
136
+
137
+ ### Agent Runtime And Host Boundary
138
+
139
+ Use `AML.T0108` when the adversary uses an existing AI agent as a
140
+ command-and-control mechanism, especially when the agent is instructed to
141
+ retrieve commands, execute tools, suppress reporting, or maintain
142
+ control.
143
+
144
+ Use `AML.T0103` when the adversary deploys a new agent into the victim
145
+ environment to perform actions on their behalf. Do not use it when the
146
+ victim merely installs a malicious package that happens to be an agent
147
+ tool.
148
+
149
+ Use `AML.T0105` when the attack escapes an isolation boundary used by an
150
+ AI system, such as an agent sandbox, container, browser isolation layer,
151
+ VM, local execution jail, or tool runner. Pair it with ATT&CK container
152
+ escape mappings outside the overlay if upstream already provides them.
153
+
154
+ ### Web And API Abuse
155
+
156
+ Use `AML.T0100` when the advisory describes web content crafted to bait a
157
+ computer-use agent or AI browser into actions such as clicking, copying,
158
+ navigating, approving, downloading, or pasting commands. This should not
159
+ be used for ordinary phishing unless the target is an AI browsing or
160
+ computer-use agent.
161
+
162
+ Use `AML.T0096` when an AI service API is the adversary communication
163
+ channel or command path. This is for attacker traffic blending into AI
164
+ service API usage, not for every vulnerability in an API-backed AI app.
165
+
166
+ ## Evidence Cues
167
+
168
+ The following advisory evidence is usually enough to consider an ATLAS
169
+ mapping:
170
+
171
+ - Package or component is explicitly an MCP server, agent tool, AI
172
+ plugin, AI coding assistant extension, model package, RAG connector,
173
+ LLM framework, model-serving component, or AI DevOps tool.
174
+ - Details mention agent tool invocation, tool descriptions, tool calls,
175
+ MCP, remote tools, local tools, computer-use agents, AI browsers,
176
+ model context, RAG ingestion, prompt injection, jailbreak, tool
177
+ poisoning, or agent configuration changes.
178
+ - Impact involves agent permissions, source-code access through tools,
179
+ credential access through tools, exfiltration through tool outputs,
180
+ destructive tool actions, AI service command channels, model/data
181
+ poisoning, or malicious AI artifact publication.
182
+
183
+ Evidence that is usually not enough:
184
+
185
+ - Generic package malware with no AI, LLM, model, MCP, or agent
186
+ behavior.
187
+ - Ordinary dependency vulnerabilities discovered in software used by an
188
+ agent.
189
+ - Generic command injection, SSRF, path traversal, or XSS with no
190
+ agent-specific exploit path.
191
+ - CWE or ATT&CK mappings from upstream that describe the underlying
192
+ software weakness but not AI-specific adversary behavior.
193
+
194
+ ## Example Notes
195
+
196
+ - Malicious MCP package published to npm: `AML.T0010.005` and
197
+ `AML.T0104`; add `AML.T0074` if namesquatting is explicit.
198
+ - Benign MCP server compromised after installation so it silently steals
199
+ data: `AML.T0110`; add `AML.T0086` if the exfiltration path is a
200
+ write-capable tool action.
201
+ - Prompt injection in an MCP tool description: `AML.T0051.001`; add
202
+ `AML.T0053` if it causes a tool call.
203
+ - Prompt injection in a webpage that makes a browser agent click a
204
+ button: `AML.T0051.001` plus `AML.T0100`; add `AML.T0053` if a tool
205
+ invocation is the operative action.
206
+ - Agent retrieves poisoned instructions from a shared document through a
207
+ connector: `AML.T0099`; add `AML.T0051.001` if the content is prompt
208
+ injection.
209
+ - Prompt injection causes an agent to delete files through a shell tool:
210
+ `AML.T0051.001`, `AML.T0053`, and `AML.T0101`.
211
+ - Vulnerable lodash in an app dependency tree: no ATLAS mapping by
212
+ default.
@@ -0,0 +1,363 @@
1
+ # OWASP Agentic AI Top 10 2026
2
+
3
+ Sources:
4
+ - https://genai.owasp.org/2025/12/09/owasp-top-10-for-agentic-applications-the-benchmark-for-agentic-security-in-the-age-of-autonomous-ai/
5
+
6
+ Accessed: 2026-05-13
7
+
8
+ Use this as OpenACA's broad agent-system taxonomy. Prefer it for risks that
9
+ depend on autonomy, tool use, delegated identity, memory, multi-step
10
+ workflow, inter-agent communication, or human trust in agent output.
11
+
12
+ The OWASP guide frames agentic risks across inputs, integration and
13
+ processing, and outputs. OpenACA overlays should map to ASI when the
14
+ agentic behavior changes the security meaning of an underlying
15
+ vulnerability or malicious component.
16
+
17
+ ## `asi01` — Agent Goal Hijack
18
+
19
+ Definition: Attacker-controlled content changes the agent's objective,
20
+ task selection, planning path, or decision flow. The key distinction
21
+ from ordinary prompt injection is agentic impact: multi-step behavior,
22
+ tool calls, delegated actions, or goal drift change what the agent tries
23
+ to accomplish.
24
+
25
+ Use when:
26
+ - Hidden instructions in documents, web pages, emails, tool outputs,
27
+ RAG content, templates, or peer-agent messages redirect goals or
28
+ planning.
29
+ - The attack causes the agent to pursue a different user intent,
30
+ authorize a goal shift, or select unsafe actions.
31
+ - Prompt injection affects agent planning or autonomous action, not only
32
+ a single model response.
33
+
34
+ Do not use when:
35
+ - The issue is persistent memory corruption; consider `asi06`.
36
+ - The issue is an agent becoming misaligned without active attacker
37
+ steering; consider `asi10`.
38
+ - The record only says "prompt injection" with no agent goal, plan, or
39
+ tool behavior.
40
+
41
+ Evidence patterns:
42
+ - "goal", "intent", "prompt injection", "hidden instruction",
43
+ "indirect prompt", "RAG", "web content", "email", "calendar",
44
+ "document", "override", "planner", "goal drift".
45
+
46
+ Related mappings:
47
+ - `llm01:2025`
48
+ - `mcp03:2025` when MCP tool metadata carries the injection.
49
+ - `mcp10:2025` when unsafe context injection is the path.
50
+ - `AML.T0051.*`
51
+
52
+ ## `asi02` — Tool Misuse and Exploitation
53
+
54
+ Definition: The agent uses a legitimate tool in an unsafe, excessive, or
55
+ unintended way while staying within its granted capability. The weakness
56
+ is tool choice, tool chaining, argument forwarding, or missing guardrails
57
+ around legitimate tool use.
58
+
59
+ Use when:
60
+ - Prompt injection, misleading tool output, or ambiguous instruction
61
+ causes unsafe invocation of legitimate tools.
62
+ - Tool access is over-scoped for the task, but the agent acts within
63
+ already granted authority.
64
+ - The attack chains tools, over-invokes costly APIs, exfiltrates through
65
+ allowed egress, or drives destructive operations without separate
66
+ privilege escalation.
67
+
68
+ Do not use when:
69
+ - The tool use depends on delegated identity/credential abuse; consider
70
+ `asi03`.
71
+ - The tool path reaches arbitrary code/command execution; include or
72
+ prefer `asi05`.
73
+ - The tool implementation or package itself is malicious; consider
74
+ `asi04`.
75
+
76
+ Evidence patterns:
77
+ - "tool misuse", "tool chaining", "over-scoped tool", "unsafe tool",
78
+ "approved tool", "DNS exfiltration", "cost spike", "loop", "delete",
79
+ "send", "refund", "external transfer", "tool pivot".
80
+
81
+ Related mappings:
82
+ - `llm06:2025`
83
+ - `mcp02:2025` for scope creep.
84
+ - `mcp03:2025` for tool metadata poisoning.
85
+ - `mcp05:2025` when misuse becomes command execution.
86
+
87
+ ## `asi03` — Identity and Privilege Abuse
88
+
89
+ Definition: Agent identity, delegated credentials, trust relationships,
90
+ or role inheritance are abused to bypass authorization. The agent may
91
+ act as a confused deputy or carry cached privileges into a weaker
92
+ context.
93
+
94
+ Use when:
95
+ - Agents inherit excessive privileges, reuse cached credentials, or
96
+ share identity across users/sessions/tasks.
97
+ - Cross-agent trust lets a low-privilege actor route requests through a
98
+ high-privilege agent.
99
+ - Authorization is checked at workflow start but drifts before
100
+ execution.
101
+ - Agent descriptors, cards, or personas are forged to gain trust.
102
+
103
+ Do not use when:
104
+ - The agent merely uses a legitimate overbroad tool without identity or
105
+ credential abuse; consider `asi02`.
106
+ - A secret is exposed but not used for agent privilege abuse; consider
107
+ `mcp01:2025` or `llm02:2025`.
108
+
109
+ Evidence patterns:
110
+ - "delegated", "credential", "OAuth", "token", "privilege",
111
+ "inheritance", "confused deputy", "agent identity", "agent card",
112
+ "persona", "TOCTOU", "authorization drift", "device code",
113
+ "cross-agent trust".
114
+
115
+ Related mappings:
116
+ - `mcp01:2025`
117
+ - `mcp02:2025`
118
+ - `mcp07:2025`
119
+ - `llm02:2025`
120
+ - `llm06:2025`
121
+
122
+ ## `asi04` — Agentic Supply Chain Vulnerabilities
123
+
124
+ Definition: Agent components, tools, plugins, MCP servers, models,
125
+ prompts, datasets, agent descriptors, registries, dependencies, or
126
+ update channels are malicious, compromised, tampered, impersonated, or
127
+ loaded from untrusted sources.
128
+
129
+ Use when:
130
+ - A package, plugin, MCP server, model/tool registry, prompt template,
131
+ agent card, or dependency in the agent composition chain is malicious
132
+ or compromised.
133
+ - Typosquatting, impersonation, dependency confusion, poisoned updates,
134
+ compromised registries, or dynamic runtime loading affect agent
135
+ behavior.
136
+ - The component can insert hidden instructions, backdoors, unsafe tools,
137
+ or deceptive behavior into the agent execution chain.
138
+
139
+ Do not use when:
140
+ - The vulnerable package is ordinary software with no agent-stack role.
141
+ - The issue is only command injection in a legitimate component; include
142
+ `asi05` and use `asi04` only if supply-chain compromise is also part
143
+ of the evidence.
144
+
145
+ Evidence patterns:
146
+ - "supply chain", "malicious package", "typosquat", "impersonating",
147
+ "plugin", "MCP server", "registry", "agent card", "tool descriptor",
148
+ "poisoned prompt", "dependency confusion", "compromised update",
149
+ "backdoor", "untrusted source".
150
+
151
+ Related mappings:
152
+ - `llm03:2025`
153
+ - `mcp04:2025`
154
+ - `ast02:2026` when a skill distribution path is involved.
155
+ - `AML.T0010.001`
156
+
157
+ ## `asi05` — Unexpected Code Execution
158
+
159
+ Definition: Agent workflows reach unintended code, command, template,
160
+ interpreter, deserialization, package-install, or sandbox execution. The
161
+ execution may be generated by the agent, supplied by attacker content, or
162
+ triggered through tool chains.
163
+
164
+ Use when:
165
+ - Prompt/tool input reaches shell, subprocess, eval, template, dynamic
166
+ import, package manager, deserialization, or generated-code execution.
167
+ - The record describes RCE, arbitrary code execution, command injection,
168
+ unsafe code generation, unsafe object deserialization, memory-system
169
+ eval, or hostile install/import execution.
170
+ - A multi-tool chain converts otherwise legitimate operations into code
171
+ execution.
172
+
173
+ Do not use when:
174
+ - The package is malicious but the record only shows supply-chain
175
+ delivery and no execution path; prefer `asi04`.
176
+ - The issue is unsafe use of a legitimate tool without an execution
177
+ sink; consider `asi02`.
178
+
179
+ Evidence patterns:
180
+ - "RCE", "remote code execution", "arbitrary code", "command
181
+ injection", "shell", "subprocess", "eval", "deserialization",
182
+ "template injection", "install", "import", "lockfile poisoning",
183
+ "generated code", "sandbox escape".
184
+
185
+ Related mappings:
186
+ - `llm05:2025`
187
+ - `llm01:2025` when prompt injection triggers execution.
188
+ - `mcp05:2025`
189
+ - `ast05:2026` when unsafe skill loading/deserialization is the path.
190
+
191
+ ## `asi06` — Memory and Context Poisoning
192
+
193
+ Definition: Stored memory, summaries, embeddings, RAG data, session
194
+ state, shared context, or long-term knowledge is poisoned so future
195
+ agent reasoning, planning, or tool use becomes unsafe.
196
+
197
+ Use when:
198
+ - Malicious data enters memory, vector stores, RAG sources, summaries,
199
+ uploaded files, API feeds, shared context, or peer-agent exchanges and
200
+ persists across turns/sessions.
201
+ - The poisoned context later influences tool selection, goal
202
+ interpretation, data disclosure, or code generation.
203
+ - Context poisoning is gradual, persistent, or shared across agents/users.
204
+
205
+ Do not use when:
206
+ - The manipulation is one-shot prompt injection with no persistence;
207
+ consider `asi01`.
208
+ - The effect is primarily a downstream failure propagation after
209
+ poisoning; consider adding `asi08`.
210
+
211
+ Evidence patterns:
212
+ - "memory", "context", "RAG", "embedding", "vector", "retrieval",
213
+ "summary", "persistent", "shared context", "long-term memory",
214
+ "poisoning", "stored", "drift".
215
+
216
+ Related mappings:
217
+ - `llm01:2025`
218
+ - `llm04:2025`
219
+ - `llm08:2025`
220
+ - `mcp10:2025`
221
+
222
+ ## `asi07` — Insecure Inter-Agent Communication
223
+
224
+ Definition: Agent-to-agent communication lacks authentication,
225
+ integrity, authorization, origin validation, or trust boundaries. A
226
+ forged, compromised, or malicious peer agent can alter messages,
227
+ impersonate another agent, poison shared communication, or relay unsafe
228
+ instructions.
229
+
230
+ Use when:
231
+ - A2A, peer-agent, swarm, delegation, or multi-agent protocol messages
232
+ are spoofed, replayed, tampered, or trusted without verification.
233
+ - Agent cards/descriptors advertise false identity or capabilities.
234
+ - One agent relays malicious instructions or sensitive data to another
235
+ due to weak communication controls.
236
+
237
+ Do not use when:
238
+ - The issue is a single-agent tool misuse with no inter-agent channel.
239
+ - The issue is normal MCP client/server invocation rather than
240
+ agent-to-agent trust; use MCP taxonomy where clearer.
241
+
242
+ Evidence patterns:
243
+ - "agent-to-agent", "A2A", "peer agent", "agent card", "swarm",
244
+ "delegation", "message spoofing", "replay", "mTLS", "attestation",
245
+ "signed messages", "routing", "inter-agent".
246
+
247
+ Related mappings:
248
+ - `llm02:2025`
249
+ - `llm06:2025`
250
+ - `asi03` when identity/privilege is abused.
251
+ - `asi10` when the peer is a rogue agent.
252
+
253
+ ## `asi08` — Cascading Failures
254
+
255
+ Definition: A localized error, hallucination, poisoned context, unsafe
256
+ tool action, or compromised agent propagates through multi-step
257
+ workflows, tool chains, or connected agents, amplifying impact beyond
258
+ the original failure.
259
+
260
+ Use when:
261
+ - The record shows a chain reaction across agents, tools, memory,
262
+ services, CI/CD, cloud resources, or tenants.
263
+ - A poisoned output is trusted by downstream agents/systems and causes
264
+ repeated, amplified, or compounding actions.
265
+ - Failures become difficult to trace, repudiate, or stop because of
266
+ autonomy, parallelism, or poor observability.
267
+
268
+ Do not use when:
269
+ - The impact remains local to one component and no propagation is
270
+ described.
271
+ - The finding is merely high severity; cascading requires spread or
272
+ amplification.
273
+
274
+ Evidence patterns:
275
+ - "cascade", "chain reaction", "downstream", "propagation", "multi-step",
276
+ "parallel agents", "tenant", "CI/CD", "cloud infra", "blast radius",
277
+ "untraceable", "repudiation".
278
+
279
+ Related mappings:
280
+ - `llm06:2025`
281
+ - `llm04:2025`
282
+ - `asi06` when poisoned memory/context starts the cascade.
283
+ - `mcp08:2025` when missing telemetry impairs response.
284
+
285
+ ## `asi09` — Human-Agent Trust Exploitation
286
+
287
+ Definition: Attackers exploit human over-trust in agent outputs,
288
+ approvals, explanations, or apparent competence. The agent persuades,
289
+ conceals, misrepresents, or overwhelms the human in the loop.
290
+
291
+ Use when:
292
+ - The record describes false or misleading agent output causing a human
293
+ to approve, deploy, publish, transfer, or trust unsafe actions.
294
+ - The agent fabricates results, hides mistakes, presents unsafe diffs as
295
+ safe, or generates convincing but malicious recommendations.
296
+ - Human approval exists but is made ineffective by framing, volume,
297
+ fatigue, or deception.
298
+
299
+ Do not use when:
300
+ - The agent directly executes the harmful action without relying on
301
+ human trust.
302
+ - The issue is ordinary misinformation without security impact.
303
+
304
+ Evidence patterns:
305
+ - "human approval", "HITL", "trust", "misleading", "fraudulent",
306
+ "hallucinated", "approval fatigue", "dry-run", "diff", "recommend",
307
+ "convince", "hide mistake".
308
+
309
+ Related mappings:
310
+ - `llm09:2025`
311
+ - `llm05:2025`
312
+ - `asi01` when the human is influenced after goal hijack.
313
+
314
+ ## `asi10` — Rogue Agents
315
+
316
+ Definition: An agent operates outside intended boundaries while
317
+ appearing legitimate. Rogue behavior may arise from compromise,
318
+ misalignment, collusion, self-replication, unauthorized provisioning, or
319
+ behavioral drift without direct per-action attacker control.
320
+
321
+ Use when:
322
+ - An agent persistently acts against owner intent, evades monitoring,
323
+ spawns unauthorized replicas, colludes with peers, or maintains
324
+ unauthorized access.
325
+ - A malicious or compromised agent advertises legitimate capabilities and
326
+ participates in workflows as if trusted.
327
+ - The central risk is behavioral integrity of the agent itself.
328
+
329
+ Do not use when:
330
+ - A normal agent is briefly hijacked by prompt injection; consider
331
+ `asi01`.
332
+ - The issue is a malicious package or component before it becomes an
333
+ autonomous agent participant; consider `asi04`.
334
+
335
+ Evidence patterns:
336
+ - "rogue agent", "self-replication", "unauthorized replica",
337
+ "persistence", "collusion", "behavioral drift", "misaligned",
338
+ "quarantine", "kill switch", "attestation", "watchdog", "agent card".
339
+
340
+ Related mappings:
341
+ - `llm02:2025`
342
+ - `llm09:2025`
343
+ - `asi07` when inter-agent trust is abused.
344
+ - `AML.T0074` when the agent masquerades as legitimate.
345
+
346
+ ## General Mapping Notes
347
+
348
+ - `asi04` and `asi05` often co-occur for malicious agent-stack packages:
349
+ `asi04` describes compromised composition; `asi05` describes the
350
+ execution sink.
351
+ - Do not use `asi04` for every vulnerable dependency. The component must
352
+ be part of the agent stack or agent-reachable composition path.
353
+ - `asi01`, `asi06`, and `asi10` should not be conflated:
354
+ - `asi01`: active steering of goals/plans.
355
+ - `asi06`: persistent poisoning of memory/context.
356
+ - `asi10`: rogue or misaligned agent behavior.
357
+ - `asi02`, `asi03`, and `asi05` should be separated:
358
+ - `asi02`: unsafe use of legitimate already-authorized tools.
359
+ - `asi03`: identity, privilege, or delegation abuse.
360
+ - `asi05`: code/command execution sink.
361
+ - The OWASP guide maps ASI entries to LLM Top 10 categories. Use those
362
+ cross-mappings as hints, but only include LLM taxonomy when the record
363
+ has LLM/GenAI relevance beyond the agent-specific mapping.