OWASP still applies, but the failure modes shift
OWASP Top 10 remains a useful taxonomy. What changes with AI-generated code is not the category names. It is how vulnerabilities are introduced, distributed, and hidden across a codebase.
AI tools accelerate scaffold generation, copy architectural patterns across files, and create convincing but incomplete implementations. This changes the shape of risk for every major OWASP class.
A01: Broken Access Control
In AI-generated code, broken access control often appears as inconsistent policy application rather than explicit omission.
Common patterns: - Route-level auth without object-level ownership checks. - Correct checks in REST endpoints but missing checks in background jobs or webhooks. - Generated admin paths left exposed after refactors.
Primary control focus: - Centralized authorization policies. - Multi-tenant boundary tests. - Deny-by-default resource access.
A02: Cryptographic Failures
Models frequently produce crypto code that works functionally but fails security requirements.
Common patterns: - Weak or default cipher suites. - Incomplete key management and rotation logic. - Token signing without strict claim validation.
Primary control focus: - Approved crypto library baselines. - Mandatory key lifecycle policies. - Automated checks for insecure algorithm usage.
A03: Injection
Injection remains high risk, but AI-generated injection paths are often semantically indirect.
Common patterns: - Validated input recomposed unsafely before sink usage. - Prompt-driven query builders with partial escaping. - Template rendering using mixed trusted and untrusted fragments.
Primary control focus: - Parameterized queries and strict sink wrappers. - End-to-end taint tests through helper layers. - Context-aware encoding at final output boundaries.
A04: Insecure Design
AI can rapidly produce feature-complete components that never had a threat model.
Common patterns: - Agent action systems without policy engines. - Security controls bolted on after architecture solidifies. - Sensitive workflows designed without abuse-case constraints.
Primary control focus: - Threat modeling in prompt-to-implementation workflows. - Security acceptance criteria in PR templates. - Design reviews for high-impact flows.
A05: Security Misconfiguration
Generated infrastructure and framework defaults create broad misconfiguration surfaces.
Common patterns: - Debug modes enabled in production paths. - Excessive CORS permissions from copied snippets. - Missing hardening headers in generated middleware.
Primary control focus: - Environment-specific configuration validation. - IaC policy checks in CI. - Production-safe framework templates.
A06: Vulnerable and Outdated Components
AI suggestions can introduce stale dependencies quickly, especially when generated from older examples.
Common patterns: - Pinning to vulnerable package versions. - Pulling transitive dependencies with known CVEs. - Mixing incompatible auth or crypto libraries.
Primary control focus: - Automated dependency health gates. - Version policy enforcement with exception workflows. - Regular SBOM generation and review.
A07: Identification and Authentication Failures
Authentication code generated by LLMs often appears complete while missing edge-case protections.
Common patterns: - JWT verification without aud or iss checks. - Session invalidation gaps after credential changes. - MFA paths that are optional due to branching mistakes.
Primary control focus: - Standardized auth middleware and test harnesses. - Replay, expiry, and issuer mismatch test cases. - Centralized session lifecycle management.
A08: Software and Data Integrity Failures
AI-assisted pipelines can auto-generate build and deployment scripts without integrity guarantees.
Common patterns: - Unsigned artifacts in CI/CD. - Runtime plugin loading from untrusted sources. - Blind trust in generated migration scripts.
Primary control focus: - Artifact signing and provenance checks. - Trusted source allowlists. - Integrity verification before deploy.
A09: Security Logging and Monitoring Failures
Generated systems often include logs for debugging, not incident response.
Common patterns: - Missing audit trails for privileged operations. - Inconsistent identifiers that break event correlation. - Sensitive data leakage in verbose logs.
Primary control focus: - Security event schemas by default. - Correlation IDs across service boundaries. - Redaction policies and retention controls.
A10: Server-Side Request Forgery
AI-generated integration code frequently treats arbitrary URLs as trusted input.
Common patterns: - Fetching user-supplied URLs without destination validation. - Internal metadata endpoints exposed through helper functions. - Proxy utilities without network segmentation controls.
Primary control focus: - Strict URL and destination allowlists. - DNS and IP validation before outbound requests. - Segmented runtime egress policies.
Practical takeaway for AI-era teams
OWASP Top 10 still provides the right categories, but teams need updated detection and verification tactics: - Use OWASP as taxonomy, not implementation guidance. - Add AI-specific secure coding guardrails to templates. - Combine static detection with exploit verification. - Track recurring pattern classes to drive developer education.
Closing
The risk landscape did not change because OWASP became obsolete. It changed because software production behavior changed.
Security programs that map classic categories to AI-specific failure modes will keep pace. Programs that rely on legacy assumptions will miss high-impact vulnerabilities hidden behind clean-looking generated code.