nginx rewrite 转发配置_Nginx 和 OpenResty 内存泄漏和目录穿越漏洞的安全评估

本文关注了2020年3月18日在Nginx和OpenResty中披露的内存泄漏和目录穿越漏洞,特别是rewrite指令的问题。虽然Nginx在1.17.7版本修复了一个低危漏洞,但高危问题尚未得到官方解决。Apache APISIX团队评估认为其风险较低。为缓解风险,建议用户检查Nginx配置,限制用户权限,并过滤非法输入。此外,文章提到支流科技提供Apache APISIX的商业支持。
摘要由CSDN通过智能技术生成

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 之后的三、四个月的时间内,一直没有被修复。以下是漏洞披露时间线:

bd5fc7aff8f249207ac640c3d65d856e.png

在得知这个安全风险的第一时间,Apache APISIX 的 PPMC 团队就立即针对 Apache APISIX 的风险做了评估,结论是:低危,用户不用做任何处理。原因如下:

  1. Apache APISIX 是纯动态来改写用户请求的,并没有使用 Nginx 的 rewrite 指令;

  2. ngx.req.set_uri 只在 grpc 转码插件中使用了一次,而且是管理员的输入。

但对于正在使用 Nginx 和 OpenResty 的用户而言,在官方修复并发布新版本之前,也可以使用如下方法来处理:

  1. 检测 Nginx 配置文件中的 rewrite 指令,要对用户的输入值做检测,不能无条件转发;

  2. 检查 Nginx 的用户权限,不能是管理员权限;

  3. 对于用户的输入,做非法值过滤后,才能调用 ngx.req.set_uri 和 ngx.req.set_header。

  4. 如果有技术实力,可以自行修复,不用等官方 patch。


最后是广告时间,支流科技提供 Apache APISIX 的商业版本和技术支持,上面这些闹心的事儿都可以交给我们处理,可以直接联系我:

38bac08aab8c23d82dc5af95c986b462.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值