# Stop trusting AI to "just find the bugs" in your pull requests. I

> Source: <https://promptcube3.com/en/posts/9441/>
> Published: 2026-09-15 21:45:39+00:00

# Stop trusting AI to "just find the bugs" in your pull requests. I

If you want a real AI code security review, you have to stop treating the LLM like a magic oracle and start treating it like a junior dev who is overconfident and prone to hallucinating security patches.

## Stop using generic prompts for security audits

The biggest mistake I see is developers pasting a file and asking, "Are there any security vulnerabilities here?" You'll get a generic list of "ensure input is sanitized" and "use strong passwords." That's useless fluff.

I switched to a "Threat Model First" approach. Instead of asking for bugs, I tell the AI exactly what the attacker's goal is.

**The "Generic" Way (Bad):**

"Review this Python FastAPI code for security issues."*Result:* "Make sure you use HTTPS and validate your inputs." (Yawn).

**The "Attack Vector" Way (Better):**

"Act as a security researcher. The goal is to achieve Remote Code Execution (RCE) through the `/upload` endpoint. Review this code specifically for unsafe deserialization or path traversal. If you find nothing, explain why the current implementation prevents these specific attacks."

When you force the AI to prove a negative, it actually looks at the logic instead of guessing based on common patterns.

## Fix the "Hallucinated Patch" loop

We've all been there. The AI finds a legitimate SQL injection, suggests a fix, you apply it, and then it suggests *another* fix for the code it just wrote because it realized the first fix broke the type system.

To kill this loop, I use a "Verification Step" config. I don't let the AI write the fix in the same prompt it uses for the review.

| Step | Action | Tooling/Prompt |

| :--- | :--- | :--- |

| 1. Identification | Find the flaw | "Identify the vulnerability. Do NOT provide code yet." |

| 2. Proof of Concept | Simulate attack | "Write a curl command or a python script that would trigger this flaw." |

| 3. Remediation | Fix it | "Now provide the fix based on the PoC results." |

Last month, using this flow on a legacy Node.js project saved me from merging a "fix" that actually introduced a prototype pollution bug because the AI was rushing to be helpful.

## Use [MCP](https://promptcube3.com/en/tags/mcp/) to feed the AI actual context

A security review is worthless if the AI doesn't know your environment. If it doesn't know you're running on an outdated version of Alpine Linux or using a specific middleware, its "security" advice is just a guess.

I've started using Model Context Protocol (MCP) servers to pull in my actual dependency tree (`package-lock.json` or `go.mod`) and my Dockerfile. When the AI can see that I'm running as `root` in the container, it stops suggesting generic "user permission" tips and tells me exactly which line in the Dockerfile to change to `USER node`.

If you're tired of manually uploading files, look into [Workflows](https://promptcube3.com/en/category/workflows/) to automate how context is fed into your security prompts. It turns a 10-minute setup into a 2-second trigger.

## When to ignore the AI's security warnings

AI is paranoid. It will flag every single `eval()` or `dangerouslySetInnerHTML` as a critical risk, even if the data is hardcoded and safe.

The trick is to create a "Security Baseline" document. I keep a `.md` file in my repo listing known acceptable risks (e.g., "We use eval here because we are building a DSL for internal use only"). I feed this to the AI at the start of the session.

**Before:** AI spends 40% of the chat telling me to remove a specific library it thinks is deprecated.**After:** AI ignores the "known risks" and finds a logic flaw in my JWT expiration check that actually mattered.

## Leverage the community for vetted prompts

You don't need to invent these prompt structures from scratch. I've found that browsing [Prompt Sharing](https://promptcube3.com/en/category/prompts/) saves me hours of tweaking. Instead of guessing if "Act as a CISSP" or "Act as a penetration tester" works better, you can see which personas actually yield fewer false positives in real-world codebases.

One specific tip: if the AI is being too vague, tell it to "Output the results in a table with: Vulnerability, Severity (Low/Med/High), CVSS Score estimate, and Remediation." Forcing it into a structured format kills the "conversational fluff" and makes the review actionable.

## The actual cost of AI security reviews

Don't assume this is free or "cheap." If you're using a high-token window model (like [Claude](https://promptcube3.com/en/tags/claude/) 3.5 or GPT-4o) and feeding it 20 files for a comprehensive review, you'll hit the rate limits or burn through credits fast.

In my experience, reviewing a 500-line module with deep context costs about $0.15 to $0.40 per run. That's nothing compared to a production breach, but if you're running this on every single save via a plugin, the cost adds up. I recommend running "Security Mode" only on PRs, not on every keystroke.

The most expensive mistake is blindly merging an AI-suggested "security fix" without running it through a linter and a test suite. AI is a great reviewer, but a mediocre coder when it comes to edge-case security. Trust the identification, verify the fix.

[Next AI companies are treating mathematics like a leaderboard game instead of a pursuit of knowledge →](https://promptcube3.com/en/news/9392/)
