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

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

内容简介:报告编号: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) 预警》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

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

JavaScript and Ajax for the Web, Sixth Edition

JavaScript and Ajax for the Web, Sixth Edition

Tom Negrino、Dori Smith / Peachpit Press / August 28, 2006 / $24.99

Book Description Need to learn JavaScript fast? This best-selling reference’s visual format and step-by-step, task-based instructions will have you up and running with JavaScript in no time. In thi......一起来看看 《JavaScript and Ajax for the Web, Sixth Edition》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码