Loading...
Loading...
Scans code for security vulnerabilities — injection flaws, authentication gaps, XSS vectors, mass assignment, CSRF, insecure deserialization, sensitive data exposure, broken access control, and misconfigurations. Generates severity-scored findings with copy-pasteable fix prompts. Trigger phrases: "security scan", "security audit", "vulnerability check", "find security issues".
npx skill4agent add nishilbhave/codeprobe-claude codeprobe-security../codeprobe/shared-preamble.md../codeprobe/references/full.env.exampledocker-compose.dev.ymltests/fixtures/npm auditcomposer audit| ID Prefix | What to Detect | How to Detect | Severity |
|---|---|---|---|
| Raw SQL with string concatenation/interpolation | Search for SQL keywords ( | Critical |
| | Search for | Critical |
| Shell command construction with unsanitized input | Search for | Critical |
| LDAP/NoSQL injection vectors | Search for LDAP filter construction with string concatenation, MongoDB query construction with user input in | Critical |
| ID Prefix | What to Detect | How to Detect | Severity |
|---|---|---|---|
| Missing auth middleware on routes that modify data | Scan route definitions (e.g., | Critical |
| Role checks done in view/frontend but not backend | Search for role/permission checks in frontend templates or JavaScript (e.g., | Major |
| Hardcoded secrets/API keys in source code | Search for patterns: | Critical |
| Weak password policy | Look for user registration/password-change logic. Check whether password validation enforces minimum length (8+ chars), complexity, or uses a validation library. Flag if passwords are accepted without any validation rules. | Major |
| JWT without expiration | Search for JWT creation/signing code. Check whether the payload includes an | Major |
| ID Prefix | What to Detect | How to Detect | Severity |
|---|---|---|---|
| | Search for | Major |
| | Search for | Major |
| | Search for | Major |
| Missing Content-Security-Policy | Check for CSP headers in middleware, web server config, or meta tags. If no CSP is configured anywhere in the project, flag as a defense-in-depth gap. | Minor |
| ID Prefix | What to Detect | How to Detect | Severity |
|---|---|---|---|
| Laravel model without | Search for Eloquent model classes (extending | Major |
| Accepting | Search for | Critical |
| ID Prefix | What to Detect | How to Detect | Severity |
|---|---|---|---|
| Forms without CSRF tokens | Search for | Major |
| API routes without proper auth that modify state | Check API routes (POST/PUT/PATCH/DELETE) that lack both CSRF protection AND authentication middleware. Stateless APIs with token auth are fine; session-based APIs without CSRF tokens are not. | Major |
| ID Prefix | What to Detect | How to Detect | Severity |
|---|---|---|---|
| | Search for | Critical |
| | Search for | Major |
| ID Prefix | What to Detect | How to Detect | Severity |
|---|---|---|---|
| Passwords/tokens in log statements | Search for logging calls ( | Critical |
| | Check whether | Critical |
| Secrets in config files vs environment variables | Search config files for hardcoded credentials, API keys, database passwords. Flag values that should come from environment variables but are instead hardcoded in tracked config files. | Major |
| Error messages leaking stack traces in production config | Check error/exception handling configuration. Look for | Major |
| ID Prefix | What to Detect | How to Detect | Severity |
|---|---|---|---|
| IDOR — using user-supplied ID without ownership check | Search for route parameters or request params (e.g., | Critical |
| Missing policy/gate checks on resource access | In frameworks with authorization systems (Laravel policies, Django permissions, Express middleware), check whether CRUD operations on user-owned resources include authorization checks. Flag controller actions that read/modify resources without policy or permission verification. | Major |
| ID Prefix | What to Detect | How to Detect | Severity |
|---|---|---|---|
| | Search for | Major |
| Permissive CORS | Search for CORS configuration. Flag | Major |
| Default credentials in configuration | Search for usernames like | Critical |
SEC-SEC-001SEC-002UserController@update$request->all()$request->only(['name', 'email'])is_admin$fillable = ['name', 'email']Userapp/Services/SearchService.phpDB::select(\"SELECT * FROM products WHERE name LIKE '%$search%'\")DB::select('SELECT * FROM products WHERE name LIKE ?', [\"%{$search}%\"])routes/api.phpPOST /api/ordersRoute::post('/orders', [OrderController::class, 'store'])Route::post('/orders', [OrderController::class, 'store'])->middleware('auth:sanctum')config/services.php'key' => 'sk-live-abc123...''key' => env('STRIPE_SECRET_KEY')STRIPE_SECRET_KEY=.env.example