SQLite WAL 检查点机制中存在一个陈旧读取漏洞,导致已提交的 WAL 帧在长达十六年中被错误丢弃。作者仅使用公开的 SQLite API 就复现了该竞态条件,通过 100 行 C 语言工作负载在数秒内演示了写入丢失和数据库文件损坏。
背景
SQLite 是全球部署最广泛的数据库引擎之一,被无数应用和嵌入式系统所使用。WAL 模式是其关键特性,支持并发读写操作并提供崩溃安全性保障。
- 来源
- Lobsters
- 发布时间
- 2026年8月25日 18:46
- 评分
- 7.0 / 10
SQLite WAL 检查点机制中存在一个陈旧读取漏洞,导致已提交的 WAL 帧在长达十六年中被错误丢弃。作者仅使用公开的 SQLite API 就复现了该竞态条件,通过 100 行 C 语言工作负载在数秒内演示了写入丢失和数据库文件损坏。
SQLite 是全球部署最广泛的数据库引擎之一,被无数应用和嵌入式系统所使用。WAL 模式是其关键特性,支持并发读写操作并提供崩溃安全性保障。