OWASP LLM Top 10: A Startup CTO's Testing Checklist
Maps the OWASP Top 10 for LLM Applications to concrete testing actions. Severity ratings, testing approaches, tool recommendations, and time estimates for each vulnerability.
The OWASP Top 10 for LLM Applications (v1.1) is the most widely referenced vulnerability framework for LLM security. Enterprise customers cite it in procurement questionnaires. SOC 2 auditors reference it. Investors ask about it during technical due diligence.
This post maps each vulnerability to concrete testing actions your team can take this week, with severity ratings, tool recommendations, and realistic time estimates.
LLM01: Prompt Injection
Severity: Critical
Prompt injection is the manipulation of LLM behavior by injecting adversarial instructions into user input or retrieved context. It is the most common and most dangerous LLM vulnerability.
Testing approach:
- Test direct injection: include adversarial instructions in user messages
- Test indirect injection: embed instructions in documents the RAG pipeline retrieves
- Test multi-turn injection: gradually shift context over multiple conversation turns
- Test encoding bypasses: base64, ROT13, Unicode variations
Tools: Promptfoo red-team mode, Garak, custom injection templates.
Time estimate: 4-8 hours for basic coverage, 2-3 days for comprehensive testing.
LLM02: Insecure Output Handling
Severity: High
The application trusts LLM output and renders it without sanitization. This enables cross-site scripting (XSS), code injection, and other output-based attacks when LLM output is rendered in web interfaces.
Testing approach:
- Inject HTML/JavaScript payloads via user input and verify whether they render in the output
- Test for markdown injection that renders executable content
- Verify output sanitization in all rendering contexts (web, email, API responses)
Tools: Standard web security testing tools, custom payloads.
Time estimate: 2-4 hours.
LLM03: Training Data Poisoning
Severity: Medium (for applications using fine-tuned models)
Malicious data in training sets causes the model to learn incorrect or harmful behaviors. Relevant for teams fine-tuning models or training on user-generated content.
Testing approach:
- Audit training data sources for integrity
- Test model behavior on inputs similar to known poisoned training examples
- Verify data pipeline access controls
Time estimate: 4-8 hours for audit, ongoing for monitoring.
LLM04: Model Denial of Service
Severity: Medium
Crafted inputs cause excessive resource consumption - long-running inference, memory exhaustion, or API rate limit abuse.
Testing approach:
- Test with extremely long inputs
- Test with inputs designed to maximize output length
- Verify rate limiting and timeout mechanisms
Tools: Custom load testing scripts.
Time estimate: 2-4 hours.
LLM05: Supply Chain Vulnerabilities
Severity: High
Vulnerabilities in third-party models, libraries, APIs, or datasets used in the AI stack.
Testing approach:
- Audit all third-party dependencies (model APIs, embedding models, vector databases)
- Verify model provenance and integrity
- Test behavior across model version updates
Time estimate: 4-8 hours for initial audit.
LLM06: Sensitive Information Disclosure
Severity: High
The LLM reveals confidential information through its responses - system prompts, training data, PII, or internal system details.
Testing approach:
- Attempt system prompt extraction through direct and indirect techniques
- Test for PII leakage in model outputs
- Verify information boundaries between user sessions
- Test error messages for information disclosure
Tools: Custom extraction templates, Promptfoo.
Time estimate: 4-8 hours.
LLM07: Insecure Plugin Design
Severity: High (for applications with tool-calling)
AI agents with tool-calling capabilities can be manipulated to execute unintended actions through insecure plugin/tool interfaces.
Testing approach:
- Test tool parameter validation (can adversarial inputs bypass parameter constraints?)
- Test permission boundaries (can the agent access tools it should not?)
- Test tool chaining (can a sequence of legitimate tool calls achieve an unauthorized outcome?)
Time estimate: 8-16 hours for agents with multiple tools.
LLM08: Excessive Agency
Severity: Critical (for autonomous agents)
AI agents granted excessive permissions, autonomy, or capabilities beyond what is necessary for their intended function.
Testing approach:
- Map all agent capabilities and verify each is necessary
- Test whether the agent can be manipulated into using capabilities beyond its intended scope
- Verify human-in-the-loop checkpoints function under adversarial conditions
- Test runaway and loop detection mechanisms
Time estimate: 8-24 hours depending on agent complexity.
LLM09: Overreliance
Severity: Medium
Users trust LLM output without verification, leading to propagation of hallucinated or incorrect information.
Testing approach:
- Verify the application includes appropriate confidence indicators and disclaimers
- Test whether the application declines to answer when confidence is low
- Verify citation and source attribution accuracy
Time estimate: 2-4 hours.
LLM10: Model Theft
Severity: Medium
Extraction of model capabilities, parameters, or fine-tuning data through systematic querying.
Testing approach:
- Test for model fingerprinting resistance
- Verify rate limiting prevents systematic extraction
- Test for fine-tuning data leakage through targeted prompting
Time estimate: 4-8 hours.
Total Time Estimate
Basic coverage across all 10 categories: 40-80 hours (1-2 weeks of focused effort).
For teams that need this coverage faster or with more depth, a genai.qa Red-Team Sprint delivers comprehensive OWASP LLM Top 10 testing in 5 days with audit-grade documentation.
Book a free scope call to discuss OWASP LLM Top 10 testing for your application.
Break It Before They Do.
Book a free 30-minute GenAI QA scope call. We review your AI application, identify the top risks, and show you exactly what to test before you ship.
Talk to an Expert