
Sast Idor
Detect Insecure Direct Object Reference (IDOR) vulnerabilities in a codebase using a...
Install
npx skills add utkusen/sast-skills --skill sast-idor -g -a claude-code -y- Repository
- utkusen/sast-skills1.4k
- Category
- Security
- Updated
- 12d ago
- License
- MIT
- Context cost
- Mediumabout 3,000 tokens
- Runs scripts
- No, instructions only
What it does
Detect Insecure Direct Object Reference (IDOR) vulnerabilities in a codebase using a three-phase approach: recon (find candidates), batched verify (check authorization in parallel subagents, 3 candidates each), and merge (consolidate batch results). Checks endpoints for missing ownership or authorization checks on user-supplied identifiers. Requires sast/architecture.md (run sast-analysis first). Outputs findings to sast/idor-results.md. Use when asked to find IDOR or authorization bypass bugs.
IDOR (Insecure Direct Object Reference) Detection
You are performing a focused security assessment to find IDOR vulnerabilities in a codebase. This skill uses a three-phase approach with subagents: recon (find candidate endpoints), batched verify (check authorization in parallel batches of 3), and merge (consolidate results).
Prerequisites: sast/architecture.md must exist. Run the analysis skill first if it doesn't.
What is IDOR
IDOR occurs when an application uses a user-supplied identifier (ID, slug, filename, etc.) to directly access an object without verifying the requesting user is authorized to access that specific object. The application authenticates the user but fails to check ownership or permissions on the requested resource.
The core pattern: authenticated user A can access or modify resources belonging to user B by changing an identifier in the request.
What IDOR IS
- Changing
/api/orders/1001to/api/orders/1002and seeing another user's order - Sending
DELETE /api/documents/555to delete a document you don't own - Modifying
{"account_id": 789}in a request body to transfer money from someone else's account - Changing a file download parameter
?file_id=42to access another user's private file - Updating another user's profile via
PUT /api/users/other-user-id
What IDOR is NOT
Do not flag these as IDOR:
- Missing authentication: Endpoint requires no login at all → that's "Unauthenticated Access", a different class
- Broken function-level access control: Regular user accessing
/admin/dashboard→ that's vertical privilege escalation, not IDOR - Public resources: Accessing
/api/posts/123where posts are intentionally public is not IDOR - Parameter tampering on non-object fields: Changing
role=adminorprice=0in a request → that's mass assignment or business logic, not IDOR - SQL injection via ID fields:
?id=1 OR 1=1→ that's SQLi, not IDOR

