GenAI App Security Checklist
A 258-item, 17-category security checklist targeting vulnerabilities that AI coding assistants (Claude, GPT, Gemini, Grok, Mistral, Copilot) commonly introduce, each item tagged with severity and a static/runtime/config detection method. Includes a companion prompt.md that turns the checklist into an automated scan runnable via Claude Code, Gemini CLI, or OpenAI Codex CLI against a local codebase, covering issues like prompt injection via user-supplied system prompts, missing auth middleware, hardcoded secrets, exposed API keys in frontend env vars, LLM-based auth decisions, unsandboxed agentic shell/filesystem access, and vector DB tenant isolation gaps.
What it is
The GenAI App Security Checklist (a-leks/genai-app-security-checklist, Apache 2.0) plus its prompt.md. The summary describes the coverage; what it omits are the actual invocation commands, the exact severity/detection legend, and the report format — the things that determine whether you can run this in five minutes.
How it works
prompt.md instructs an AI model to walk all 258 items against your local codebase and emit a report with file paths, line numbers, snippets, and remediations. The CLIs read your project directory directly — no upload. Each item carries one severity and one detection method:
- 🔴 Critical (exploitable without auth → data loss/account takeover), 🟠 High, 🟡 Medium, 🟢 Low
- [S] static (grep/AST/review), [R] runtime (running local/staging server), [C] config/infra (env vars, deploy settings, provider dashboard)
The [R] and [C] tags matter: this is not purely static — some items need a running server or infrastructure access to check, so a single static pass leaves those unverified.
What to do
Run from inside your project directory:
claude "$(curl -s https://raw.githubusercontent.com/a-leks/genai-app-security-checklist/main/prompt.md)"gemini "$(curl -s https://raw.githubusercontent.com/a-leks/genai-app-security-checklist/main/prompt.md)"codex "$(curl -s https://raw.githubusercontent.com/a-leks/genai-app-security-checklist/main/prompt.md)"Installs: claude.ai/code, npm install -g @google/gemini-cli, npm install -g @openai/codex. For large repos, attach the whole repo via Claude.ai Projects or ChatGPT Projects instead of pasting file-by-file. For CI, wrap the prompt in a script that passes changed files to the API (see CONTRIBUTING.md for a reference pattern).
The sample report output is worth knowing before you commit: a severity-count summary table plus per-finding blocks. Note it also emits Pass and N/A counts (198 and 25 in the example), so a clean-looking run still surfaces what was skipped rather than silently passing.
Caveats
- The project explicitly states: run only against codebases you own or are authorized to audit.
- Each of these commands pipes remote
prompt.mdstraight into an agent viacurl— you are executing an unpinned upstream prompt against your source; review it, or pin a commit, before trusting it in automation. - Positioning is detection-layer only: it maps to OWASP LLM Top 10, MITRE ATLAS, and NIST AI RMF but claims to add the "how to check" that those omit — it is not itself a threat taxonomy or governance framework.
Technologies named here
- GenAI App Security Checklist
- Next.js + Prisma + OpenAI
- prompt.md
- Claude Code
- Gemini CLI
- OpenAI Codex CLI
- Claude.ai Projects
- ChatGPT Projects
- OWASP Top 10 for Large Language Model Applications
- MITRE ATLAS
- NIST AI Risk Management Framework
- OpenAI Codex
- OWASP Top 10 for LLM Applications
- NIST AI RMF
Techniques named here
- Missing auth middleware on protected routes
- Hardcoded secrets
- Prompt Injection
- Indirect prompt injection
- LLM used for auth decisions
- API key in frontend
- User-controlled model parameter
- Agentic shell or filesystem access without sandbox
- Vector DB with no tenant isolation
- Vector databases with no tenant isolation
Related in AppSec
Flowise MCP Security Bypass Enables RCE
Inside an Oracle Database SQL Injection Attack | Huntress
OASIS
