Fake Security Warnings Made by AI Fooled Government Databases

JFrog security researchers reported on August 3, 2026 that a batch of security warnings about the popular database software SQLite appear to be fake — generated by an AI tool rather than based on real software flaws. The warnings were posted to a GitHub repository called programmervuln/cveadvisory-. Several of them were rated as critical threats by government-backed databases before anyone checked whether the problems they described actually existed. JFrog Research
To understand what happened, it helps to know how software security warnings work. When researchers find a security flaw in a piece of software, they file a report called a CVE, which stands for Common Vulnerabilities and Exposures. Each CVE gets a unique ID number and a severity score so that security teams around the world know which problems to fix first. In the United States, a government database called the National Vulnerability Database, or NVD, collects and scores these reports. Another agency, CISA, automatically shares those scores through its own feeds. The system works on the assumption that CVE reports describe real problems.
The batch in question includes at least six CVEs targeting SQLite, all describing the same type of bug: a use-after-free condition. A use-after-free is a memory error where a program frees up memory it was using but then accidentally tries to access it again. That can let an attacker corrupt data or crash the program. It is a real and serious type of flaw when it actually exists.
The problem is that these particular reports do not hold up. CVE-2026-51302, for example, was rated 9.8 out of 10 in severity by NVD and pinned to SQLite version 3.41.0. But JFrog found that the report names a function in the code called exprComputeOperands() that simply did not exist in SQLite 3.41. That function was only added to the software in mid-2025. Two other entries, CVE-2026-51303 and CVE-2026-51300, received similarly high scores but contained contradictory metadata and n/a placeholders where product information should have been.
Three more CVEs round out the group. CVE-2026-51297 and CVE-2026-51296 were both pinned to SQLite 3.41.0 with high severity scores. CVE-2026-51304 had its vendor and product listed as n/a. None of the six appear on SQLite's own official advisory page.
JFrog's approach to checking was methodical. They downloaded the official SQLite source code, set up the specific versions mentioned in the reports, and ran the example attacks from each advisory using a tool called AddressSanitizer, which detects memory errors while software is running. Think of it as a smoke detector for memory bugs. None of the claimed problems triggered any alerts. In one case, the function the report blamed for the bug does not actually free memory at all — it only recycles internal counters. It would be like reporting a dangerous gas leak in a building's kitchen when the building does not have a kitchen.
This is not the first time the CVE system has dealt with questionable SQLite entries. Two earlier CVEs from 2024 and 2025 also targeted SQLite and described memory bugs. But those reports pointed to real code that exists in the software. The difference with this new batch is that the reports are structurally broken: they name functions that did not exist in the version they claim to target, or they describe memory operations that the named functions do not perform.
The pinned version is itself a warning sign. SQLite 3.41.0 came out in early 2023. Attaching a 2026 security report to a two-year-old release, while naming functions that were not added until mid-2025, produces a report that contradicts itself. That contradiction apparently survived whatever review NVD applied before assigning its severity scores.
The broader context here is about trust and scale. NVD and CISA's automated feeds process thousands of entries and rely on the initial submitters to be reporting in good faith. When a GitHub repository can submit advisory text that reads convincingly enough to receive 9.8-out-of-10 critical ratings and spread through government feeds without anyone confirming that the named function exists in the named version, the bottleneck is not how fast the system runs. It is whether anyone is checking the facts. Building the software with a memory-error detector and looking up whether a function name exists in the source code are not advanced techniques. They are the basic steps any security team would take before treating a vulnerability report as real. The fact that these steps happened after publication, in a JFrog blog post rather than in the government's intake process, is the actual story.
The cost is not hypothetical. Every security team that automatically pulls NVD data would have received these entries as critical-priority items. Their work queues would have been reshuffled. Patching schedules would have been interrupted — for a vulnerability that does not exist, in a function that did not exist, in a version from two years before the function was written. Security teams already struggle to sort real threats from noise. AI-generated reports that look technically convincing make that sorting harder exactly where automated systems are weakest: at the point where a machine-written report is assumed to have human accountability behind it.
JFrog's post does not speculate on who runs the programmervuln/cveadvisory- repository or why. What it does establish is that the claims in these reports do not survive basic checking, that the high severity scores from NVD and CISA were not supported by the actual code, and that the pattern of self-contradictory metadata, nonexistent functions, and implausible bug descriptions is consistent with AI-generated text rather than genuine security research. The implication is straightforward: the system that collects and scores these reports needs a checking step that does not assume everyone is acting in good faith, because the cost of skipping that step falls on every organization that relies on the data.

