SQLiteÔ¶³Ì´úÂëÖ´ÐÐÎó²îÇ徲ͨ¸æ

Ðû²¼Ê±¼ä 2018-12-11

Îó²î±àºÅºÍ¼¶±ð


CVE±àºÅ£º´ý¶¨ £¬Î£ÏÕ¼¶±ð£º¸ßΣ £¬CVSS·ÖÖµ£º¹Ù·½Î´ÆÀ¶¨



Ó°Ïì°æ±¾


ChromiumµÍÓÚ71.0.3578.80°æ±¾

SQLiteµÍÓÚ3.26.0°æ±¾



Îó²î¸ÅÊö


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µÈµÈ £¬¹¥»÷Õß¿Éͨ¹ýͬÑùµÄ¹¥»÷´úÂë £¬ÔÚÕâЩÀú³ÌµÄÉÏÏÂÎÄÖÐÍâµØ»òÔ¶³Ìí§ÒâÖ´ÐдúÂë £¬»òµ¼ÖÂÈí¼þ¾Ü¾ø·þÎñ¡£



Îó²îÑéÖ¤


ÔÝÎÞPOC/EXP¡£



ÐÞ¸´½¨Òé


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]);

     });

});



²Î¿¼Á´½Ó


£¨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/