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