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