JFrog Exposes Batch of Fabricated SQLite CVEs Generated by LLMs
Security researchers discovered that over 50 GitHub vulnerability advisories for SQLite were entirely AI-generated LLM slop. The cited code, functions, and patch references did not exist in the target versions.
Impact: Medium
Why it matters
Security teams must independently verify incoming CVE advisories to avoid wasting engineering hours patching non-existent bugs.
TL;DR
- 01LLMs are being used to generate fake CVE advisories at scale.
- 02Always cross-reference CVEs with official vendor security pages.
- 03Automated vulnerability ingestion pipelines are vulnerable to poisoned metadata.
Key facts
- Fabricated Advisories
- 54 out of 55 tested
- Initial Score
- 10.0 Critical (later downgraded to 7.6 High)
The Rise of LLM Slop CVEs
A newly created GitHub repository (programmervuln/cveadvisory-) recently published a batch of SQLite vulnerability advisories alongside 50+ other CVEs. NVD flagged them as critical and CISA ADP agreed. However, JFrog security researchers dug in and found the claims to be completely fabricated LLM slop.
Isolated Testing Workflow
To verify the reports, researchers established an isolated testing workflow:
- Source Inspection: Cloned official repositories and checked out target tags (
version-3.41.0,version-3.51.2,version-3.51.3). - Clean Environment Build: Compiled official SQLite releases inside isolated Docker containers.
- PoC Execution: Fed advisory SQL statements verbatim into compiled binaries under AddressSanitizer (
ASan). - Metadata Audit: Evaluated CPE patterns across NVD and GHSA feeds.
Specific Findings
- CVE-2026-51302: Claimed a heap UAF via
sqlite3ReleaseTempReg()dereferenced byexprComputeOperands(). Investigation showedexprComputeOperands()did not exist in version 3.41, and register release mechanics do not use heap deallocation. - CVE-2026-51303: Claimed
ExprListDelete()failed to clear back-references, referencing a nonexistent patch diff between 3.51.2 and 3.51.3. - CVE-2026-51296: Reported a UAF in
jsonRemoveFuncat lines 3555 and 3575 injson.c, a file that was only 2706 lines long in the target version.
What to do today
- Verify all critical CVE alerts against official vendor commit history.
- Do not rely solely on automated NVD severity scores for rare dependencies.
Sources