Nginx/OpenRestyÄÚ´æ×ß©/Ŀ¼´©Ô½Îó²îΣº¦Í¨¸æ
Ðû²¼Ê±¼ä 2020-03-20Îó²î±àºÅºÍ¼¶±ð
CVE±àºÅ£ºÔÝÎÞ£¬£¬£¬Î£ÏÕ¼¶±ð£ºÖÐΣ£¬£¬£¬CVSS·ÖÖµ£º³§ÉÌ×ÔÆÀ£º¹Ù·½Î´ÆÀ¶¨
Ó°Ïì°æ±¾
nginx <= v1.17.7 (commit af8ea176a743e97d767b3e1439d549b52dd0367a)
openresty <= v1.15.8.2
Îó²î¸ÅÊö
¿ËÈÕ£¬£¬£¬openwall oss-security Óʼþ×éÐû²¼Í¨¸æÅû¶ÁËÁ½¸öÎó²î¡£¡£¡£¡£¡£¡£ÔÚÌØ¶¨ÉèÖÃÏ nginx/openresty ±£´æ ÄÚ´æ×ß©Îó²î/Ŀ¼´©Ô½Îó²î¡£¡£¡£¡£¡£¡£
NGINXÊÇÃÀ¹úNGINX¹«Ë¾µÄÒ»¿îÇáÁ¿¼¶WebЧÀÍÆ÷/·´ÏòÊðÀíЧÀÍÆ÷¼°µç×ÓÓʼþ£¨IMAP/POP3£©ÊðÀíЧÀÍÆ÷¡£¡£¡£¡£¡£¡£OpenRestyÊÇÒ»¿î»ùÓÚNginxºÍLuaµÄWebƽ̨¡£¡£¡£¡£¡£¡£¸Ãƽ̨ÓÃÓڴÓÃÓÚ´¦Öóͷ£¸ß²¢·¢¡¢¸ßÀ©Õ¹ÐԵĶ¯Ì¬WebÓ¦Óá¢WebЧÀͺͶ¯Ì¬Íø¹Ø¡£¡£¡£¡£¡£¡£
¸Ãͨ¸æÖÐÏÔʾ£¬£¬£¬OpenRestyͨ¹ýÔÚnginxÖоÙÐÐÔÊ¼ÖØÐ´À´ÊµÏÖngx.req.set_uri()£¬£¬£¬¶øÎÞÐè¾ÙÐÐÈÎºÎÆäËû¹ýÂË»ò±ê×¼»¯¡£¡£¡£¡£¡£¡£ÈôÊÇÓë²»ÊÜÐÅÈεÄÊäÈëÒ»ÆðʹÓ㬣¬£¬Ôò¿ÉÄܵ¼ÖÂCRLF/header×¢È룬£¬£¬Ä¿Â¼±éÀú/ÍâµØÎļþ¶ÁÈ¡£¬£¬£¬ÏÞÖÆÈÆ¹ý¡£¡£¡£¡£¡£¡£ÓÉÓÚnginxµÄ¡°ÖØÐ´¡±ÊµÏÖÖÐÓÐÒ»¸öbug£¬£¬£¬Ò²¿ÉÒÔµ¼ÖÂÄÚ´æÐ¹Â¶¡£¡£¡£¡£¡£¡£
Îó²îÑéÖ¤
PoC:https://www.openwall.com/lists/oss-security/2020/03/18/1¡£¡£¡£¡£¡£¡£
ÐÞ¸´½¨Òé
1. Nginx¹Ù·½ÒÑÐû²¼ÐÞ¸´°æ±¾£¬£¬£¬Óû§ÐèÒª¸üе½ v1.17.9 £¨commit a5895eb502747f396d3901a948834cd87d5fb0c3£©
2. OpenResty Óû§ÐèÒªÅŲéNginxÉèÖÃÎļþÖÐ rewrite ÒÔ¼° ngx.req.set_uri£¬£¬£¬½¨ÒéÔÚ²»ÊDZØÐèʹÓõÄÇéÐÎÏ£¬£¬£¬ÔÝʱ½ûÓÃÏà¹ØÉèÖᣡ£¡£¡£¡£¡£
²Î¿¼Á´½Ó
https://www.openwall.com/lists/oss-security/2020/03/18/1