WordPress Core SQL×¢Èë·ì϶(CVE-2022¨C21661)·ÖÎö

°ä²¼¹¦·ò 2022-01-25

·ì϶¸ÅÊö


WordPressÊÇĿǰȫÇòÊ¢ÐеÄÈý´óÄÚÈÝÖÎÀíϵͳ֮һ£¬£¬£¬£¬£¬£¬£¬ÆäÖ÷ÌâÄ£¿£¿£¿£¿£¿é£¨Core£©³öÏÖ·ì϶µÄÇé¿öÏà¶Ô½ÏÉÙ¡£¡£¡£¡£¡£¡£½üÆÚ£¬£¬£¬£¬£¬£¬£¬WordPressÖ÷ÌâÄ£¿£¿£¿£¿£¿é±»Åû¶´æÔÚÒ»´¦SQL×¢Èë·ì϶(CVE-2022¨C21661)¡£¡£¡£¡£¡£¡£Õë¶Ô¸Ã¸ßΣ·ì϶£¬£¬£¬£¬£¬£¬£¬8827Ì«Ñô¼¯ÍÅADLab×êÑÐÔ±µÚÒ»¹¦·ò½øÐÐÁ˾ßÌå·ÖÎöºÍÑéÖ¤¡£¡£¡£¡£¡£¡£


ÊÜÓ°Ïì°æ±¾


ÊÜÓ°Ïì°æ±¾£ºWordPress < 5.8.3


·ì϶·ÖÎö


ͨ¹ý±ÈÁ¦githubÉϵÄÔ´´úÂ룬£¬£¬£¬£¬£¬£¬Äܹ»·¢ÏÖ·ì϶µÄµØÎ»ÊÇclean_queryº¯Êý¡£¡£¡£¡£¡£¡£ÔÚ5.8.2¼°Ö®Ç°µÄÀϰ汾ÖУ¬£¬£¬£¬£¬£¬£¬¸Ãº¯ÊýµÄ¹Ø¼ü´úÂëÈçÏ¡£¡£¡£¡£¡£¡£


´úÂëÈçÏÂ.png


ÔÚclean_queryº¯ÊýÖУ¬£¬£¬£¬£¬£¬£¬µ±´«µÝ½øÀ´µÄ$queryÂú×ãÒÔÏÂÁ½¸öǰÌ᣺

$query['taxonomy']Ϊ¿Õ£»£»£»£» £»

$query['filed']µÄÖµµÅ×Úterm_taxonomy_id¡£¡£¡£¡£¡£¡£


WordPressµÄÖ´ÐÐ¾Í»á½øÈë580ÐУ¬£¬£¬£¬£¬£¬£¬Å²ÓÃtransform_queryº¯Êý¡£¡£¡£¡£¡£¡£¸ú½ø¸Ãº¯Êý£¬£¬£¬£¬£¬£¬£¬Âú×ã602ÐУ¬£¬£¬£¬£¬£¬£¬²»×öÈκδëʩֱ½Óreturn£¬£¬£¬£¬£¬£¬£¬Î¬³ÖÁËtermsµÄÖµ²»ÊÜŤת¡£¡£¡£¡£¡£¡£


´úÂëÈçÏÂ.png


È«¾ÖËÑË÷clean_query£¬£¬£¬£¬£¬£¬£¬Æä±»get_sql_for_clauseº¯ÊýŲÓᣡ£¡£¡£¡£¡£ÔĶÁ¸Ã²½ÖèµÄ´úÂë¿ÉÖª£¬£¬£¬£¬£¬£¬£¬ËüµÄÖ°ÄÜÊÇΪsql²éÎÊÖеÄǰÌá´´½¨×Ӿ䡣¡£¡£¡£¡£¡£¾ßÌåÀ´Ëµ£¬£¬£¬£¬£¬£¬£¬ËüµÄ¹¤×÷ÊÇ´¦Öýӹܵ½µÄÊý¾Ý£¬£¬£¬£¬£¬£¬£¬½«ÕâЩÊý¾Ý×éºÏ³ÉSQL ²éÎÊÖеÄǰÌᣬ£¬£¬£¬£¬£¬£¬¶øºó½«Æä·µ»Ø¸ø¸¸º¯Êý¡£¡£¡£¡£¡£¡£ËùÒÔ£¬£¬£¬£¬£¬£¬£¬ÈôÊÇÄܹ»½ÚÔìclean_queryµÄ·µ»ØÊý¾Ý£¬£¬£¬£¬£¬£¬£¬¾ÍÄܹ»½ÚÔìSQL²éÎʽøÐÐ×¢Èë¡£¡£¡£¡£¡£¡£


