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