一个隐藏SQLite数据库长达22年的漏洞

发表于:2022-10-28 09:09

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Zhuolin    来源:FreeBuf

  安全专家Andreas Kellas详细介绍了2000年10月推出的SQLite数据库中的一个高严重性漏洞,被追踪为CVE-2022-35737(CVSS评分:7.5)。
  CVE-2022-35737漏洞是一个整数溢出问题,影响到SQLite 1.0.12至3.39.1版本。该漏洞已在2022年7月21日发布的3.39.2版本中得到解决。此前,如果在C API的字符串参数中使用了数十亿字节,则有时会允许数组边界溢出。攻击者可以触发这个问题,在受影响的系统上执行任意代码。
  CVE-2022-35737在64位系统上可被利用,可利用性取决于程序的编译方式。在没有堆栈金丝雀的情况下编译库时确认任意代码执行,存在堆栈金丝雀时未确认,并且在所有情况下都确认拒绝服务。
  所以,为了利用CVE-2022-35737漏洞,攻击者必须将大字符串输入传递给printf函数的 SQLite 实现,并且格式字符串包含 %Q、%q 或 %w 格式替换类型。该漏洞与printf调用的名为“ sqlite3_str_vappendf ”的函数处理字符串格式的方式有关。
  当sqlite3_str_vappendf函数收到一个大字符串,并且格式替换类型为%q、%Q或%w时,就会触发有符号的整数溢出。
  研究人员还发现,如果启用 unicode 字符扫描的特殊字符,那么在最坏的情况下有可能实现任意代码执行,或者导致 DoSS 条件。
  最后,安全专家Andreas Kellas总结说道:"这是一个在编写时可能并不像错误的错误”。因为追溯到2000年的SQLite源代码,当时系统主要是32位架构"。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号