ÔÚget_sql_for_clauseÖÐÄܹ»ÕÒµ½$terms±äÁ¿±»Æ´½Óµ½sqlÓï¾äÖС£¡£¡£¡£¡£¡£


´úÂëÈçÏÂ.png


´Óget_sql_for_clause²½Öè³ÖÐø»ØËÝ£¬£¬£¬£¬£¬£¬£¬Å²ÓÃÕ»ÈçÏ£º


´úÂëÈçÏÂ.png


ÔÚget_posts()ÖÐÄܹ»ÕÒµ½¶ÔWQ_Tax_Query->get_sql()µÄŲÓᣡ£¡£¡£¡£¡£


´úÂëÈçÏÂ.png


ͨ¹ý»ØËÝŲÓÃÕ»¿ÉÖª£¬£¬£¬£¬£¬£¬£¬Í¨¹ý½ÚÔìWP_Query->__construct()ÖеÄÊôÐÔ£¬£¬£¬£¬£¬£¬£¬¾ÍÄܹ»Ôì³Ésql×¢Èë¡£¡£¡£¡£¡£¡£


·ì϶¸´ÏÖ


ͨ¹ý¶ÈÎöWordPressµÄÔ´Âë·¢ÏÖ£¬£¬£¬£¬£¬£¬£¬WordPressÖ÷Ìâ´úÂëÖв»´æÔÚÄܹ»´¥·¢¸Ã·ì϶µÄŲÓõã¡£¡£¡£¡£¡£¡£ÎªÁËÑéÖ¤¸Ã·ì϶£¬£¬£¬£¬£¬£¬£¬ÕâÀïʹÓÃÁËEle Custom Skin²å¼þ×ö·ì϶¸´ÏÖ£¬£¬£¬£¬£¬£¬£¬ÕâÒ²ÊÇZDI¸ø³öµÄ´æÔÚ²úÉú·ì϶ŲÓõIJå¼þÑùÀý¡£¡£¡£¡£¡£¡£


EleCustom Skin²å¼þ×°ÖÃÁ¿ÔÚ10ÍòÒÔÉÏ£¬£¬£¬£¬£¬£¬£¬ÇÒÆä´æÔڵķì϶ŲÓÃÊÇÎÞÐèµÇ¼µÄ¡£¡£¡£¡£¡£¡£¸Ã²å¼þ´æÔÚ²½Öèget_document_data()£¬£¬£¬£¬£¬£¬£¬ÆäÖ÷Ìâ´úÂëÈçÏ£º


´úÂëÈçÏÂ.png

´úÂëÈçÏÂ.png 

È«¾ÖËÑË÷get_document_data£¬£¬£¬£¬£¬£¬£¬¸Ã²½Öè±»×¢²áµÄactionÃû×ÖÈçÏ¡£¡£¡£¡£¡£¡£


´úÂëÈçÏÂ.png


Òò¶ø£¬£¬£¬£¬£¬£¬£¬¸Ã·ì϶ÔÚÕâ¸ö²å¼þÊÇ´æÔÚ´¥·¢õè¾¶µÄ¡£¡£¡£¡£¡£¡£¿£¿£¿£¿£¿ªÆôdebugÖ°Äܺ󣬣¬£¬£¬£¬£¬£¬»ú¹Ø±¨Îļ´¿É³É¹¦×¢Èë³öÊý¾Ý¿âuser¡£¡£¡£¡£¡£¡£


´úÂëÈçÏÂ.png


Ê¢Ðвå¼þ·ÖÎö


ΪÁË·ÖÎö¸Ã·ì϶µÄÏÖʵӰÏ죬£¬£¬£¬£¬£¬£¬ADLab×êÑÐÔ±»¹¶ÔWordPressǰ100¸öÊ¢Ðвå¼þ½øÐÐÁË·ÖÎö£¬£¬£¬£¬£¬£¬£¬·¢ÏÔìäÖÐ2¸ö²å¼þÒ²´æÔڸ÷ì϶¡£¡£¡£¡£¡£¡£


¿ªÆôdebug£¬£¬£¬£¬£¬£¬£¬»ú¹Ø±¨Îļ´¿É³É¹¦×¢Èë³öÊý¾Ý¿âuser¡£¡£¡£¡£¡£¡£


½¨¸´¹æ»®


ĿǰWordPressÒѰ䲼Éý¼¶²¹¶¡ÒÔ½¨¸´·ì϶£¬£¬£¬£¬£¬£¬£¬²¹¶¡»ñÈ¡Á´½ÓÈçÏ£º


https://github.com/WordPress/wordpress-develop/security/advisories/GHSA-6676-cqfm-gw84


²Î¿¼Á´½Ó£º

https://www.zerodayinitiative.com/blog/2022/1/18/cve-2021-21661-exposing-database-info-via-wordpress-sql-injection