pwn 0.5.695 → 0.5.696
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.
- checksums.yaml +4 -4
- data/documentation/Session-Workflow.md +2 -1
- data/etc/default_skills/pwn/ai/agent/loop/SKILL.md +1 -1
- data/etc/default_skills/pwn/ai/red_team/SKILL.md +1 -1
- data/etc/default_skills/pwn/ai/red_team/agent_protocol_abuse/SKILL.md +53 -0
- data/etc/default_skills/pwn/ai/red_team/agent_protocol_abuse/references/security.md +3 -0
- data/etc/default_skills/pwn/ai/red_team/agent_protocol_abuse/references/urls.md +6 -0
- data/etc/default_skills/pwn/ai/red_team/data_and_model_poisoning/SKILL.md +53 -0
- data/etc/default_skills/pwn/ai/red_team/data_and_model_poisoning/references/security.md +3 -0
- data/etc/default_skills/pwn/ai/red_team/data_and_model_poisoning/references/urls.md +6 -0
- data/etc/default_skills/pwn/ai/red_team/hidden_context_exposure/SKILL.md +53 -0
- data/etc/default_skills/pwn/ai/red_team/hidden_context_exposure/references/security.md +3 -0
- data/etc/default_skills/pwn/ai/red_team/hidden_context_exposure/references/urls.md +6 -0
- data/etc/default_skills/pwn/ai/red_team/memory_poisoning/SKILL.md +53 -0
- data/etc/default_skills/pwn/ai/red_team/memory_poisoning/references/security.md +3 -0
- data/etc/default_skills/pwn/ai/red_team/memory_poisoning/references/urls.md +6 -0
- data/etc/default_skills/pwn/ai/red_team/multimodal_injection/SKILL.md +53 -0
- data/etc/default_skills/pwn/ai/red_team/multimodal_injection/references/security.md +3 -0
- data/etc/default_skills/pwn/ai/red_team/multimodal_injection/references/urls.md +6 -0
- data/etc/default_skills/pwn/ai/red_team/rag_poisoning/SKILL.md +53 -0
- data/etc/default_skills/pwn/ai/red_team/rag_poisoning/references/security.md +3 -0
- data/etc/default_skills/pwn/ai/red_team/rag_poisoning/references/urls.md +6 -0
- data/etc/default_skills/pwn/ai/red_team/supply_chain/SKILL.md +53 -0
- data/etc/default_skills/pwn/ai/red_team/supply_chain/references/security.md +3 -0
- data/etc/default_skills/pwn/ai/red_team/supply_chain/references/urls.md +6 -0
- data/etc/default_skills/pwn/ai/red_team/unbounded_consumption/SKILL.md +53 -0
- data/etc/default_skills/pwn/ai/red_team/unbounded_consumption/references/security.md +3 -0
- data/etc/default_skills/pwn/ai/red_team/unbounded_consumption/references/urls.md +6 -0
- data/etc/default_skills/pwn/ai/red_team/vector_and_embedding_weaknesses/SKILL.md +53 -0
- data/etc/default_skills/pwn/ai/red_team/vector_and_embedding_weaknesses/references/security.md +3 -0
- data/etc/default_skills/pwn/ai/red_team/vector_and_embedding_weaknesses/references/urls.md +6 -0
- data/lib/pwn/ai/agent/loop.rb +48 -7
- data/lib/pwn/ai/agent/prompt_builder.rb +5 -2
- data/lib/pwn/ai/red_team/agent_protocol_abuse.rb +91 -0
- data/lib/pwn/ai/red_team/data_and_model_poisoning.rb +91 -0
- data/lib/pwn/ai/red_team/hidden_context_exposure.rb +91 -0
- data/lib/pwn/ai/red_team/memory_poisoning.rb +91 -0
- data/lib/pwn/ai/red_team/multimodal_injection.rb +91 -0
- data/lib/pwn/ai/red_team/rag_poisoning.rb +91 -0
- data/lib/pwn/ai/red_team/supply_chain.rb +91 -0
- data/lib/pwn/ai/red_team/unbounded_consumption.rb +91 -0
- data/lib/pwn/ai/red_team/vector_and_embedding_weaknesses.rb +91 -0
- data/lib/pwn/ai/red_team.rb +15 -4
- data/lib/pwn/version.rb +1 -1
- data/spec/lib/pwn/ai/agent/loop_spec.rb +19 -0
- data/spec/lib/pwn/ai/agent/prompt_builder_spec.rb +1 -0
- data/spec/lib/pwn/ai/red_team/agent_protocol_abuse_spec.rb +40 -0
- data/spec/lib/pwn/ai/red_team/data_and_model_poisoning_spec.rb +40 -0
- data/spec/lib/pwn/ai/red_team/hidden_context_exposure_spec.rb +40 -0
- data/spec/lib/pwn/ai/red_team/memory_poisoning_spec.rb +40 -0
- data/spec/lib/pwn/ai/red_team/multimodal_injection_spec.rb +40 -0
- data/spec/lib/pwn/ai/red_team/rag_poisoning_spec.rb +40 -0
- data/spec/lib/pwn/ai/red_team/supply_chain_spec.rb +40 -0
- data/spec/lib/pwn/ai/red_team/unbounded_consumption_spec.rb +40 -0
- data/spec/lib/pwn/ai/red_team/vector_and_embedding_weaknesses_spec.rb +40 -0
- data/third_party/pwn_rdoc.jsonl +38 -0
- metadata +46 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 74bfcd98ff2b783dab4bfc6d97a3f8124e00c395f686c05303002e312d5b9596
|
|
4
|
+
data.tar.gz: 54d5d1abe1a695c1fb9dd7757becf2648857ff46dd96d9462ee5f73219a13146
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b60265a293cf56ae14e0ff8d3f822faa36ea0b530f6d01c2a9bbd5b2c3256ab3525df45f964a13939c77672c76e4c0b67647baeca3c1faf2f987ff9221a04999
|
|
7
|
+
data.tar.gz: b600f46b403f45c2418640a9047653759200d4aca46d2d0571992e6ae1d8501f40c1b28fb9515c2d38b9f313932b4441443b57c61c250b0560b7d5466df7bf43
|
|
@@ -15,7 +15,8 @@ operator cheat sheet.
|
|
|
15
15
|
1. Entering `pwn-ai` always creates a **new** `~/.pwn/sessions/<timestamp>_<hex>.jsonl`.
|
|
16
16
|
2. Cheap intents (greeting, how-to, recall) never open a host-work goal.
|
|
17
17
|
3. Everything else is an autonomous goal. `Loop.run` keeps CORE_TOOLS until
|
|
18
|
-
the original request is done or
|
|
18
|
+
the original request is done or a tool returned failure evidence.
|
|
19
|
+
pwn-ai does not decide authorization.
|
|
19
20
|
4. An unfinished host-work request is written to `~/.pwn/open_goal.json`.
|
|
20
21
|
5. An accepted final answer deletes that file. Budget exhaust leaves it.
|
|
21
22
|
|
|
@@ -12,7 +12,7 @@ metadata:
|
|
|
12
12
|
|
|
13
13
|
# PWN::AI::Agent::Loop
|
|
14
14
|
|
|
15
|
-
The agent conversation loop: build system prompt → call LLM with tools → if tool_calls: dispatch, append role:'tool' results, loop → else: return text. This replaces the regex-ReAct in PWN::Plugins::REPL :pwn_ai_hook with native function-calling. State (memory, skills, sessions) is all externalised — Loop.run is stateless aside from the messages array it builds. NEGATIVE-FEEDBACK CLOSURE ------------------------- Loop.run is where "learn from mistakes, don't repeat them" is actually enforced. On EVERY failed dispatch it: 1. Records the (tool, normalised_error) fingerprint into PWN::AI::Agent::Mistakes with a PERSISTENT cross-session count. 2. Reads that count back and, if it OR the in-turn count reaches REPEAT_THRESHOLD, prepends a hard "REPEATED FAILURE — change approach" guard to the tool result the model sees next. 3. Appends Mistakes.correction_hint (seen N×, sig, KNOWN FIX: …) so a previously-discovered fix is handed straight back to the model on the FIRST recurrence in a new session — it does not have to fail 3× again to re-learn what it already knew. PromptBuilder.mistakes_block re-injects the top open mistakes and top known fixes into the system prompt of every future turn. COMPLETION ---------- The original request is the completion signal. TaskSummarizer and Policy are advisory (compass / rank). Loop keeps calling CORE_TOOLS until that request is done or
|
|
15
|
+
The agent conversation loop: build system prompt → call LLM with tools → if tool_calls: dispatch, append role:'tool' results, loop → else: return text. This replaces the regex-ReAct in PWN::Plugins::REPL :pwn_ai_hook with native function-calling. State (memory, skills, sessions) is all externalised — Loop.run is stateless aside from the messages array it builds. NEGATIVE-FEEDBACK CLOSURE ------------------------- Loop.run is where "learn from mistakes, don't repeat them" is actually enforced. On EVERY failed dispatch it: 1. Records the (tool, normalised_error) fingerprint into PWN::AI::Agent::Mistakes with a PERSISTENT cross-session count. 2. Reads that count back and, if it OR the in-turn count reaches REPEAT_THRESHOLD, prepends a hard "REPEATED FAILURE — change approach" guard to the tool result the model sees next. 3. Appends Mistakes.correction_hint (seen N×, sig, KNOWN FIX: …) so a previously-discovered fix is handed straight back to the model on the FIRST recurrence in a new session — it does not have to fail 3× again to re-learn what it already knew. PromptBuilder.mistakes_block re-injects the top open mistakes and top known fixes into the system prompt of every future turn. COMPLETION ---------- The original request is the completion signal. TaskSummarizer and Policy are advisory (compass / rank). Loop keeps calling CORE_TOOLS until that request is done or a tool returned failure evidence, then stops. LOCAL-MODEL SCAFFOLDING ----------------------- When the active engine is :ollama (or the corresponding :agent flags are set) Loop.run additionally: * threads request → PromptBuilder for relevance-ranked MEMORY, * threads request → Registry.definitions(relevance:) for a slimmed tool set (:tool_router), * splices Learning.exemplars_for(request:) between system and user as few-shot behaviour retrieval, * runs a plan-then-act pre-pass (:plan_first) so the model externalises a tool plan before its first dispatch, * escalates to a frontier persona for a 3-line corrective hint once ≥ ESCALATE_AFTER_FAILS in-turn failures accumulate (:escalation_persona) — the local model still produces the final answer so Learning/Metrics stay attributed to :ollama.
|
|
16
16
|
|
|
17
17
|
## When to use
|
|
18
18
|
|
|
@@ -12,7 +12,7 @@ metadata:
|
|
|
12
12
|
|
|
13
13
|
# PWN::AI::RedTeam
|
|
14
14
|
|
|
15
|
-
This file, using the autoload directive loads AI RedTeam modules into memory only when they're needed. For more information, see: http://www.rubyinside.com/ruby-techniques-revealed-autoload-1652.html PWN::AI::RedTeam is the AI/LLM analogue of PWN::SAST - a collection of adversarial test-case modules that exhaustively analyze / fuzz Large Language Models for AI-specific vulnerabilities (prompt injection, jailbreaks, system-prompt extraction, sensitive-data disclosure, excessive agency, insecure output handling,
|
|
15
|
+
This file, using the autoload directive loads AI RedTeam modules into memory only when they're needed. For more information, see: http://www.rubyinside.com/ruby-techniques-revealed-autoload-1652.html PWN::AI::RedTeam is the AI/LLM analogue of PWN::SAST - a collection of adversarial test-case modules that exhaustively analyze / fuzz Large Language Models for AI-specific vulnerabilities (prompt injection, jailbreaks, system-prompt extraction, sensitive-data disclosure, excessive agency, insecure output handling, supply chain, poisoning, unbounded consumption, hidden context, vector stores, RAG, MCP/A2A, and memory persistence). Each module maps to an OWASP LLM Top-10 category and a MITRE ATLAS technique so findings roll straight into PWN::Reports::AIRedTeam.
|
|
16
16
|
|
|
17
17
|
## When to use
|
|
18
18
|
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pwn-ai-redteam-agentprotocolabuse
|
|
3
|
+
description: Drive PWN::AI::RedTeam::AgentProtocolAbuse from pwn_eval.
|
|
4
|
+
license: MIT
|
|
5
|
+
allowed-tools: [pwn, pwn_eval]
|
|
6
|
+
metadata:
|
|
7
|
+
bundled: true
|
|
8
|
+
generated: true
|
|
9
|
+
module: PWN::AI::RedTeam::AgentProtocolAbuse
|
|
10
|
+
source: pwn/ai/red_team/agent_protocol_abuse.rb
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# PWN::AI::RedTeam::AgentProtocolAbuse
|
|
14
|
+
|
|
15
|
+
AI RedTeam Module used to simulate malicious MCP, A2A, and tool-connection channels: spoofed servers, poisoned tool descriptions, and confused-deputy tool calls.
|
|
16
|
+
|
|
17
|
+
## When to use
|
|
18
|
+
|
|
19
|
+
Call `PWN::AI::RedTeam::AgentProtocolAbuse` from `pwn_eval` when the task needs this module.
|
|
20
|
+
Do not reimplement it in shell.
|
|
21
|
+
|
|
22
|
+
## Methodologies
|
|
23
|
+
|
|
24
|
+
Generated from `pwn/ai/red_team/agent_protocol_abuse.rb`. Prefer the public class methods below.
|
|
25
|
+
Class methods take `(opts = {})` and read `opts`.
|
|
26
|
+
|
|
27
|
+
## How to call
|
|
28
|
+
|
|
29
|
+
```ruby
|
|
30
|
+
PWN::AI::RedTeam::AgentProtocolAbuse.help
|
|
31
|
+
PWN::AI::RedTeam::AgentProtocolAbuse.scan(opts)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Public methods
|
|
35
|
+
|
|
36
|
+
- `scan`
|
|
37
|
+
- `security_references`
|
|
38
|
+
- `authors`
|
|
39
|
+
- `help`
|
|
40
|
+
|
|
41
|
+
## References
|
|
42
|
+
|
|
43
|
+
- `references/security.md` — CWE / NIST mapping
|
|
44
|
+
- `references/urls.md` — URLs from source
|
|
45
|
+
|
|
46
|
+
## Source
|
|
47
|
+
|
|
48
|
+
`pwn/ai/red_team/agent_protocol_abuse.rb`
|
|
49
|
+
|
|
50
|
+
## Verification
|
|
51
|
+
|
|
52
|
+
`PWN::AI::RedTeam::AgentProtocolAbuse.respond_to?(:scan)` after the
|
|
53
|
+
module is loaded. Read the source for parameter names.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pwn-ai-redteam-dataandmodelpoisoning
|
|
3
|
+
description: Drive PWN::AI::RedTeam::DataAndModelPoisoning from pwn_eval.
|
|
4
|
+
license: MIT
|
|
5
|
+
allowed-tools: [pwn, pwn_eval]
|
|
6
|
+
metadata:
|
|
7
|
+
bundled: true
|
|
8
|
+
generated: true
|
|
9
|
+
module: PWN::AI::RedTeam::DataAndModelPoisoning
|
|
10
|
+
source: pwn/ai/red_team/data_and_model_poisoning.rb
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# PWN::AI::RedTeam::DataAndModelPoisoning
|
|
14
|
+
|
|
15
|
+
AI RedTeam Module used to evaluate training, fine-tuning, and retrieval corpora for poison, sleeper triggers, and fine-tuning subversion (OWASP LLM05:2026).
|
|
16
|
+
|
|
17
|
+
## When to use
|
|
18
|
+
|
|
19
|
+
Call `PWN::AI::RedTeam::DataAndModelPoisoning` from `pwn_eval` when the task needs this module.
|
|
20
|
+
Do not reimplement it in shell.
|
|
21
|
+
|
|
22
|
+
## Methodologies
|
|
23
|
+
|
|
24
|
+
Generated from `pwn/ai/red_team/data_and_model_poisoning.rb`. Prefer the public class methods below.
|
|
25
|
+
Class methods take `(opts = {})` and read `opts`.
|
|
26
|
+
|
|
27
|
+
## How to call
|
|
28
|
+
|
|
29
|
+
```ruby
|
|
30
|
+
PWN::AI::RedTeam::DataAndModelPoisoning.help
|
|
31
|
+
PWN::AI::RedTeam::DataAndModelPoisoning.scan(opts)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Public methods
|
|
35
|
+
|
|
36
|
+
- `scan`
|
|
37
|
+
- `security_references`
|
|
38
|
+
- `authors`
|
|
39
|
+
- `help`
|
|
40
|
+
|
|
41
|
+
## References
|
|
42
|
+
|
|
43
|
+
- `references/security.md` — CWE / NIST mapping
|
|
44
|
+
- `references/urls.md` — URLs from source
|
|
45
|
+
|
|
46
|
+
## Source
|
|
47
|
+
|
|
48
|
+
`pwn/ai/red_team/data_and_model_poisoning.rb`
|
|
49
|
+
|
|
50
|
+
## Verification
|
|
51
|
+
|
|
52
|
+
`PWN::AI::RedTeam::DataAndModelPoisoning.respond_to?(:scan)` after the
|
|
53
|
+
module is loaded. Read the source for parameter names.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pwn-ai-redteam-hiddencontextexposure
|
|
3
|
+
description: Drive PWN::AI::RedTeam::HiddenContextExposure from pwn_eval.
|
|
4
|
+
license: MIT
|
|
5
|
+
allowed-tools: [pwn, pwn_eval]
|
|
6
|
+
metadata:
|
|
7
|
+
bundled: true
|
|
8
|
+
generated: true
|
|
9
|
+
module: PWN::AI::RedTeam::HiddenContextExposure
|
|
10
|
+
source: pwn/ai/red_team/hidden_context_exposure.rb
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# PWN::AI::RedTeam::HiddenContextExposure
|
|
14
|
+
|
|
15
|
+
AI RedTeam Module used to extract or reconstruct hidden system instructions, tool schemas, refusal logic, and other non-user context (OWASP LLM08:2026). Broader than SystemPromptExtraction.
|
|
16
|
+
|
|
17
|
+
## When to use
|
|
18
|
+
|
|
19
|
+
Call `PWN::AI::RedTeam::HiddenContextExposure` from `pwn_eval` when the task needs this module.
|
|
20
|
+
Do not reimplement it in shell.
|
|
21
|
+
|
|
22
|
+
## Methodologies
|
|
23
|
+
|
|
24
|
+
Generated from `pwn/ai/red_team/hidden_context_exposure.rb`. Prefer the public class methods below.
|
|
25
|
+
Class methods take `(opts = {})` and read `opts`.
|
|
26
|
+
|
|
27
|
+
## How to call
|
|
28
|
+
|
|
29
|
+
```ruby
|
|
30
|
+
PWN::AI::RedTeam::HiddenContextExposure.help
|
|
31
|
+
PWN::AI::RedTeam::HiddenContextExposure.scan(opts)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Public methods
|
|
35
|
+
|
|
36
|
+
- `scan`
|
|
37
|
+
- `security_references`
|
|
38
|
+
- `authors`
|
|
39
|
+
- `help`
|
|
40
|
+
|
|
41
|
+
## References
|
|
42
|
+
|
|
43
|
+
- `references/security.md` — CWE / NIST mapping
|
|
44
|
+
- `references/urls.md` — URLs from source
|
|
45
|
+
|
|
46
|
+
## Source
|
|
47
|
+
|
|
48
|
+
`pwn/ai/red_team/hidden_context_exposure.rb`
|
|
49
|
+
|
|
50
|
+
## Verification
|
|
51
|
+
|
|
52
|
+
`PWN::AI::RedTeam::HiddenContextExposure.respond_to?(:scan)` after the
|
|
53
|
+
module is loaded. Read the source for parameter names.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pwn-ai-redteam-memorypoisoning
|
|
3
|
+
description: Drive PWN::AI::RedTeam::MemoryPoisoning from pwn_eval.
|
|
4
|
+
license: MIT
|
|
5
|
+
allowed-tools: [pwn, pwn_eval]
|
|
6
|
+
metadata:
|
|
7
|
+
bundled: true
|
|
8
|
+
generated: true
|
|
9
|
+
module: PWN::AI::RedTeam::MemoryPoisoning
|
|
10
|
+
source: pwn/ai/red_team/memory_poisoning.rb
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# PWN::AI::RedTeam::MemoryPoisoning
|
|
14
|
+
|
|
15
|
+
AI RedTeam Module used to persist attacker instructions in long-term agent memory, hosted memory services, or cross-session state so later turns inherit the compromise.
|
|
16
|
+
|
|
17
|
+
## When to use
|
|
18
|
+
|
|
19
|
+
Call `PWN::AI::RedTeam::MemoryPoisoning` from `pwn_eval` when the task needs this module.
|
|
20
|
+
Do not reimplement it in shell.
|
|
21
|
+
|
|
22
|
+
## Methodologies
|
|
23
|
+
|
|
24
|
+
Generated from `pwn/ai/red_team/memory_poisoning.rb`. Prefer the public class methods below.
|
|
25
|
+
Class methods take `(opts = {})` and read `opts`.
|
|
26
|
+
|
|
27
|
+
## How to call
|
|
28
|
+
|
|
29
|
+
```ruby
|
|
30
|
+
PWN::AI::RedTeam::MemoryPoisoning.help
|
|
31
|
+
PWN::AI::RedTeam::MemoryPoisoning.scan(opts)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Public methods
|
|
35
|
+
|
|
36
|
+
- `scan`
|
|
37
|
+
- `security_references`
|
|
38
|
+
- `authors`
|
|
39
|
+
- `help`
|
|
40
|
+
|
|
41
|
+
## References
|
|
42
|
+
|
|
43
|
+
- `references/security.md` — CWE / NIST mapping
|
|
44
|
+
- `references/urls.md` — URLs from source
|
|
45
|
+
|
|
46
|
+
## Source
|
|
47
|
+
|
|
48
|
+
`pwn/ai/red_team/memory_poisoning.rb`
|
|
49
|
+
|
|
50
|
+
## Verification
|
|
51
|
+
|
|
52
|
+
`PWN::AI::RedTeam::MemoryPoisoning.respond_to?(:scan)` after the
|
|
53
|
+
module is loaded. Read the source for parameter names.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pwn-ai-redteam-multimodalinjection
|
|
3
|
+
description: Drive PWN::AI::RedTeam::MultimodalInjection from pwn_eval.
|
|
4
|
+
license: MIT
|
|
5
|
+
allowed-tools: [pwn, pwn_eval]
|
|
6
|
+
metadata:
|
|
7
|
+
bundled: true
|
|
8
|
+
generated: true
|
|
9
|
+
module: PWN::AI::RedTeam::MultimodalInjection
|
|
10
|
+
source: pwn/ai/red_team/multimodal_injection.rb
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# PWN::AI::RedTeam::MultimodalInjection
|
|
14
|
+
|
|
15
|
+
AI RedTeam Module used to hide instructions in images, audio, video, or steganographic encodings that a multimodal encoder still obeys (OWASP LLM01:2026 multimodal).
|
|
16
|
+
|
|
17
|
+
## When to use
|
|
18
|
+
|
|
19
|
+
Call `PWN::AI::RedTeam::MultimodalInjection` from `pwn_eval` when the task needs this module.
|
|
20
|
+
Do not reimplement it in shell.
|
|
21
|
+
|
|
22
|
+
## Methodologies
|
|
23
|
+
|
|
24
|
+
Generated from `pwn/ai/red_team/multimodal_injection.rb`. Prefer the public class methods below.
|
|
25
|
+
Class methods take `(opts = {})` and read `opts`.
|
|
26
|
+
|
|
27
|
+
## How to call
|
|
28
|
+
|
|
29
|
+
```ruby
|
|
30
|
+
PWN::AI::RedTeam::MultimodalInjection.help
|
|
31
|
+
PWN::AI::RedTeam::MultimodalInjection.scan(opts)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Public methods
|
|
35
|
+
|
|
36
|
+
- `scan`
|
|
37
|
+
- `security_references`
|
|
38
|
+
- `authors`
|
|
39
|
+
- `help`
|
|
40
|
+
|
|
41
|
+
## References
|
|
42
|
+
|
|
43
|
+
- `references/security.md` — CWE / NIST mapping
|
|
44
|
+
- `references/urls.md` — URLs from source
|
|
45
|
+
|
|
46
|
+
## Source
|
|
47
|
+
|
|
48
|
+
`pwn/ai/red_team/multimodal_injection.rb`
|
|
49
|
+
|
|
50
|
+
## Verification
|
|
51
|
+
|
|
52
|
+
`PWN::AI::RedTeam::MultimodalInjection.respond_to?(:scan)` after the
|
|
53
|
+
module is loaded. Read the source for parameter names.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pwn-ai-redteam-ragpoisoning
|
|
3
|
+
description: Drive PWN::AI::RedTeam::RagPoisoning from pwn_eval.
|
|
4
|
+
license: MIT
|
|
5
|
+
allowed-tools: [pwn, pwn_eval]
|
|
6
|
+
metadata:
|
|
7
|
+
bundled: true
|
|
8
|
+
generated: true
|
|
9
|
+
module: PWN::AI::RedTeam::RagPoisoning
|
|
10
|
+
source: pwn/ai/red_team/rag_poisoning.rb
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# PWN::AI::RedTeam::RagPoisoning
|
|
14
|
+
|
|
15
|
+
AI RedTeam Module used to manipulate retrieval-augmented generation indexes, retrieved passages, and retrieval logic so attacker text is treated as trusted context.
|
|
16
|
+
|
|
17
|
+
## When to use
|
|
18
|
+
|
|
19
|
+
Call `PWN::AI::RedTeam::RagPoisoning` from `pwn_eval` when the task needs this module.
|
|
20
|
+
Do not reimplement it in shell.
|
|
21
|
+
|
|
22
|
+
## Methodologies
|
|
23
|
+
|
|
24
|
+
Generated from `pwn/ai/red_team/rag_poisoning.rb`. Prefer the public class methods below.
|
|
25
|
+
Class methods take `(opts = {})` and read `opts`.
|
|
26
|
+
|
|
27
|
+
## How to call
|
|
28
|
+
|
|
29
|
+
```ruby
|
|
30
|
+
PWN::AI::RedTeam::RagPoisoning.help
|
|
31
|
+
PWN::AI::RedTeam::RagPoisoning.scan(opts)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Public methods
|
|
35
|
+
|
|
36
|
+
- `scan`
|
|
37
|
+
- `security_references`
|
|
38
|
+
- `authors`
|
|
39
|
+
- `help`
|
|
40
|
+
|
|
41
|
+
## References
|
|
42
|
+
|
|
43
|
+
- `references/security.md` — CWE / NIST mapping
|
|
44
|
+
- `references/urls.md` — URLs from source
|
|
45
|
+
|
|
46
|
+
## Source
|
|
47
|
+
|
|
48
|
+
`pwn/ai/red_team/rag_poisoning.rb`
|
|
49
|
+
|
|
50
|
+
## Verification
|
|
51
|
+
|
|
52
|
+
`PWN::AI::RedTeam::RagPoisoning.respond_to?(:scan)` after the
|
|
53
|
+
module is loaded. Read the source for parameter names.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pwn-ai-redteam-supplychain
|
|
3
|
+
description: Drive PWN::AI::RedTeam::SupplyChain from pwn_eval.
|
|
4
|
+
license: MIT
|
|
5
|
+
allowed-tools: [pwn, pwn_eval]
|
|
6
|
+
metadata:
|
|
7
|
+
bundled: true
|
|
8
|
+
generated: true
|
|
9
|
+
module: PWN::AI::RedTeam::SupplyChain
|
|
10
|
+
source: pwn/ai/red_team/supply_chain.rb
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# PWN::AI::RedTeam::SupplyChain
|
|
14
|
+
|
|
15
|
+
AI RedTeam Module used to probe LLM application supply-chain trust: tampered model artifacts, slopsquatted packages, MCP tool packages, and unsigned adapters (OWASP LLM04:2026).
|
|
16
|
+
|
|
17
|
+
## When to use
|
|
18
|
+
|
|
19
|
+
Call `PWN::AI::RedTeam::SupplyChain` from `pwn_eval` when the task needs this module.
|
|
20
|
+
Do not reimplement it in shell.
|
|
21
|
+
|
|
22
|
+
## Methodologies
|
|
23
|
+
|
|
24
|
+
Generated from `pwn/ai/red_team/supply_chain.rb`. Prefer the public class methods below.
|
|
25
|
+
Class methods take `(opts = {})` and read `opts`.
|
|
26
|
+
|
|
27
|
+
## How to call
|
|
28
|
+
|
|
29
|
+
```ruby
|
|
30
|
+
PWN::AI::RedTeam::SupplyChain.help
|
|
31
|
+
PWN::AI::RedTeam::SupplyChain.scan(opts)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Public methods
|
|
35
|
+
|
|
36
|
+
- `scan`
|
|
37
|
+
- `security_references`
|
|
38
|
+
- `authors`
|
|
39
|
+
- `help`
|
|
40
|
+
|
|
41
|
+
## References
|
|
42
|
+
|
|
43
|
+
- `references/security.md` — CWE / NIST mapping
|
|
44
|
+
- `references/urls.md` — URLs from source
|
|
45
|
+
|
|
46
|
+
## Source
|
|
47
|
+
|
|
48
|
+
`pwn/ai/red_team/supply_chain.rb`
|
|
49
|
+
|
|
50
|
+
## Verification
|
|
51
|
+
|
|
52
|
+
`PWN::AI::RedTeam::SupplyChain.respond_to?(:scan)` after the
|
|
53
|
+
module is loaded. Read the source for parameter names.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pwn-ai-redteam-unboundedconsumption
|
|
3
|
+
description: Drive PWN::AI::RedTeam::UnboundedConsumption from pwn_eval.
|
|
4
|
+
license: MIT
|
|
5
|
+
allowed-tools: [pwn, pwn_eval]
|
|
6
|
+
metadata:
|
|
7
|
+
bundled: true
|
|
8
|
+
generated: true
|
|
9
|
+
module: PWN::AI::RedTeam::UnboundedConsumption
|
|
10
|
+
source: pwn/ai/red_team/unbounded_consumption.rb
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# PWN::AI::RedTeam::UnboundedConsumption
|
|
14
|
+
|
|
15
|
+
AI RedTeam Module used to probe denial-of-wallet, output explosion, recursive tool-call loops, and model-extraction query floods (OWASP LLM06:2026).
|
|
16
|
+
|
|
17
|
+
## When to use
|
|
18
|
+
|
|
19
|
+
Call `PWN::AI::RedTeam::UnboundedConsumption` from `pwn_eval` when the task needs this module.
|
|
20
|
+
Do not reimplement it in shell.
|
|
21
|
+
|
|
22
|
+
## Methodologies
|
|
23
|
+
|
|
24
|
+
Generated from `pwn/ai/red_team/unbounded_consumption.rb`. Prefer the public class methods below.
|
|
25
|
+
Class methods take `(opts = {})` and read `opts`.
|
|
26
|
+
|
|
27
|
+
## How to call
|
|
28
|
+
|
|
29
|
+
```ruby
|
|
30
|
+
PWN::AI::RedTeam::UnboundedConsumption.help
|
|
31
|
+
PWN::AI::RedTeam::UnboundedConsumption.scan(opts)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Public methods
|
|
35
|
+
|
|
36
|
+
- `scan`
|
|
37
|
+
- `security_references`
|
|
38
|
+
- `authors`
|
|
39
|
+
- `help`
|
|
40
|
+
|
|
41
|
+
## References
|
|
42
|
+
|
|
43
|
+
- `references/security.md` — CWE / NIST mapping
|
|
44
|
+
- `references/urls.md` — URLs from source
|
|
45
|
+
|
|
46
|
+
## Source
|
|
47
|
+
|
|
48
|
+
`pwn/ai/red_team/unbounded_consumption.rb`
|
|
49
|
+
|
|
50
|
+
## Verification
|
|
51
|
+
|
|
52
|
+
`PWN::AI::RedTeam::UnboundedConsumption.respond_to?(:scan)` after the
|
|
53
|
+
module is loaded. Read the source for parameter names.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pwn-ai-redteam-vectorandembeddingweaknesses
|
|
3
|
+
description: Drive PWN::AI::RedTeam::VectorAndEmbeddingWeaknesses from pwn_eval.
|
|
4
|
+
license: MIT
|
|
5
|
+
allowed-tools: [pwn, pwn_eval]
|
|
6
|
+
metadata:
|
|
7
|
+
bundled: true
|
|
8
|
+
generated: true
|
|
9
|
+
module: PWN::AI::RedTeam::VectorAndEmbeddingWeaknesses
|
|
10
|
+
source: pwn/ai/red_team/vector_and_embedding_weaknesses.rb
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# PWN::AI::RedTeam::VectorAndEmbeddingWeaknesses
|
|
14
|
+
|
|
15
|
+
AI RedTeam Module used to test vector stores and embedding pipelines for inversion, tenant bleed, cache poison, and blocker documents (OWASP LLM09:2026).
|
|
16
|
+
|
|
17
|
+
## When to use
|
|
18
|
+
|
|
19
|
+
Call `PWN::AI::RedTeam::VectorAndEmbeddingWeaknesses` from `pwn_eval` when the task needs this module.
|
|
20
|
+
Do not reimplement it in shell.
|
|
21
|
+
|
|
22
|
+
## Methodologies
|
|
23
|
+
|
|
24
|
+
Generated from `pwn/ai/red_team/vector_and_embedding_weaknesses.rb`. Prefer the public class methods below.
|
|
25
|
+
Class methods take `(opts = {})` and read `opts`.
|
|
26
|
+
|
|
27
|
+
## How to call
|
|
28
|
+
|
|
29
|
+
```ruby
|
|
30
|
+
PWN::AI::RedTeam::VectorAndEmbeddingWeaknesses.help
|
|
31
|
+
PWN::AI::RedTeam::VectorAndEmbeddingWeaknesses.scan(opts)
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Public methods
|
|
35
|
+
|
|
36
|
+
- `scan`
|
|
37
|
+
- `security_references`
|
|
38
|
+
- `authors`
|
|
39
|
+
- `help`
|
|
40
|
+
|
|
41
|
+
## References
|
|
42
|
+
|
|
43
|
+
- `references/security.md` — CWE / NIST mapping
|
|
44
|
+
- `references/urls.md` — URLs from source
|
|
45
|
+
|
|
46
|
+
## Source
|
|
47
|
+
|
|
48
|
+
`pwn/ai/red_team/vector_and_embedding_weaknesses.rb`
|
|
49
|
+
|
|
50
|
+
## Verification
|
|
51
|
+
|
|
52
|
+
`PWN::AI::RedTeam::VectorAndEmbeddingWeaknesses.respond_to?(:scan)` after the
|
|
53
|
+
module is loaded. Read the source for parameter names.
|