21:31·modernc.org/sqlite(GitLab Commits)
该提交修复了 modernc.org/sqlite 中一个严重的并发安全缺陷。在 Context 取消调用 conn.interrupt 时,被中断的查询可能正在 c.tls 上运行。由于 libc.TLS 不支持并发使用,且原有的 c.Lock 仅保护 Close 操作,这可能导致静默的内存损坏。虽然当前 sqlite3_interrupt 实现为原子存储而不触碰 TLS,但未来版本若改变此行为将引发严重问题。
#破坏性#modernc.org/sqlite#TLS
20:43·modernc.org/sqlite(GitLab Commits)
该库为 Driver.Open 的 _pragma 参数引入 StrictPragmas(true) 选项,默认关闭。开启后,连接将拒绝包含多条 SQL 语句的 _pragma 值(如分号后的 ATTACH),并返回 ErrMultiStatementPragma 错误。此检查在验证阶段以词法形式运行,不编译也不执行 SQL,旨在防止 DSN 注入风险,特别推荐用于 DSN 非编译时常量的应用。变更由 Ian Chechin 的安全威胁模型审查发现,经模糊测试验证与 SQLite 解析器行为一致。
#安全#modernc.org/sqlite#Go