一个隐藏在SQLite数据库长达22年的漏洞
2022-10-27 13:41:55 Author: www.freebuf.com(查看原文) 阅读量:56 收藏

freeBuf

主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

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位架构"。

参考来源:https://securityaffairs.co/wordpress/137629/hacking/cve-2022-35737-sqlite-bug.html


文章来源: https://www.freebuf.com/news/348001.html
如有侵权请联系:admin#unsafe.sh