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/


¾©¹«Íø°²±¸11010802024551ºÅ