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