關于SQLite遠程代碼執行漏洞的安全公告

(作者: 文章來源:www.cnvd.org.cn 發布日期:2018-12-13 瀏覽數:)

 安全公告編號:CNTA-2018-0031

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漏洞詳情頁面:

https://blade.tencent.com/magellan/

 

感謝騰訊安全平臺部對本公告提供的技術支持。

168彩票网