SQLite 远程代码执行缝隙(CVE-2019-5018)
颁布功夫 2019-05-1101布景描述
02影响领域
缝隙等级: 高危
影响领域: SQLite 3.26.0、3.27.0
CVSS评分: 8.1
03缝隙详情
SQLite 3.26.0的窗口函数中存在可被利用的use-after-free缝隙,,,,,,,,攻击者可通过发送恶意SQL号令来触发此缝隙,,,,,,,,导致远程代码执行。。。。。
具体细节为,,,,,,,,SQLite在对蕴含窗口函数的SELECT语句进行解析后,,,,,,,,使用sqlite3WindowRewrite函数对该SELECT语句进行转换。。。。。
在此函数中,,,,,,,,若是该SELECT语句蕴含聚合函数(COUNT,,,,,,,,MAX,,,,,,,,MIN,,,,,,,,AVG,,,,,,,,SUM),,,,,,,,则沉写SELECT对象保留的表白式列表(下图中第[0]行)。。。。。
把稳主窗口对象在WindowRewrite对象中使用。。。。。在循环处置每一个表白式时,,,,,,,,将xExprCallback函数作为回调函数。。。。。当处置聚合函数(TK AGG FUNCTION)后,,,,,,,,表白式被删除[2]。。。。。
若是被删除的表白式被象征为窗口函数,,,,,,,,则也会删除关联的Window对象。。。。。
并删除该Window对象关联的分区。。。。。
能够使用Debug版本的sqlite3先清空被free的缓冲区的内容,,,,,,,,以更好地进行演示[5]。。。。。
通过gdb sqlite3运行PoC,,,,,,,,可观察到0xfafafafafafafafa左近产生崩溃,,,,,,,,这意味着对已开释的缓冲区的再次接见:
04建复建议
05参考链接
https://www.sqlite.org/src/info/884b4b7e502b4e99


京公网安备11010802024551号