SQLite大漏洞!所有Chromium浏览器中招,安卓iOS应用也受殃及

由 量子位 | December 17, 2018

一个SQLite大bug,影响之大、范围之广,不容小觑。

今天,腾讯Blade安全团队发现的SQLite漏洞披露,他们将该漏洞称为“Magellan”,即麦哲伦。利用麦哲伦漏洞,攻击者可以在用户电脑上远程运行恶意代码,还会导致程序内存泄露或程序崩溃。而且由于SQLite被嵌入到数千款应用中,因此麦哲伦漏洞会影响许多软件。

范围涵盖物联网设备和桌面软件,甚至包括网络浏览器、安卓和iOS应用。

SQLite太大,现在责任也越大。

SQLite?

SQLite,全球最受欢迎的数据库之一。

在2017年发布的调查中,排名第三。

SQLite一方面可以被用于嵌入式的开发中,在一些内存很小的设备上面,它天生骄傲, 比MySQL、SQL Server之类的数据库管理软件不知高到哪里去。

SQLite占用内存小,但满足关系数据库的大部分特征,同时执行SQL语句的效率都是非常高。

另一方面,还能在后端使用来提高性能,在相同的情况下,一样的查询,它比MySQL什么的数据库快得多。

作为基础组件库的SQLite也作为扩展库被许多程序使用。例如PHP、Python、Java等等,攻击者可通过攻击代码,在一些进程的上下文中在本地或远程任意执行代码,或导致软件的拒绝服务。

并且SQLite作为嵌入式数据库,支持大多数SQL标准,实现了无服务器、零配置、事务性的SQL数据库引擎,在网页浏览器、操作系统、嵌入式系统中使用较为广泛。

具体什么样的产品会中招?

Chromium系浏览器中招

只要是支持SQLite和Web SQL API的浏览器,就有中招可能。

因为攻击者可以将破解代码转变成常规的SQL语法,便可在用户访问网页时对其加以利用。

火狐和Edge并不支持这种API,但基于Chromium的开源浏览器都支持这种API。

也就是说,谷歌Chrome、Vivaldi、Opera和Brave都会受到影响。

不光网络浏览器会遭受攻击,其他产品和应用也会受到影响。例如,Google Home就面临安全威胁。

发现麦哲伦漏洞的腾讯Blade团队报告称,他们利用这个漏洞成功黑进了Google Home.

有补丁但隐患仍在

目前,官方补丁已出。

腾讯Blade安全团队表示,他们曾在今年秋初向SQLite团队报告过麦哲伦漏洞,12月1日已经通过SQLite 3.26.0发送了补丁。

上周发布的谷歌Chrome 71,也已经修补该漏洞。Vivaldi和Brave等基于Chromium的浏览器,都采用最新版本的Chromium。

但Opera仍在运行较老版本的Chromium,因此仍会受到影响。

另外,虽然并不支持Web SQL,但火狐也会受到这个漏洞的影响,原因在于他们使用了可以在本地访问的SQLite数据库,因此本地攻击者也可以使用这个漏洞执行代码。

而且,由于升级所有桌面、移动或网页应用的底层数据库引擎,危风险不小,经常导致数据损坏,所以多数程序员都会尽可能向后推迟。

这样一来,即使SQLite团队发布了官方补丁,但很多应用仍会在今后几年面临威胁。

处置建议

腾讯Blade安全团队建议,使用Chromium系产品的团队,请尽快更新至官方稳定版本71.0.3578.80,如果使用产品中涉及SQLite,请更新到3.26.0.

另外,如暂时没有条件采用官方提供的修补方案,也有一些应急建议方案:

1)关闭SQLite中的fts3功能;

2)禁用WebSQL:编译时不编译third-party的sqlite组件。由于WebSQL没有任何规范,目前仅有Chrome、Safari支持。

最后,验证方法:重新编译后的内核应无法在控制台调用openDatabase函数。

传送门:

漏洞报告:https://blade.tencent.com/magellan/index_en.html

chrom更新:https://chromereleases.googleblog.com/2018/12/stable-channel-update-for-desktop.html

SQLite补丁:https://www.sqlite.org/releaselog/3_26_0.html

转载自:量子位 | 公众号 QbitAI