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