SQLite 3 UAF漏洞 (CVE-2019-5018) 预警

栏目: 数据库 · 发布时间: 5年前

内容简介:报告编号:B6-2019-051001报告来源:360-CERT

SQLite 3 UAF漏洞 (CVE-2019-5018) 预警

报告编号:B6-2019-051001

报告来源:360-CERT

报告作者:360-CERT

更新日期:2019-05-10

0x00 事件背景

SQLite是一款流行的 SQL 数据库引擎,具有小型,快速,可靠的特点,广泛用于移动设备,浏览器,硬件设备以及用户应用程序。2019年5月9日,Cisco Talos 发布漏洞信息:在 SQLite 3 3.26.0和3.27.0版本中的窗口功能存在UAF漏洞,攻击者可以通过发送恶意的SQL命令触发此漏洞,可能导致远程代码执行。(TALOS-2019-0777/CVE-2019-5018)

0x01 影响范围

  • SQLite3 3.26.0

  • SQLite3 3.27.0

0x02 漏洞细节

触发漏洞的函数调用关系如下:

SQLite 3 UAF漏洞 (CVE-2019-5018) 预警

(1)SQLite在对窗口进行查询时,会通过sqlite3WindowRewrite函数解析SELECT语句

(2)如果SELECT语句中包含(COUNT,MAX,MIN,AVG,SUM)等函数,则会通过selectWindowRewriteEList函数重写SELECT对象保存的表达式列表

(3)在重写过程中,会循环处理每一个表达式,并将selectWindowRewriteExprCb作为回调函数将表达式删除

(4)如果删除的表达式标记为窗口函数,则删除与之关联的窗口对象

(5)删除关联的窗口分区

上述只是将窗口对象删除,但是在后续exprListAppendList函数中重新使用了该对象,导致了UAF漏洞。

src/window.c:785 selectWindowRewriteEList(pParse, pMWin, pSrc, p->pEList, &pSublist); selectWindowRewriteEList(pParse, pMWin, pSrc, p->pOrderBy, &pSublist); pMWin->nBufferCol = (pSublist ? pSublist->nExpr : 0); ... pSublist = exprListAppendList(pParse, pSublist, pMWin->pPartition); //<--------

src/window.c:723 static ExprList *exprListAppendList(    Parse *pParse,              ExprList *pList,            ExprList *pAppend [5] ){    if( pAppend ){        int i;        int nInit = pList ? pList->nExpr : 0;        for(i=0; i<pAppend->nExpr; i++){            Expr *pDup = sqlite3ExprDup(pParse->db, pAppend->a[i].pExpr, 0);            pList = sqlite3ExprListAppend(pParse, pList, pDup);            if( pList ) pList->a[nInit+i].sortOrder = pAppend->a[i].sortOrder;        }    }    return pList; }

如果攻击者能够控制free后的内存,则有可能破坏更多数据,从而可能导致代码执行。

0x03 修复建议

  1. 使用最新版本SQLite3 3.28.0

  2. SQLite产商针对该漏洞发布了漏洞补丁。请受影响的用户,访问下面的补丁链接,对产品进行修补。

https://www.sqlite.org/src/info/69bad9257f8db6a2

0x04 时间线

2019-02-05Cisco Talos的Cory Duplantis发现漏洞并向产商披露

2019-03-07对产商进行30天的漏洞跟进

2019-03-28产商对漏洞进行修补

2019-05-09Cisco Talos 发布漏洞信息

2019-05-10360CERT发布预警

0x05 参考链接

  1. https://www.talosintelligence.com/vulnerability_reports/TALOS-2019-0777
  2. https://blog.talosintelligence.com/2019/05/vulnerability-spotlight-remote-code.html

声明:本文来自360CERT,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。


以上所述就是小编给大家介绍的《SQLite 3 UAF漏洞 (CVE-2019-5018) 预警》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

工程问题C++语言求解

工程问题C++语言求解

Delores M.Etter、Jeanine A.Ingber / 冯力、周凯 / 机械工业出版社 / 2014-8 / 79元

本书介绍了如何利用ANSIC++编程语言以基于对象的编程方式来解决工程问题。书中引用了大量来自于不同工程、科学和计算机科学领域的示例,是一本理论和实践结合紧密的教材。针对C++基本语法的各个部分,由浅入深地进行讲解。每讲解一部分基础知识,同时会结合多个相关实例,实例内容详实,紧贴所讲内容,使读者能够立刻对所学知识进行练习,实战性强。一起来看看 《工程问题C++语言求解》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试