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]¡£
ÈôÊDZ»É¾³ýµÄ±í°×ʽ±»ÏóÕ÷Ϊ´°¿Úº¯Êý£¬ÔòÒ²»áɾ³ý¹ØÁªµÄWindow¶ÔÏó¡£
²¢É¾³ý¸ÃWindow¶ÔÏó¹ØÁªµÄ·ÖÇø¡£
Äܹ»Ê¹ÓÃDebug°æ±¾µÄsqlite3ÏÈÇå¿Õ±»freeµÄ»º³åÇøµÄÄÚÈÝ£¬ÒÔ¸üºÃµØ½øÐÐÑÝʾ[5]¡£
ͨ¹ýgdb sqlite3ÔËÐÐPoC£¬¿É¹Û²ìµ½0xfafafafafafafafa×ó½ü²úÉú±ÀÀ££¬ÕâÒâζ×ŶÔÒÑ¿ªÊ͵Ļº³åÇøµÄÔٴνӼû£º
04½¨¸´½¨Òé
05²Î¿¼Á´½Ó
https://www.sqlite.org/src/info/884b4b7e502b4e99


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