Vibe coding & comprehension debt
Accepting AI output you don't fully understand. The code works on the happy path, but nobody
on the team can explain its failure modes, so nobody threat-models it. That's how
insecure defaults and hard-coded secrets (CWE-798) reach production.
Memory-safety bugs in firmware
LLM-generated C for MCUs repeatedly shows buffer overflows (CWE-120),
out-of-bounds writes (CWE-787), integer overflows and race conditions in ISRs. On an
RTOS without an MMU, one unchecked memcpy can mean full device takeover.
Hardware CWEs in AI-generated RTL
LLMs writing Verilog/SystemVerilog rarely know the hardware CWE list: debug interfaces
without access control (CWE-1191), lock bits that can be overwritten (CWE-1231), security
registers with no defined reset value (CWE-1271). Silicon can't be patched in the field.
Hallucinated dependencies & slopsquatting
Models invent package and library names that don't exist. Attackers register those names
and wait. Pull one into your build and you have a software supply-chain compromise,
with no typo required.
Excessive agency & prompt injection
Coding agents with shell, cloud or production access can be steered by instructions hidden
in issues, docs or dependencies (OWASP LLM01 prompt injection). Give them too much
reach and a misread instruction becomes a deleted database (OWASP LLM06 excessive agency).
Compliance: EU Cyber Resilience Act
Under the CRA, manufacturers of products with digital elements must report actively exploited
vulnerabilities from September 2026 and meet full secure-by-design obligations by December 2027.
"The AI wrote it" is not a defence.