總機:020-87516161 傳真:020-87516161-8040
地址:廣州市天河北路898號信源大廈3206-3211室 郵編:510660
安全服務 > 安全公告 > 正文
2018年12月10日,國家信息安全漏洞共享平臺(CNVD)收錄了由騰訊安全平臺部Tencent Blade團隊發現并報告的SQLite遠程代碼執行漏洞(CNVD-2018-24855)。攻擊者利用該漏洞,可在未授權的情況下遠程執行代碼。目前漏洞利用細節尚未公開。
一、漏洞情況分析
SQLite作為嵌入式數據庫,支持大多數SQL標準,實現了無服務器、零配置、事務性的SQL數據庫引擎,在網頁瀏覽器、操作系統、嵌入式系統中使用較為廣泛。Web SQL數據庫是引入了一套使用SQL操作客戶端數據庫的API,以SQLite作為底層實現,可在最新版的Chrome/Chromium瀏覽器運行。
Chromium官方發布了11月份安全漏洞公告,其中包含SQLite遠程代碼執行漏洞。該漏洞通過調用Web SQL API,臨時創建數據庫,并惡意修改SQLite數據庫內部表,使代碼運行至錯誤分支。之后,攻擊者就可通過調用SQLite的數據庫索引操作觸發漏洞,實現對瀏覽器的遠程攻擊,在瀏覽器的渲染器(Render)進程執行任意代碼。
同時,作為基礎組件庫的SQLite也作為擴展庫被許多程序使用,例如PHP、Python等等,攻擊者可通過同樣的攻擊代碼,在這些進程的上下文中本地或遠程任意執行代碼,或導致軟件拒絕服務。
CNVD對該漏洞的綜合評級為“高危”。
二、漏洞影響范圍
根據官方公告情況,該漏洞的影響版本如下:
(1)Chrome瀏覽器71.0.3578.80以下版本
(2)使用Chromium內核的瀏覽器軟件
(3)Android手機WebView組件及使用WebView組件的第三方App
(4)使用SQLite組件和SQLite庫的程序(尤其是可能接收外部惡意輸入執行SQL語句的程序,例如PHP SQLite3組件)
三、漏洞處置建議
1、谷歌/SQLite官方修補方案
Chromium產品需更新至官方穩定版71.0.3578.80,或同步更新至代碼版本Commit c368e30ae55600a1c3c9cb1710a54f9c55de786e及以上(https://chromium.googlesource.com/chromium/src/+/c368e30ae55600a1c3c9cb1710a54f9c55de786e)。
SQLite及SQLite庫產品需更新至3.26.0版本,該版本為目前的官方穩定版(https://www.sqlite.org/releaselog/3_26_0.html)。
2、臨時解決方案:
(1)禁用WebSQL:編譯時不編譯third-party的sqlite組件
由于WebSQL沒有任何規范,目前僅有Chrome、Safari支持。但是Safari也已經閹割了大部分sqlite功能。如果關閉此功能不影響產品,可禁用WebSQL。
驗證方法:重新編譯后的內核,應無法在控制臺調用openDatabase函數。
(2)關閉SQLite中的fts3功能
如關閉此功能不影響產品,可禁用該功能。Safari在Webkit中關閉fts3的方案,請參考https://github.com/WebKit/webkit/commit/36ce0a5e2dc2def273c011bef04e58da8129a7d6。
驗證方法:執行如下JavaScript代碼時,不返回{a:1}則表示已關閉該功能:
var db = openDatabase('xxxxx'+parseInt(Math.random()*10000).toString(),1, 'fts_demo', 5000000);
db.transaction(function(tx) {
?????tx.executeSql('create virtual table x using fts3(a,b);');
?????tx.executeSql('insert into x values (1,2);');
?????tx.executeSql('select a from x;', [], function (tx, results) {?
console.log(results.rows[0]);
?????});
});
(3)使用騰訊QQ瀏覽器提供的瀏覽服務(https://x5.tencent.com/)
目前騰訊X5 SDK(v3.6.0.1371)已修復此漏洞,第三方Android APP可由Webview切換到X5內核,修復此漏洞。
附:參考鏈接:
(1)谷歌安全公告:
https://chromereleases.googleblog.com/2018/12/stable-channel-update-for-desktop.htm
(2)SQLite更新公告:
https://www.sqlite.org/releaselog/3_26_0.html
(3)SQLite漏洞詳情頁面: