Threat reportThreat IntelligenceTL-2026-1622
Vibe-Coded Applications Riddled With Exploitable Security Flaws — Theori Xint.io Study Finds 434 Issues Across AI-Generated Codebases
Theori's autonomous pentest platform Xint.io found 434 exploitable security issues across three AI-generated ("vibe-coded") application test scenarios — two greenfield builds and one hardened legacy migration. Resource-exhaustion/DoS, authorization/IDOR, and access-boundary/SSRF/traversal flaws dominated, while traditional injection (SQLi/XSS) was comparatively rare; IDOR's share of findings nearly tripled (11% to 28%) as the codebase grew from greenfield to a large migrated brownfield app.
Key facts for Xint Code vibe-coded flaw study
| Identifiers | TL-2026-1622 |
|---|---|
| Also known as | Vibe-Coding Security Debt, AI-Generated Code Vulnerability Surge, Xint.io 434-Flaw Study |
| Severity | MEDIUM |
| Exploitation status | Public proof-of-concept exploit |
| Affected products | Generic / Cross-Vendor AI-generated and AI-assisted ('vibe-coded') web applications, including greenfield builds and legacy-to-modern (e.g. PHP to Laravel+React) migrations; Gnuboard7 Project Gnuboard7 (legacy PHP CMS) migrated to Laravel + React |
| Weaknesses (CWE) | CWE-770, CWE-862, CWE-639, CWE-22, CWE-918, CWE-798, CWE-287, CWE-347, CWE-94, CWE-489 |
| Tools | Burp Suite Intruder, Semgrep, TruffleHog - S9009, Xint Code, Xint.io, gitleaks |
| MITRE ATT&CK techniques | T1005 Data from Local System, T1046 Network Service Discovery, T1059 Command and Scripting Interpreter, T1068 Exploitation for Privilege Escalation, T1078 Valid Accounts, T1083 File and Directory Discovery, T1133 External Remote Services, T1190 Exploit Public-Facing Application, T1203 Exploitation for Client Execution, T1210 Exploitation of Remote Services, T1211 Exploitation for Stealth, T1213 Data from Information Repositories and 7 more in the attack flow |
| Motivation | UNKNOWN |
| Target sectors | software-development, technology, startups, finance, health, ecommerce, government administration, education |
| Target regions | Global |
| Detection rules | 9 (1 shown free) |
| Sources | 11 cited sources |
Detection coverage for Xint Code vibe-coded flaw study
As of 2026-07-22, Threadlinqs Intelligence publishes 9 detection rule(s) for TL-2026-1622 across Splunk SPL, Microsoft KQL and Sigma, covering 22 indicator(s) of compromise. The whole corpus is readable without an account. Every threat comes with one complete detection in Splunk SPL, Microsoft KQL and Sigma, free for everyone; a free account adds daily TL Creds to unlock the rest. Paid plans add a larger daily allowance, correlation and the MCP server. Threadlinqs MCP server · View plans.
Free detection: IDOR/BOLA Sequential Object-ID Enumeration Against AI-Generated Lookup Endpoint
Detects a single authenticated session issuing rapid sequential/incrementing object_id (order_id, user_id, etc.) lookups against a web endpoint and receiving HTTP 200 for a high count of distinct IDs in a short window — the exact signature of an ID-only object-lookup query (SELECT * FROM orders WHERE id = :id) with no ownership check, the study's largest authorization defect class (88 findings, CWE-862/CWE-639).
- Languages: Splunk SPL, Microsoft KQL, Sigma
- ATT&CK: T1190, T1595.002, T1213
- Data sources: web_access_logs, application_gateway_logs, waf_logs
- Severity: high
- Confidence: high
Splunk SPL
index=web sourcetype=access_combined
| rex field=uri_query "(?i)(?:id|order_id|user_id)=(?<obj_id>\d+)"
| where isnotnull(obj_id) AND status=200
| bin _time span=1m
| stats dc(obj_id) as distinct_ids values(obj_id) as ids_seen count as request_count by _time, c_ip, cs_username, uri_path
| where distinct_ids > 20
| sort - distinct_idsMicrosoft KQL
let lookback = 1h;
AppRequests
| where TimeGenerated > ago(lookback)
| where ResultCode == 200
| extend obj_id = extract(@"(?i)(?:id|order_id|user_id)=(\d+)", 1, Url)
| where isnotempty(obj_id)
| summarize distinct_ids = dcount(obj_id), ids_seen = make_set(obj_id, 50), request_count = count() by bin(TimeGenerated, 1m), ClientIP, UserId, tostring(split(Url, "?")[0])
| where distinct_ids > 20
| project TimeGenerated, ClientIP, UserId, distinct_ids, request_count, ids_seenSigma
title: Sequential Object-ID Enumeration Consistent with IDOR/BOLA Probing
id: 7e2a1c3e-4f5b-4a6c-9d1e-2b3c4d5e6f70
status: experimental
description: Detects a single client enumerating a high count of distinct sequential object IDs (order_id/user_id/id) against a lookup endpoint within one minute, receiving 200 OK for records it does not own — the signature of an AI-generated ID-only authorization query.
references:
- https://www.securityweek.com/vibe-coded-apps-riddled-with-exploitable-security-flaws/
- https://theori.io/blog/announcing-xint-code
author: AII-Detector — ThreadLinqs Intelligence
date: 2026/07/22
tags:
- attack.initial-access
- attack.t1190
- attack.discovery
- attack.t1213
- cwe.862
- cwe.639
logsource:
category: webserver
product: generic
detection:
selection:
cs-uri-query|re: '(?i)(id|order_id|user_id)=\d+'
sc-status: 200
timeframe: 1m
condition: selection | count(cs-uri-query) by c-ip > 20
falsepositives:
- Legitimate bulk-export or admin reporting tools that enumerate IDs under an authorized service account
- Load-testing or QA automation hitting sequential fixture IDs in a staging environment
level: highKnown false positives:
- Authorized bulk-export/admin reporting service accounts enumerating records sequentially
- Automated QA/load-testing against staging fixture IDs
Tuning notes: Tune the distinct-ID threshold (20) to the endpoint's normal per-session lookup rate; exclude known service-account/admin identities via an allowlist lookup; correlate with a 403/ownership-check field if the app later adds one to reduce noise.
- SSRF Outbound Fetch to Internal/Cloud-Metadata Address Range from URL-Preview Feature · unlock with TL Creds
- Path-Traversal Sequence in File-Import/File-Fetch Request Parameter · unlock with TL Creds
- Debug-Mode Console / Verbose Stack Trace Reachable Outside Development Range · unlock with TL Creds
- Hardcoded Secret Literal Committed to Source (gitleaks/trufflehog-style) · unlock with TL Creds
- Weak JWT Validation — alg:none Acceptance or verify=False Pattern · unlock with TL Creds
- Missing Rate-Limit Burst Combined With Cross-Tenant Data Exfiltration Over Web Service · unlock with TL Creds
- Missing Ownership Validation — Cross-Tenant Record Access on Object-Lookup Endpoint · unlock with TL Creds
- Missing Rate-Limit High-Frequency Identical-Endpoint Burst (Resource Exhaustion / DoS) · unlock with TL Creds
Indicators of compromise for Xint Code vibe-coded flaw study
As of 2026-07-22, Threadlinqs Intelligence tracks 22 indicators of compromise for TL-2026-1622.
How Xint Code vibe-coded flaw study works
Theori, a security firm known for large-scale AI-driven code auditing (its Xint Code / Xint.io platform swept the database category at the 2025 ZeroDay Cloud competition by discovering critical RCEs in Redis, PostgreSQL, and MariaDB), ran its autonomous pentest platform against three representative 'vibe-coded' application scenarios to quantify the real-world security debt of AI-assisted development: (1) a new application built from a well-written specification with experienced developer oversight, (2) a new application built from a casual, unstructured directive with minimal oversight, and (3) Gnuboard7, a legacy PHP CMS hardened and migrated to a modern Laravel + React stack — representing the increasingly common 'AI-assisted legacy modernization' pattern. Each app received a 30-minute autonomous runtime-plus-source-code scan.
Across the three apps, Xint.io surfaced 434 exploitable issues: 196 in the two greenfield apps and 238 in the migrated brownfield Gnuboard7 app. The dominant category (93 findings) was resource exhaustion / denial-of-service stemming from missing rate-limiting controls — AI code generators reliably implement the functional request-handling path but omit throttling, backoff, and abuse controls unless explicitly prompted. The second-largest category (88 findings) was authorization and IDOR (Insecure Direct Object Reference / Broken Object-Level Authorization) — generated database queries filter strictly on the requested identifier (e.g. `SELECT * FROM orders WHERE id = :id`) without validating that the requesting principal actually owns the referenced object, letting any authenticated user enumerate or modify records belonging to others. Access-boundary issues — path traversal, SSRF, and related boundary-crossing flaws — made up 54 findings, frequently surfacing in URL-preview / file-fetch / import features where the generated code passes user-supplied URLs or paths directly into filesystem or HTTP-client calls without allowlisting internal address ranges or normalizing paths. Eleven critical-severity findings were hardcoded or default secrets (API keys, DB passwords, JWT signing secrets baked into source or config as string literals, then propagated across files via stateless code generation and persisted in git history even after later removal), and six were debug-mode remote code execution — frameworks (e.g. Django/Flask-style debug consoles, Laravel debug pages) left enabled in production-reachable configurations, exposing interactive code-execution consoles or verbose stack traces with secrets.
A structurally significant finding is that the IDOR flaw share nearly tripled — from 11% of findings in the smaller greenfield apps to 28% in the larger, more complex Gnuboard7 migration — indicating that authorization-boundary defects compound disproportionately as AI-generated/AI-assisted codebases grow in scope and object-relationship complexity, a pattern consistent with prior industry findings (e.g. a 15-app, 5-agent study reporting 100% of AI coding agents introduced SSRF via URL-preview features and 0% implemented CSRF protection; the May 2025 Lovable mass-exposure incident, CVE-2025-48757, in which 170+ vibe-coded applications had their backing databases fully exposed due to missing/misconfigured access controls; and Cloud Security Alliance research describing a broader 'AI-generated code vulnerability surge' with Fortune 50 empirical data showing AI-assisted developers commit 3-4x faster than peers while introducing security findings at 10x the rate).
Notably, traditional injection classes — SQL injection and XSS — appeared far less frequently than anticipated, which the researchers attribute to genuine improvement in foundation-model training/tooling around those specific, well-studied vulnerability classes (extensive public training data, linting, and framework-level ORM/templating defaults). The residual risk in AI-generated code has instead concentrated in *business-logic and authorization-boundary* defects — categories that require understanding of who should be allowed to do what, not just how to satisfy a functional prompt — which current-generation code-generation models do not reliably reason about unless the developer explicitly specifies access-control requirements.
This is a systemic, cross-cutting risk pattern rather than a single-product vulnerability: with an estimated ~90% of developers now using AI coding assistants in some capacity, organizations adopting 'vibe coding' — for both greenfield development and, increasingly, legacy-system modernization — inherit a predictable, quantifiable defect profile (DoS-by-missing-rate-limits, IDOR-by-default, SSRF-via-fetch-features, hardcoded secrets, and debug-mode exposure) that traditional injection-focused SAST/SCA tooling and code-review checklists are not tuned to catch. Detection and hardening guidance for AI-assisted development pipelines is therefore treated here as a trackable, ongoing threat class.
MITRE ATT&CK techniques by tactic:
Collection
T1005 Data from Local System; T1213 Data from Information Repositories
Discovery
T1046 Network Service Discovery; T1083 File and Directory Discovery
Execution
T1059 Command and Scripting Interpreter; T1203 Exploitation for Client Execution
Privilege Escalation
T1068 Exploitation for Privilege Escalation; T1548 Abuse Elevation Control Mechanism
Persistence
Initial Access
T1133 External Remote Services; T1190 Exploit Public-Facing Application
Lateral Movement
T1210 Exploitation of Remote Services
Defense Evasion
T1211 Exploitation for Stealth
Impact
T1499 Endpoint Denial of Service
Credential Access
T1552.001 Credentials In Files; T1606 Forge Web Credentials
Exfiltration
T1567 Exfiltration Over Web Service
Resource Development
Reconnaissance
Remediation for Xint Code vibe-coded flaw study
Immediate actions
- Add explicit rate-limiting / throttling middleware to every AI-generated API endpoint before deployment; do not rely on the code generator to add it unprompted
- Enforce ownership checks (not just ID-presence checks) on every object-lookup query — validate that request.user owns or is authorized for the specific object_id, not merely that the object_id exists
- Allowlist and validate all outbound URL/host targets in any fetch/import/URL-preview feature to block SSRF to internal address ranges (RFC1918, link-local, cloud metadata endpoints)
- Grep committed history and CI secrets scanners (gitleaks, trufflehog) across all AI-generated repositories for hardcoded credentials and rotate any found
- Confirm DEBUG/debug-mode flags are false and debug consoles/verbose stack traces are disabled in every production-reachable configuration path
Workarounds
- Manually audit AI-generated authorization/authentication code paths (route decorators, JWT verification, object-lookup queries) before any AI-generated or AI-migrated application reaches production
- Disable or gate URL-preview/file-fetch/import features that accept arbitrary user-supplied URLs until SSRF allowlisting is implemented
Longer-term hardening
- Integrate Semgrep or equivalent SAST rulesets tuned specifically for AI-code authorization gaps (missing auth decorators, ID-only object queries, verify=False JWT patterns) into the CI pipeline for any AI-assisted or AI-generated codebase
- Require explicit access-control and abuse-limit requirements in the specification/prompt fed to code-generation tools, since generators reliably implement stated functional requirements but not implicit security requirements
- Run autonomous/AI-driven pentesting (e.g. Xint.io or equivalent) against AI-generated codebases as a standard pre-production gate, especially for legacy-migration projects where object-relationship complexity is high
- Track IDOR/BOLA findings as a first-class metric during code review of AI-generated pull requests, given the demonstrated correlation between codebase scale/complexity growth and IDOR share
- Establish a governance policy for AI-assisted legacy modernization projects (framework migrations) that mandates the same authorization-boundary review applied to greenfield AI-generated code
Affected and fixed versions
- Generic / Cross-Vendor — AI-generated and AI-assisted ('vibe-coded') web applications, including greenfield builds and legacy-to-modern (e.g. PHP to Laravel+React) migrations
Vulnerable versions: Any application scaffolded or substantially generated by LLM/AI coding assistants (e.g. Cursor, Claude Code, Replit, Devin, Codex, Lovable, and similar tools/platforms) without explicit authorization, rate-limiting, and SSRF-hardening requirements specified to the generator
Fixed in: N/A — mitigated per-application via explicit security-requirement specification, SAST scanning tuned to authorization gaps, and pre-production autonomous/manual pentesting; not a single-vendor patchable defect - Gnuboard7 Project — Gnuboard7 (legacy PHP CMS) migrated to Laravel + React
Vulnerable versions: AI-assisted migration build used as the Xint.io brownfield test case (238 of 434 total findings)
Timeline of Xint Code vibe-coded flaw study
- Security researcher Matan Getz discloses that more than 170 applications built on the locked-ioc-20 vibe-coding platform had their backing databases fully exposed due to missing/misconfigured access controls — CVE-2025-48757, the vibe-coding industry's first named, public, large-scale security incident.
- locked-ioc-21's locked-ioc-14 autonomous analysis platform sweeps the database category at the 2025 ZeroDay Cloud competition, discovering critical remote-code-execution vulnerabilities in Redis, PostgreSQL, and MariaDB and outperforming every human competing team (date approximate per locked-ioc-21 blog).
- Museum of Vibe Coding publishes 'Vibe Coding Security: The Complete Research Record,' an early industry-wide compilation of AI-generated-code vulnerability findings later cited as background corroboration for the locked-ioc-17 study.
- devclass publishes 'Vibe coded applications full of security blunders,' summarizing early industry findings on systemic AI-generated-code security debt.
- Ox Security publishes 'Vibe Coding Security: Why 62% Of AI-Generated Code Ships With Vulnerabilities,' independently quantifying the same class of authorization and secrets-handling defects later confirmed in the locked-ioc-17 study.
- Cloud Security Alliance publishes 'Vibe Coding's Security Debt: The AI-Generated CVE Surge,' a research note citing Fortune 50 empirical data that AI-assisted developers commit 3-4x faster than peers while introducing security findings at roughly 10x the rate.
- locked-ioc-21 commercially launches locked-ioc-14 / locked-ioc-17, an LLM-native SAST platform capable of analyzing millions of lines of source code, config, and binaries in under 12 hours with zero human intervention; SiliconANGLE and BusinessWire cover the launch the same day, the latter highlighting locked-ioc-14's human-like prioritization of business-logic vulnerabilities.
- Help Net Security publishes 'locked-ioc-21 brings locked-ioc-14 to market for large-scale AI code security analysis,' amplifying the platform launch coverage.
- A dev.to writeup, 'Vibe Coding Security: 69 Vulnerabilities Found in AI-Generated Apps,' independently documents a comparable per-application vulnerability count in AI-generated code, reinforcing the scale of the defect pattern ahead of the locked-ioc-17 study's publication.
- Security Boulevard publishes '5 Vulnerabilities in Every Vibe-Coded App,' documenting the same missing-authorization, hardcoded-secrets, weak-JWT, IDOR-by-default, and eval-pattern-RCE defect classes independently corroborated by the locked-ioc-17 study.
- SecurityWeek reports the locked-ioc-21 locked-ioc-17 study: autonomous pentesting of three vibe-coded application scenarios (two greenfield, one Gnuboard7-to-Laravel/locked-ioc-22 legacy migration) surfaces 434 exploitable security issues, with resource-exhaustion/DoS (93), authorization/IDOR (88), and access-boundary/SSRF/traversal (54) flaws dominating and IDOR share nearly tripling (11% to 28%) as application size grew.
Sources cited for Xint Code vibe-coded flaw study
- Announcing Xint Code theori.io · Vendor report · 2026-03-17
- Xint Code Demonstrates Human-like Discovery and Prioritization of Business Logic Vulnerabilities businesswire.com · Vendor report · 2026-03-17
- Vibe Coding's Security Debt: The AI-Generated CVE Surge labs.cloudsecurityalliance.org · Research · 2026-03-01
- Vibe Coding Security: Why 62% Of AI-Generated Code Ships With Vulnerabilities ox.security · Vendor report · 2026-02-01
- Vibe Coding Security: The Complete Research Record [Unbiased Research, 2026] museumofvibecoding.org · Research · 2026-01-01
- 5 Vulnerabilities in Every Vibe-Coded App securityboulevard.com · Blog · 2026-05-01
- Vibe Coding Security: 69 Vulnerabilities Found in AI-Generated Apps dev.to · Blog · 2026-04-01
- Vibe-Coded Apps Riddled With Exploitable Security Flaws SecurityWeek · News · 2026-07-22
- Vibe coded applications full of security blunders devclass.com · News · 2026-01-15
- Theori brings Xint Code to market for large-scale AI code security analysis Help Net Security · News · 2026-03-18
- Theori launches Xint Code AI platform to uncover hidden vulnerabilities in massive codebases siliconangle.com · News · 2026-03-17
Drafted by the Threadlinqs research pipeline from 11 sources; published ; last updated —.