2020 年 3 月 18 号,hackerone 披露了两枚关于 Nginx 和 OpenResty 的漏洞,分别涉及到内存泄漏和目录穿越,详细的内容大家可以参考 hackerone (https://hackerone.com/reports/513236) 的分析,我这里补充说明下:
1. Nginx 的 rewrite 指令在没有检查用户输入的情况下,会导致目录穿越,危险等级:高危 2. Nginx 的 rewrite 指令在没有检查用户输入的情况下,会导致内存泄漏,危险等级:低危
3. OpenResty 的 rewrite 指令,以及 ngx.req.set_uri 没有检测非法输入值,会导致内存泄漏和目录穿越,危险等级:高危
其中,第二个低危的漏洞,Nginx 已经在 1.17.7 的版本中修复,用户更新到最新版本即可解决。而且这个漏洞在 Nginx 这种静态配置文件驱动的 web 服务器上很难被利用,除非是用户自己配置了非法字符。
但是,1 和 3 这两个高危的漏洞在报告给 Nginx 和 OpenResty 之后的三、四个月的时间内,一直没有被修复。以下是漏洞披露时间线:
在得知这个安全风险的第一时间,Apache APISIX 的 PPMC 团队就立即针对 Apache APISIX 的风险做了评估,结论是:低危,用户不用做任何处理。原因如下:
但对于正在使用 Nginx 和 OpenResty 的用户而言,在官方修复并发布新版本之前,也可以使用如下方法来处理: