From mcp-security-review
Reviews code for security vulnerabilities like SQL/command injection, XSS, unsafe deserialization in Python, JavaScript/TypeScript, React, Java, Go, Ruby, SQL.
npx claudepluginhub srajangpt1/ai-security-crewThis skill uses the workspace's default tool permissions.
Perform a security review of the following code:
Performs security code reviews identifying high-confidence exploitable vulnerabilities like injection, XSS, authentication issues after tracing data flows and validation.
Scans codebases for vulnerabilities like injections, XSS, secrets exposure, insecure deps, and access control flaws across JavaScript, TypeScript, Python, Java, PHP, Go, Ruby, Rust.
Scans codebases for vulnerabilities like SQL injection, XSS, auth flaws, insecure deps, and secrets using grep and bash. Generates severity-rated reports with file locations, explanations, and fixes.
Share bugs, ideas, or general feedback.
Perform a security review of the following code:
$ARGUMENTS
Review the code provided in the arguments above. If no code was provided, ask the user to paste the code or specify a file path to read. If a file path is mentioned, read the file first.
Identify language and frameworks from:
.py → Python, .ts/.tsx → TypeScript, .go → Go, .java → Java, .rb → Ruby, .php → PHP, .sql → SQLimport django, require('express'), import React, use actix_webdef/class → Python, func → Go, public class → Java, fn → Rust@app.route → Flask, useState → React, @Controller → SpringPython:
os.system(), subprocess with shell=Truepickle.loads() on untrusted dataeval() / exec() with user-controlled input% formatting in queriesopen() with user-supplied pathsJavaScript / TypeScript:
innerHTML, document.write(), dangerouslySetInnerHTML without sanitizationObject.assign / spread with user dataeval() or new Function() with dynamic contentpostMessage handlerslocalStorage or sessionStorageReact:
dangerouslySetInnerHTML without DOMPurify or equivalentJava:
Statement instead of PreparedStatement for SQLRuntime.exec() with user-controlled inputObjectInputStream)Go:
database/sql queriesexec.Command with user inputSQL:
UPDATE/DELETE without WHERE clauseSELECT * returning sensitive columns unnecessarilyVerify ALL of these, regardless of language:
Secrets & Credentials:
Injection:
eval, exec) with user dataInput Validation:
Authentication & Authorization:
Cryptography:
Error Handling & Logging:
Data Exposure:
Produce this exact structure:
File: [file path if known, or "provided code"] Language/Frameworks: [detected list] Risk Level: [LOW | MEDIUM | HIGH | CRITICAL]
[SECURE | NEEDS ATTENTION | INSECURE]
[1–2 sentences summarizing the security posture]
For each vulnerability found:
Location: [function name or line number if identifiable] Description: [what the vulnerability is and why it matters]
Vulnerable code:
[the problematic snippet]
Secure fix:
[the corrected code]