SQLite Ô¶³Ì´úÂëÖ´ÐЩ¶´£¨CVE-2019-5018£©
Ðû²¼Ê±¼ä 2019-05-1101Åä¾°ÃèÊö
02Ó°Ï췶Χ
©¶´Æ·¼¶£º ¸ßΣ
Ó°Ï췶Χ£º SQLite 3.26.0¡¢3.27.0
CVSSÆÀ·Ö£º 8.1
03©¶´ÏêÇé
SQLite 3.26.0µÄ´°¿Úº¯ÊýÖдæÔڿɱ»ÀûÓõÄuse-after-free©¶´£¬¹¥»÷Õß¿Éͨ¹ý·¢ËͶñÒâSQLÃüÁîÀ´´¥·¢´Ë©¶´£¬µ¼ÖÂÔ¶³Ì´úÂëÖ´ÐС£
¾ßÌåϸ½ÚΪ£¬SQLiteÔÚ¶Ô°üÂÞ´°¿Úº¯ÊýµÄSELECTÓï¾ä½øÐнâÎöºó£¬Ê¹ÓÃsqlite3WindowRewriteº¯Êý¶Ô¸ÃSELECTÓï¾ä½øÐÐת»»¡£
Ôڴ˺¯ÊýÖУ¬Èç¹û¸ÃSELECTÓï¾ä°üÂ޾ۺϺ¯Êý£¨COUNT£¬MAX£¬MIN£¬AVG£¬SUM£©£¬ÔòÖØдSELECT¹¤¾ßÉú´æµÄ±í´ïʽÁÐ±í£¨ÏÂͼÖеÚ[0]ÐУ©¡£
×¢ÒâÖ÷´°¿Ú¹¤¾ßÔÚWindowRewrite¹¤¾ßÖÐʹÓá£ÔÚÑ»·´¦ÖÃÿһ¸ö±í´ïʽʱ£¬½«xExprCallbackº¯Êý×÷Ϊ»Øµ÷º¯Êý¡£µ±´¦ÖþۺϺ¯Êý£¨TK AGG FUNCTION£©ºó£¬±í´ïʽ±»É¾³ý[2]¡£
Èç¹û±»É¾³ýµÄ±í´ïʽ±»±ê־Ϊ´°¿Úº¯Êý£¬ÔòÒ²»áɾ³ý¹ØÁªµÄWindow¹¤¾ß¡£
²¢É¾³ý¸ÃWindow¹¤¾ß¹ØÁªµÄ·ÖÇø¡£
¿ÉÒÔʹÓÃDebug°æ±¾µÄsqlite3ÏÈÇå¿Õ±»freeµÄ»º³åÇøµÄÄÚÈÝ£¬ÒÔ¸üºÃµØ½øÐÐÑÝʾ[5]¡£
ͨ¹ýgdb sqlite3ÔËÐÐPoC£¬¿ÉÊӲ쵽0xfafafafafafafafaËÄÖÜ·¢ÉúÍ߽⣬ÕâÒâζ×ŶÔÒÑÊͷŵĻº³åÇøµÄÔٴηÃÎÊ£º

04ÐÞ¸´½¨Òé
05²Î¿¼Á´½Ó
https://www.sqlite.org/src/info/884b4b7e502b4e99