¡¾Â©¶´Í¨¸æ¡¿Swagger UI¿çÕ¾½Å±¾Â©¶´
Ðû²¼Ê±¼ä 2022-05-25
0x00 ©¶´¸ÅÊö
CVE ID | ·¢ÏÖʱ¼ä | 2022-05-24 | |
Àà ÐÍ | XSS | µÈ ¼¶ | ¸ßΣ |
Ô¶³ÌÀûÓà | ÊÇ | Ó°Ï췶Χ | |
¹¥»÷ÅÓ´ó¶È | µÍ | Óû§½»»¥ | |
PoC/EXP | ÊÇ | ÔÚÒ°ÀûÓÃ |
0x01 ©¶´ÏêÇé
Swagger UI ÊÇÒ»¸öÊÜ»¶ÓµÄ¿ªÔ´¹¤¾ß£¬¿É×ÊÖúÓû§ÔÚûÓÐÈκÎʵÏÖÂß¼µÄÇé¿öÏ¿ÉÊÓ»¯ API ×ÊÔ´²¢ÓëÖ®½»»¥¡£Ëü±»Öڶ๫˾ʹÓ㬰üÂÞ PayPal¡¢Shopify¡¢Microsoft¡¢Yahoo¡¢GitHub¡¢Atlassian µÈ¡£
5ÔÂ16ÈÕ£¬Ñо¿ÈËÔ±Åû¶ÁËSwagger UIÖеÄÒ»¸öDOM ÐÍXSS©¶´¡£ÓÉÓÚSwagger UIÖÐʹÓÃÁ˹ýʱµÄ¿âDOMpurify£¨ÓÃÓÚÊäÈëÇåÀí£©£¬µ¼ÖÂÁËÓɲéѯ²ÎÊý¿ØÖƵÄDOM XSS©¶´£¬ÔÊÐíÔÚÒ³ÃæÉÏ×¢ÈëÈκÎÊôÐÔµÄHTMLÔªËØ£¨½Å±¾±êÇ©³ýÍ⣩¡£
Ä¿Ç°´Ë©¶´µÄPoCÒѹûÈ»£¬¿ÉÒÔÀûÓôË©¶´ÒÔÀ©Õ¹ÇÔÈ¡Óû§µÄ CSRF token²¢½Ó¹ÜÊܺ¦ÕßµÄÕÊ»§¡£
Ó°Ï췶Χ
3.14.1<= Swagger UI < 3.38.0
0x02 Äþ¾²½¨Òé
Ä¿Ç°´Ë©¶´ÒѾÐÞ¸´£¬½¨ÒéÊÜÓ°ÏìÓû§¼°Ê±Éý¼¶¸üÐÂSwagger UIµ½×îа汾¡£
ÏÂÔØÁ´½Ó£º
https://github.com/swagger-api/swagger-ui/releases
×¢£ºÈç¹ûÎÞ·¨Éý¼¶Õû¸ö Swagger UI °ü£¬Óû§¿ÉÒÔÑ¡Ôñ½« DomPurify °üÉý¼¶µ½ Swagger UI ÖÐʹÓõİ汾¡£
0x03 ²Î¿¼Á´½Ó
https://www.vidocsecurity.com/blog/hacking-swagger-ui-from-xss-to-account-takeovers/
https://hackerone.com/reports/1072868
https://latesthackingnews.com/2022/05/24/swagger-ui-library-vulnerability-potentially-affects-multiple-services/
0x04 °æ±¾ÐÅÏ¢
°æ±¾ | ÈÕÆÚ | ÐÞ¸ÄÄÚÈÝ |
V1.0 | 2022-05-25 | Ê×´ÎÐû²¼ |
0x05 ¸½Â¼
¶«Éƽ̨¼ò½é
¶«Éƽ̨¹«Ë¾½¨Á¢ÓÚ1996Ä꣬²¢ÓÚ2010Äê6ÔÂ23ÈÕÔÚÉî½»ËùÖÐС°åÕýʽ¹ÒÅÆÉÏÊУ¬ÊǹúÄÚ¼«¾ßʵÁ¦µÄ¡¢ÓµÓÐÍêÈ«×ÔÖ÷֪ʶ²úȨµÄÍøÂçÄþ¾²²úÎï¡¢¿ÉÐÅÄþ¾²¹ÜÀíƽ̨¡¢Äþ¾²·þÎñÓë½â¾ö·½°¸µÄ×ÛºÏÌṩÉÌ¡£
¹«Ë¾×ܲ¿Î»ÓÚ±±¾©ÊÐÖйشåÈí¼þÔ°£¬ÔÚÈ«¹ú¸÷Ê¡¡¢ÊС¢×ÔÖÎÇøÉèÓзÖÖ§»ú¹¹£¬ÓµÓÐÁýÕÖÈ«¹úµÄÇþµÀÌåϵºÍ¼¼ÊõÖ§³ÖÖÐÐÄ£¬²¢ÔÚ±±¾©¡¢ÉϺ£¡¢³É¶¼¡¢¹ãÖÝ¡¢³¤É³¡¢º¼ÖݵȶàµØÉèÓÐÑз¢ÖÐÐÄ¡£
¶àÄêÀ´£¬¶«Éƽ̨ÖÂÁ¦ÓÚÌṩ¾ßÓйú¼Ê¾ºÕùÁ¦µÄ×ÔÖ÷´´ÐµÄÄþ¾²²úÎïºÍ×î¼Ñʵ¼ù·þÎñ£¬×ÊÖú¿Í»§È«ÃæÌáÉýÆäIT»ù´¡ÉèÊ©µÄÄþ¾²ÐÔºÍÉú²úЧÄÜ£¬Îª´òÔìºÍÌáÉý¹ú¼Ê»¯µÄÃñ×åÐÅÏ¢Äþ¾²¹¤ÒµÁì¾üÆ·Åƶø²»Ð¸Å¬Á¦¡£
¹ØÓÚ¶«Éƽ̨
¶«Éƽ̨Äþ¾²Ó¦¼±ÏìÓ¦ÖÐÐÄÖ÷ÒªÕë¶ÔÖØÒªÄþ¾²Â©¶´µÄÔ¤¾¯¡¢¸ú×ٺͷÖÏíÈ«Çò×îеÄÍþвÇ鱨ºÍÄþ¾²³ÂËß¡£
¹Ø×¢ÒÔϹ«Öںţ¬»ñÈ¡È«Çò×îÐÂÄþ¾²×ÊѶ£º