内容简介:概述研究人员发现在Sqlite3 3.26.0的Windows函数功能中存在UAF漏洞。通过特殊伪造的SQL命令可以产生该UAF漏洞,导致远程代码执行。攻击者可以发送恶意SQL命令来触发该漏洞。研究人员在SQLite 3.26.0和3.27.0版本上进行了测试。
概述
研究人员发现在 Sqlite 3 3.26.0的Windows函数功能中存在UAF漏洞。通过特殊伪造的 SQL 命令可以产生该UAF漏洞,导致远程代码执行。攻击者可以发送恶意SQL命令来触发该漏洞。
研究人员在SQLite 3.26.0和3.27.0版本上进行了测试。
CVSSv3评分为8.1分,漏洞类型为UAF。
漏洞详情
SQLite是实现SQL数据库引擎的常用库函数,被广泛应用于移动设备、浏览器、硬件设备、用户应用中。也是小型、快速、可靠数据库解决方案的常用选择。
SQLite实现了SQL的Window Functions特征,允许对行的子集(Subset、window)进行查询。通过分析含有Window函数的SELECT语句,SELECT语句就会使用sqlite3WindowRewrite函数进行转化。
在该函数中,如果使用了聚合函数(COUNT, MAX, MIN, AVG, SUM),SELECT对象的表达式列表就会被重写。
Master Window对象 pMWin 是从SELECT对象中取出的,在重写过程中也用到了。这一过程是为了使其处理window函数进行容易。
Master window对象是在WindowRewrite对象中使用的。在处理每个表达式过程中,xExprCallback函数会用作处理的回调函数。在处理聚合函数(TKAGGFUNCTION)和添加到表达式列表中后,表达式就会被删除。
在表达式删除期间,如果表达式被标记为window function,相关的window对象也会被删除。
在 Window删除期间,与Window相关的部分都被删除了。
可以看一下原始的sqlite3WindowRewrite函数,删除的部分在表达式列表被重写后重用了。
这部分被删除后,会在exprListAppendList中被重用,导致UAF漏洞,最终引发DOS。如果攻击者可以控制释放后的内存,那么就可以破坏更多的数据,有可能导致代码执行。
调试信息
使用sqlite3 debug版本来破坏释放的缓存的内容可以证明该漏洞的存在。监控0xfafafafafafafafa附近的调试可以说明释放的缓存正在被再次访问。
通过gdb sqlite3运行POC:
PoC利用
可以使用sqlite3 shell 运行POC:
./sqlite3 -init poc
以上所述就是小编给大家介绍的《CVE-2019-5018:Sqlite3 远程代码执行漏洞》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 漏洞预警 | ThinkPHP5远程命令执行漏洞
- WinRAR 代码执行漏洞复现
- struts2远程代码执行漏洞
- 【漏洞预警】 S2-057远程代码执行
- EKG Gadu 本地代码执行漏洞
- Gogs 远程命令执行漏洞分析
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
WebKit技术内幕
朱永盛 / 电子工业出版社 / 2014-6 / 79.00元
《WebKit技术内幕》从炙手可热的HTML5 的基础知识入手,重点阐述目前应用最广的渲染引擎项目——WebKit。不仅着眼于系统描述WebKit 内部渲染HTML 网页的原理,并基于Chromium 的实现,阐明渲染引擎如何高效地利用硬件和最新技术,而且试图通过对原理的剖析,向读者传授实现高性能Web 前端开发所需的宝贵经验。 《WebKit技术内幕》首先从总体上描述WebKit 架构和组......一起来看看 《WebKit技术内幕》 这本书的介绍吧!