JFrog Flags Batch of SQLite CVEs as Likely AI-Generated 'LLM Slop'

JFrog security researchers reported on August 3, 2026 that a batch of SQLite vulnerability reports posted to the GitHub repository programmervuln/cveadvisory- appear to be AI-generated text rather than descriptions of genuine security flaws. The research team's advisory explains that several CVEs assigned critical and high severity scores by the National Vulnerability Database (NVD) and picked up by CISA's Automated Dissemination Process (ADP) do not hold up under basic technical review against the actual SQLite source code. JFrog Research
A CVE, or Common Vulnerabilities and Exposures entry, is a standardized record assigned a unique ID and a severity score so that security teams can track and prioritize software flaws. The batch in question includes at least six CVEs targeting SQLite, all described as use-after-free conditions — a class of memory bug where a program continues to access memory after it has been freed, potentially allowing an attacker to manipulate that memory.
CVE-2026-51302 was initially assigned a 10.0 Critical score by Red Hat and later downgraded to 7.6 High. NVD independently rated it 9.8 Critical and pinned it to SQLite version 3.41.0. JFrog found that the advisory claims a use-after-free bug in a function called exprComputeOperands(), but that function did not exist in SQLite 3.41 and was only added to the codebase in mid-2025. CVE-2026-51303 was reported as a use-after-free in ExprListDelete() with a 9.8 Critical score and contradictory NVD metadata. CVE-2026-51300 was described as a use-after-free in sqlite3ExprDelete() with a 9.1 Critical score and n/a placeholders in its NVD entry.
Three additional CVEs round out the batch. CVE-2026-51297 reported a use-after-free via jsonBlobEdit() at 8.8 High, pinned to SQLite 3.41.0. CVE-2026-51296 cited a use-after-free in jsonRemoveFunc at 7.5 High, also pinned to 3.41.0. CVE-2026-51304 described a use-after-free via pOrderBy->nExpr at 7.5 High, with vendor and product listed as n/a in NVD metadata. None of the disputed CVEs appear on SQLite's official advisory page.
JFrog's verification process was straightforward. The team cloned the official sqlite/sqlite repository, checked out the tagged releases for versions 3.41.0, 3.51.2, and 3.51.3, built each in isolated Docker containers, and ran the proof-of-concept SQL statements from each advisory under AddressSanitizer — a tool that detects memory errors like use-after-free bugs at runtime. The results did not confirm any of the claimed vulnerabilities. In one specific case, JFrog reported that the function sqlite3ReleaseTempReg() does not involve freeing memory on the heap at all; it only recycles register indices, which contradicts the vulnerability claims tied to it.
The broader concern JFrog raises is institutional. Their post argues that AI-generated CVE text can cause organizations to waste time investigating and patching flaws that do not exist, while also polluting the vulnerability databases that security teams, automated tools, and compliance frameworks rely on to prioritize their work. NVD flagged the batch as critical, and CISA's ADP agreed with those ratings, meaning the inflated scores propagated through automated feeds before any independent technical validation occurred. The metadata inconsistencies JFrog catalogued — including n/a placeholders for vendor and product in some entries and contradictory fields in others — were apparently not enough to trigger a hold on publication.
This is not the first time the CVE ecosystem has dealt with questionable SQLite entries. CVE-2024-0232, a heap use-after-free in jsonParseAddNodeArray(), and CVE-2025-6965, a memory corruption flaw, are both documented in vendor advisories from 2025. Those CVEs, however, correspond to identifiable code paths in the actual SQLite source. The distinction matters because the current batch's defects are structural: functions named in the advisories either did not exist in the pinned version or operate on mechanisms that do not perform the memory operations the advisories describe.
The pinned version itself is a red flag. SQLite 3.41.0 was released in early 2023. Attaching a 2026 CVE to a two-year-old release while referencing functions that only entered the codebase in mid-2025 produces an internally inconsistent advisory. That inconsistency apparently survived whatever review NVD applied before assigning severity scores.
In my view, this episode exposes a structural weakness in the CVE pipeline that the industry has been slow to confront. NVD and CISA's ADP operate at scale, processing thousands of entries, and they rely on the CVE Numbering Authority (CNA) ecosystem for initial vetting. But when a GitHub repository can submit advisory text that reads plausibly enough to receive 9.8 Critical ratings and propagate through CISA's feeds without anyone confirming that the named function exists in the pinned version, the bottleneck is not throughput. It is verification. Building software with AddressSanitizer and checking the source tree for a function name are not exotic techniques. They are the baseline steps any competent security team would take before triaging a use-after-free claim. The fact that these steps happened after publication, in a JFrog blog post rather than during the NVD intake process, is the actual story.
The cost is not merely hypothetical. Every security operations center that ingests NVD feeds programmatically would have received these entries as critical-priority items. Triage queues would have been reweighted. Patching cycles would have been interrupted — for a vulnerability that does not exist, in a function that did not exist, in a version pinned two years before the function was written. The signal-to-noise ratio in vulnerability management is already a chronic pain point. AI-generated advisory text, plausible in structure and technical in vocabulary, degrades that ratio precisely where automated systems are least equipped to catch it: at the boundary between human-authored and machine-generated content, where existing quality controls assume a human author's accountability.
JFrog's research post does not speculate on the motivation behind the programmervuln/cveadvisory- repository or identify its operator. What it does establish is that the technical claims in the disputed advisories do not hold up under standard verification, that the severity ratings assigned by NVD and endorsed by CISA's ADP were not warranted by the underlying code, and that the pattern of internally inconsistent metadata, nonexistent functions, and implausible memory-operation descriptions is consistent with AI-generated text rather than genuine vulnerability research. The implication for the CVE ecosystem is straightforward: the intake and scoring pipeline needs a verification layer that does not assume good faith, because the cost of not having one is borne by every downstream consumer of the data.

