ORIGINAL RESEARCH

Three frameworks for detecting AI-generated code vulnerabilities

Guardiant is built on three research frameworks that formalize how AI coding assistants introduce structural security flaws. These frameworks are reproducible, applicable beyond Guardiant, and represent a new class of vulnerability detection.

FRAMEWORK 01

VCVF

Vibe Code Vulnerability Fingerprinting catalogs the structural patterns that AI coding assistants introduce. Each pattern is reproducible across different AI tools and codebases.

vcvf/sym-crud
HIGH

Symmetric CRUD Vulnerabilities

AI tools generate UPDATE/DELETE endpoints with identical authorization logic as GET endpoints. No ownership verification.

Vulnerable Pattern
// AI-generated: same auth check for all operations
router.delete('/api/users/:id', async (req, res) => {
  if (!req.session.userId) return res.status(401).send();
  // BUG: Any authenticated user can delete ANY user
  await db.users.delete({ id: req.params.id });
  res.send({ success: true });
});
Detection Method

Pattern match: delete/update handlers with identical auth middleware as read handlers, no resource ownership check.

FRAMEWORK 02

Compound Vulnerability Chaining

Individual medium-severity findings become critical when chained together. CVC identifies these attack paths automatically.

Missing RLSDirect DB AccessData ExfiltrationCVSS 9.8

A table without RLS allows any client to query all rows. Combined with a client-side SDK, an attacker can exfiltrate the entire database.

Client-Side AuthAPI EndpointPrivilege EscalationCVSS 9.1

Role checks only in the frontend. An attacker calls the API directly with a modified request, gaining admin access.

Symmetric CRUDIDORAccount TakeoverCVSS 8.8

Update endpoint uses same auth as read. Attacker modifies user_id in the request body to take over any account.

FRAMEWORK 03

Trust Inversion Edge Finding

Every application has trust boundaries. TIEF identifies where the code trusts the wrong boundary — and shows you the exploit path.

Frontend Auth Logic

Misplaced Trust
Client-side role checks
Actual Boundary
Server-side middleware

The code assumes the frontend is the security boundary. An attacker bypasses it by calling the API directly.

BaaS SDK Trust

Misplaced Trust
Supabase/Firebase client SDK
Actual Boundary
Row Level Security policies

The code trusts the client SDK to enforce access control. Without RLS, the SDK is an open door.

Optimistic Validation

Misplaced Trust
Client-side form validation only
Actual Boundary
Server-side input sanitization

Validation runs only in the browser. An attacker sends raw requests with malicious payloads.

These frameworks are open source

The implementations, detection logic, and test cases are all available in the Guardiant repository. Use them, extend them, or build your own tools on top.