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