麦哲伦的错误:使用SQLite FTS进行缓冲区溢出或环球探险

我以某种方式规避了Habré上最近发生的麦哲伦错误以及与之相关的漏洞,我将尝试纠正这一遗漏。


一点历史


  • 2018年11月1日,编号为900910的错误报告飞入Chromium:“ SQLite中通过WebSQL的多个问题。” 该错误由腾讯刀片团队的钱文祥报告。
  • 在2018年11月5日,该错误在SQLite库(FTS3)的核心中被关闭 ,该错误实际上在几乎从模块创建之日起即存在的地方存在。 自2009年11月起。
  • 2018年11月28日,它合并为Chromium
  • 不久之后,腾讯刀片团队发布了一条错误消息,将其命名为麦哲伦(Magellan),尤其是在不透露细节的情况下,并表明尚未计划发布现成的漏洞利用和PoC。
  • 一周后,Internet上充满了PoC,崩溃的Chrome,Electron开发框架等。 仍然没有证据表明该漏洞是用于恶意目的的。
  • DRH 在Hacker News上证实怀疑确实存在该漏洞(至少在允许执行“外部” SQL查询或类似情况的SQL注入的情况下)。

什么可能容易受到攻击?


潜在地,所有使用SQLite(启用FTS)或使用或基于SQLite的应用程序(例如Chromium)的设备和程序。 它们受到影响的程度以及可能的“损失”的影响取决于是否找到合适的攻击媒介。


有关Magellan SQLite BUG的更多信息


该错误与整数总和(即整数溢出)的溢出有关 ,这可以通过更改FTS表的索引在FTS3 / 4子系统中引起,这继而可以导致内存的重写或异常的终止。


通过适当地“修剪”写入缓冲区来有针对性地对此整数溢出进行有针对性的人工应用,会导致内存溢出,并且以后可以通过专门创建的SQL查询使用它。


结果,从理论上讲, 许多使用SQLite(带有虚拟FTS表)的应用程序 ,尤其是流行的支持基于启用了FTS的SQLite的SQLite的浏览器的浏览器(例如Google Chrome,Chromium,Opera,Slimjet浏览器,SRWare Iron,Torch都容易受到攻击)。 Comodo Dragon,CoolNovo,Yandex Browser,Vivaldi等)。


SQLite数据库通常非常流行,它通过十多种编程语言,工具链,框架等提供,被移动设备和成熟计算机的应用程序所使用,甚至在服务器解决方案中也很常见。 因此,例如,流行的网络浏览器(例如Google Chrome,Mozilla Firefox和Yandex Browser),许多即时通讯程序(例如WhatsApp,Viber,微信等)都以这种格式存储数据等。 等


例如,同一Fossil SCM使用SQLite数据库存储修订历史记录,并允许您通过FTS使用全文索引(并提供从UI / Web枪口对其的访问,例如,可以创建自己的SQL查询,例如自定义票证报告)等)。


更新:DRH是Fossil的部分合著者和开发者,显然也有同样的想法,并且已经通过将SQLite更新为3.26.0来“解决问题”


这种“可预测的”溢出本身并不是一件令人愉快的事情,但是如果您回想起什么可以确切地存储在银行本身中(从杂志的内容到桌子本身)...
所以,不要成为懒惰的同志……而要被更新,更新。


在哪里获取修复程序?


修补程序[940f2adc8541a838]是 SQLite 3.25.3更新的一部分(Chromium和co。也已更新到该版本,例如,版本71.0.3578.80中的Chrome)。


SQLite 3.26版还为FTS容器提供了其他安全功能,例如:

启用S​​QLITE_DBCONFIG_DEFENSIVE选项时支持只读影子表

此漏洞的危险是什么?


关键 允许远程执行代码。 也可能发生内存泄漏和程序崩溃。


是否有任何现成的利用此漏洞的例子?


是的


特别是,腾讯刀片团队声称他们使用此漏洞成功对Google Home进行了攻击(已关闭对Google Bug Tracker的问题描述的访问),并且如上所述,目前尚无计划公开漏洞利用代码。


使用条款的漏洞?


漏洞可以远程执行,例如,当在浏览器中调用某个网页时,或在任何类似的情况下,例如,允许执行SQL语句(如果未禁用FTS,如果检测到可能的攻击媒介和/或存在或发生了一些其他有利于利用的因素,漏洞)。


顺便说一句,这并不是SQLite特别是FTS模块(例如[56be976859294027] )中的类型溢出和缓冲区溢出的第一个错误,但是在可能的应用和后果评估方面,它可能是意义,理论影响和相对“规模”最大的错误。这个。

Source: https://habr.com/ru/post/zh-CN433596/


All Articles