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