Daily Tech Briefing
AI 科技速览
每天 5 分钟内学习 AI。获取最新的人工智能新闻,理解其重要性,并学习如何将其应用于您的工作。
Hacker News · 2026/8/3 11:28:54

Critical CVE issued for hallucinated SQLite vulnerability
AI 中文解读
GPT-4o来了!这次OpenAI给AI装上了'眼睛',不仅能看懂图片视频,推理速度还快了2倍。以前用AI只能打字交流,现在直接上传照片问'这道菜怎么做',AI都能给你详细步骤。API成本还降低了,开发者和企业用起来更划算,AI应用场景一下子拓宽了!
这次新闻的核心是:有人用AI编造了一批SQLite数据库的“高危漏洞”,居然骗过了权威安全机构,差点让全球开发者白忙一场。
打个比方,就像有人用AI生成了一本错误的教科书,结果被认证机构盖章推荐,学校差点真按这本书教学。JFrog的安全专家查证后发现,这些漏洞引用的代码根本不存在,测试用的攻击代码也没法让程序崩溃,SQLite官方更是完全没有这些记录。原来这批漏洞全是AI生成的内容,其中一项评分还被从最高的10分降到了7.6分。
这件事提醒我们,AI生成的内容已经能骗过专业的安全审核机制。对普通人来说,不用过度恐慌,但值得留意:以后软件更新提示越来越频繁时,背后或许是AI在“制造”并不存在的安全警报,这会让软件供应链的信任体系面临新的挑战。
JFrog Security Research
Model Threats
Discover
Follow JFrog Security
Theme
Home
Model Threats
Discover
Follow JFrog Security
SQLite Critical CVEs or LLM Slop?Afek Berger, JFrog Security Researcher | 30 Jul, 2026
Over the past few days, a newly created GitHub repo (programmervuln/cveadvisory-) published a batch of SQLite vulnerability advisories (as part of other 50+ CVEs which we believe are also LLM slop except from one). NVD quickly flagged these as critical, and CISA's ADP agreed. But when JFrog security researchers dug in to verify, the claims fell apart:
The cited code didn't even exist in those versions or referenced unrelated logic.
When testing the PoC payloads they didn’t work (not triggering any crash).
None of these CVEs are listed on SQLite’s official advisory page (which is a gold standard for tracking actual vulnerabilities).
All advisories in this repo seem AI generated when testing them with Gptzero
Combining all advisories into one file triggers AI-generated content warnings
This made us question the reliability of these CVEs as well as understanding that these CVEs may be LLM slop.
While investigating one of the CVEs yesterday, CVE-2026-51302, we saw that Red Hat initially assigned it a 10.0 Critical severity score:
Looking at the CVE again today, we noticed that the score has since been downgraded to 7.6 High.
Analysis Matrix
CVE
Reported Flaw
CVSS
NVD Metadata
Audit Finding
CVE-2026-51302
UAF in exprComputeOperands()
9.8 CRITICAL
Pinned CPE: 3.41.0
The advisory mentions non-existing functions.
CVE-2026-51303
UAF in ExprListDelete() back-refs
9.8 CRITICAL
Contradictory metadata
The advisory said there are non-existent fixes.
CVE-2026-51300
UAF in sqlite3ExprDelete()
9.1 CRITICAL
n/a placeholders
Advisory cited lines that are unrelated to the vulnerability.
CVE-2026-51297
UAF via jsonBlobEdit()
8.8 HIGH
Pinned CPE: 3.41.0
The advisory mentions non-existing functions.
CVE-2026-51296
UAF in jsonRemoveFunc
7.5 HIGH
Populated CPE: 3.41.0
Advisory cited lines that do not exist.
CVE-2026-51304
UAF via pOrderBy->nExpr post-free
7.5 HIGH
Vendor/Product: n/a
Advisory showed a real function with a wrong argument number.
Investigation Methodology
To verify these reports thoroughly, we established an isolated testing workflow:
Source Inspection: We cloned the official sqlite/sqlite repository and checked out the target tags (version-3.41.0, version-3.51.2, and version-3.51.3). We compared the reported vulnerability mechanics against the actual source code.
Clean Environment Build: Compiled the official SQLite releases directly inside isolated Docker containers to prevent environmental contamination.
PoC Execution: Feed each advisory's PoC SQL statements verbatim into the compiled SQLite binaries under AddressSanitizer (ASan) instrumentation to detect memory bugs.
NVD & Metadata Audit: Evaluated the CPE patterns and advisory metadata across NVD and GHSA feeds to cross-check tracking accuracy.
Detailed Technical Breakdown
1. CVE-2026-51302: Non-Existent Logic (9.8 Critical)
Reported Vulnerability: The advisory claims a heap use-after-free occurs when sqlite3ReleaseTempReg() leaves a dangling pointer in regFree1, which is later dereferenced by exprComputeOperands().
Finding: The primary issue here is that exprComputeOperands() didn't exist in SQLite 3.41. It was added in the middle of 2025 (commits e24f20a, 280559b). Furthermore, the mechanics of sqlite3ReleaseTempReg() do not involve heap deallocation. The function simply recycles register indices into an array for reuse, making a UAF impossible by design.
/* expr.c:6562, SQLite 3.41.0 */
void sqlite3ReleaseTempReg(Parse *pParse, int iReg){
if( iReg ){
sqlite3VdbeReleaseRegisters(pParse, iReg, 1, 0, 0);
if( pParse->nTempReg < ArraySize(pParse->aTempReg) ){
pParse->aTempReg[pParse->nTempReg++] = iReg;
}
}
}
PoC Testing: The quer
分享
阅读原文 ↗