Works with the AI tools you already use

    Claude CodeClaude CodeCursorCursorCodex CLICodex CLIMuseMuseDotsDots+22 more

    security review pro

    1

    AppSec-grade security reviews for code and PRs with evidence-based findings and copy-paste fixes.

    $5

    Secure checkout via Stripe

    30-day refund guarantee

    Converts to your local currency at checkout

    Security scanned
    security review pro

    security review pro

    Example session with this skill installed

    Review my recent changes in routes/auth.js and controllers/userController.js. I've added a password reset flow. Focus on medium severity and above.

    • Read your context and instructions
    • Compiled the security review pro

    I have completed the security review of the password reset implementation. The review focused on routes/auth.js and controllers/userController.js.

    Security Review — Auth Flow Update — 2024-05-20

    Verdict: 🛑 NO-SHIP

    The password reset token generation uses a cryptographically weak PRNG, making account takeover trivial via brute-force. This must be fixed before merging.

    Findings (2: 1 critical, 1 medium, 0 low)

    🔴 F-1: Weak Token Generation — controllers/userController.js:42 (confidence: high)

    What's there: const token = Math.random().toString(36).substring(2);
    Attack scenario: An external attacker requests a reset for a target email. Because Math.random() is predictable, the attacker can synchronize their local PRNG state and predict the token, bypassing email ownership verification to reset the victim's password.
    Fix:

    const crypto = require('crypto');
    const token = crypto.randomBytes(32).toString('hex');
    const expiry = Date.now() + 3600000; // 1 hour
    

    Reference: CWE-338 (Use of Insufficiently Cryptographically Strong PRNG)

    🟡 F-2: User Enumeration via Timing — routes/auth.js:18 (confidence: medium)

    What's there: The API returns 404 Not Found if the email doesn't exist, but 200 OK if it does.
    Attack scenario: An attacker scripts requests against the endpoint to validify a list of target emails registered on the platform.
    Fix: Return a generic 200 OK message ("If an account exists, a reset link has been sent") regardless of whether the email was found in the database.
    Reference: CWE-204 (Response Discrepancy Information Leakage)

    Checked & clean

    • Injection: Verified that db.users.findOne() uses parameterized queries.
    • Secrets: No hardcoded API keys found in the reviewed controller.

    Not reviewed

    • services/mailer.js: The actual email delivery logic was out of scope.

    Fix plan (priority order)

    1. F-1: Weak Token — Critical risk of account takeover — ~10 mins effort.
    2. F-2: Enumeration — Privacy improvement — ~15 mins effort.

    Next steps

    1. Would you like me to apply the crypto fix to userController.js now?
    2. Shall I update the response logic in auth.js to prevent enumeration?
    3. Should I review services/mailer.js to ensure the token isn't leaked in logs?

    Connects securely to your tools. The creator never sees your data.

    What you get

    Audit high-risk PRs for OWASP vulnerabilities before merging.Identify hardcoded secrets and credentials with rotation instructions.Simulate attack scenarios to justify security fixes to stakeholders.Verify input validation and sanitization across trust boundaries.

    About this skill

    AppSec-grade static review for your PR, fileset, or pre-launch sweep. OWASP-based checklist mapped to real code patterns (injection, broken auth, secrets, SSRF, weak crypto, XSS, uploads, deserialization, logging, rate limits, supply chain). Every finding: evidence → attack scenario → severity + confidence → concrete fix code. Ship / no-ship verdict and prioritized fix plan. Honest by design: quotes only code it actually read, lists what was NOT reviewed, never echoes leaked secrets in full.

    How to install

    Works the same in every agent - Claude, Cursor, Codex, Copilot and 20+ more.

    ~30 seconds
    1. 1

      Download the ZIP

      Free skills download straight away. Paid skills unlock right after purchase.

    2. 2

      Unzip into your skills folder

      Every agent reads skills from one folder on your machine. Drop the unzipped folder in there.

    3. 3

      Ask your agent to use it

      Restart the agent if it was already running. It picks the skill up automatically - no config needed.

    Skills folder by agent

    Click the path to copy it. Create the folder if it does not exist yet.

    Reviews

    No reviews yet

    Be one of the first to try it. Every listed skill passes our trust checks below.

    Security scanned

    Passed our 8-point scan before listing

    Fresh listing

    Recently published to Agensi

    30-day refund

    Not a fit? Get your money back

    Trust & safety

    Security scanned

    Verified clean 10 days ago

    • Passed all security checks, Safe to install

    Needs access to

    Reelfy

    Listed10 days ago

    What's inside

    Frequently Asked Questions