agentleFS
AwarexoneAwarexone/Agentic-Bug-Hunter/skills/llm-redteam/SKILL.md

llm-redteam

Skill5.5k starsChanged 5 months agoMITView on GitHub

LLM application red-teaming — prompt injection (direct + indirect), jailbreak, system-prompt leak, data exfiltration, guardrail bypass, multi-turn crescendo, cross-lingual + cipher + invisible-unicode token smuggling, excessive agency / tool abuse, insecure output handling. Canonical OWASP LLM Top 10 + ASI01-ASI10 mapping. Use when a target exposes a chat/completions/assistant/copilot endpoint, an AI feature that consumes user text or documents, or any /v1/chat, /api/chat, /mcp surface.

3 other projects use a version of this.

Trending

More talk lately.thin dataabout the whole repository

Dec 2025: 0 mentionsJan 2026: 0 mentionsFeb 2026: 0 mentionsMar 2026: 0 mentionsApr 2026: 0 mentionsMay 2026: 0 mentionsJun 2026: 0 mentionsJul 2026: 0 mentionsAug 2026: 1 mentionSep 2026: 8 mentionsOct 2026: 2 mentionsNov 2026: 0 mentions
Dec 2025Jun 2026Nov 2026
Mentions a month of the Awarexone/Agentic-Bug-Hunter repository that our weekly crawl found: only 11 in all, so this is a hint, not a trend. There is no adoption data for this file yet.

Most recently taken up by

Who's talking about Awarexone/Agentic-Bug-Hunter

The biggest 5 of 11 mentions linking to the repository that our crawl found. Each line is their own headline.

See all 11

Talked about on GitHub (11 times).

On GitHub · 11

6 more on GitHub

The file

Files
SKILL.md

LLM Red-Team

Reflection is not exploitation. A model that echoes your payload is noise; a model that acts on it — leaks its system prompt, emits your canary, calls a tool, renders raw HTML downstream — is a bug. Prove the action, then chain it to concrete impact.

This is the first-class LLM-attack skill. The scanner behind it is bughunter/tools/llm_redteam.py (canary-based corpus runner, /llm-redteam). For auditing an MCP server, use skills/mcp-server-audit; for attacking a deployed agent black-box, use skills/agentic-app-audit.

0. QUICK KILL CHECKLIST

Kill the lead (classify Informational, move on) when:

  • The model refuses and no canary / leak / tool-call ever lands. "It said something edgy" is not a finding.
  • System-prompt "leak" is just generic assistant boilerplate ("I am a helpful assistant"), not the target's actual instructions.
  • Prompt injection fires but reads/changes nothing the current user couldn't already access (no cross-tenant data, no tool with impact).
  • Output looks like XSS but the host app escapes it before rendering (check the actual downstream sink, not the chat response).
  • Exfil payload is a markdown image beacon but the client never fetches remote images.

1. ROUTING TABLE — signal on target -> what to run

SignalRun
Any chat/assistant endpointbughunter/tools/llm_redteam.py --url <endpoint> --field <json-field> (full corpus)
OpenAI-style API--template '{"messages":[{"role":"user","content":"{{PAYLOAD}}"}]}' --response-path choices.0.message.content
Only want one class--category jailbreak (see --list-categories)
Uploads/RAG/"summarize this doc"indirect-injection + token-smuggling (invisible unicode in the doc)
Agent has toolsexcessive-agency category + skills/agentic-app-audit
Confirm blind exfilplant a canary host, correlate with bughunter/tools/oob_listener.py

2. ATTACK CLASSES (corpus categories)

The runner fires a canary per run (RT_PWNED_xxxx); a category "lands" when the canary / a real leak / a tool-call shows up in the response.

  • prompt-injection — direct instruction override, delimiter breaks.
  • jailbreak — DAN / developer-mode persona escape.
  • system-prompt-leak — repeat-above, keyword-anchor, scenario-escape.
  • data-exfil — markdown-image beacon / canary emission to an attacker host.
  • indirect-injection — payload framed as a retrieved document / tool result (the high-value one for RAG apps).
  • guardrail-bypass — base64 / split-string instruction smuggling.
  • multi-turn-crescendo — single-shot simulation of a gradual escalation jailbreak.
  • cross-lingual — override instruction in another language to dodge English-only filters.
  • cipher-obfuscation — leetspeak / ROT13-wrapped instruction.
  • token-smuggling — invisible "Sneaky Bits" unicode (U+2062/U+2064) carrying a hidden instruction (shared encoder with bughunter/tools/hai_payload_builder.py).
  • excessive-agency — coerce an unsafe tool call / exfil (SSRF via "fetch URL", email send, payment).
  • insecure-output — get the model to emit raw HTML/script that a downstream sink renders (XSS via AI).

3. CANONICAL OWASP ASI01-ASI10 (single source of truth)

This table is the ONE authoritative ASI mapping for the whole toolkit — skills/bug-bounty and skills/web2-vuln-classes both defer to it. If you edit the taxonomy, edit it here.

IDClassWhat to testChain to
ASI01Prompt Injection / Goal HijackOverride objectives via direct or indirect injectionIDOR / exfil / tool abuse
ASI02Tool MisuseAttacker-controlled tool params ("fetch this URL", code tool)SSRF / RCE
ASI03Privilege CompromiseAgent uses broader perms / admin tokens than the userPriv-esc / cross-tenant
ASI04Supply ChainCompromised plugin / MCP server / tool-output poisoning next agentRCE / data theft
ASI05Code ExecutionUnsafe code-interpreter / sandbox escapeRCE
ASI06Memory & Context PoisoningPersistent RAG/memory corruption across sessions/usersStored injection affecting all users
ASI07Agent CommunicationInter-agent spoofing / IDOR (agent A reads agent B's context)Cross-tenant disclosure
ASI08Excessive AgencyDestructive action without confirmation; cascading failuresFunds/email/delete
ASI09Insecure Output HandlingAI output rendered as XSS / SQLi / command injection downstreamXSS / injection
ASI10Sensitive Information DisclosureLeaks system prompt / keys / configs / user dataSecrets -> deeper access

Triage rule: ASI alone = Informational. It is a bounty only when chained to IDOR / exfil / RCE / ATO with a working PoC.

4. CHAIN TO IMPACT (what makes it payable)

StandaloneChainResult
Prompt injection+ reads another user's conversation/data (IDOR)High
Indirect injection (RAG doc)+ persists in memory -> hits every userHigh/Critical
Tool misuse "fetch URL"+ hits internal service / IMDS and returns dataSSRF (Medium/High)
Insecure output+ the host renders it -> stored XSS -> session theftHigh
System-prompt leak+ the prompt contains an API key / internal URLHigh
Excessive agency+ unconfirmed destructive action (send funds, delete)High/Critical

5. CONFIRMATION DISCIPLINE (no false positives)

  • A category only counts when the canary / real leak / tool-call is observed in the response — never on "it sounded compliant."
  • For blind exfil, require a correlated out-of-band callback (bughunter/tools/oob_listener.py), not just a rendered beacon tag.
  • For insecure-output XSS, confirm execution at the downstream sink with the XSS verifier (tools/verifiers/xss.py / bughunter/tools/dom_xss_harness.py), not in the chat reply.
  • Record the exact payload + response excerpt; the report must be reproducible verbatim.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.