专栏首页第二层思考Nginx 和 OpenResty 内存泄漏和目录穿越漏洞的安全评估

Nginx 和 OpenResty 内存泄漏和目录穿越漏洞的安全评估

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 的风险做了评估,结论是:低危,用户不用做任何处理。原因如下:

  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。

本文分享自微信公众号 - 第二层思考(gh_dc49a09b332d),作者:温铭

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • The Apache Way--Building Tech Community in China

    感谢暨南大学 JSLeung 同学义务贡献的翻译,让这个演讲从四六级的水准变为专业级水准。下面文字有差错的话,是我后期修改、降低难度的原因。

    温铭@APISIX
  • 微服务 API 网关 APISIX 发布 0.5 版本,达到可用状态

    APISIX (https://github.com/iresty/apisix) 是一个云原生、高性能、可扩展的微服务 API 网关。

    温铭@APISIX
  • OpenResty 的过去、现在和未来(下)

    这是春哥在去年 OpenResty 大会上的分享实录。满满的干货,我搭配 PPT 整理为三部分,分期发出来给大家。如果是有什么错漏,是我整理的问题。

    温铭@APISIX
  • 实战Nginx_取代Apache的高性能Web服务器 - 张宴

    Nginx (“engine x”) 是俄罗斯人Igor Sysoev编写的一款高性能HTTP 和反向代理服务器。Nginx选择了epoll和kqueue作为网...

    用户3157710
  • nginx面试常见问题

    Nginx的并发能力在同类型网页服务器中的表现,相对而言是比较好的,因此受到了很多企业的青睐,我国使用Nginx网站的知名用户包括腾讯、淘宝、百度、京东、新浪、...

    菲宇
  • 12.5 Nginx介绍

    Nginx介绍 Nginx官网 nginx.org,最新版1.13,最新稳定版1.12 (stable版本) //这个软件是有俄国人开发的,因为对静态文件的...

    运维小白
  • 我为什么推荐大家使用 Nginx 而不是 Apache?

    最后Nginx和Apache的差异总结成一句话就是:“Nginx适合处理静态请求和反向代理,Apache适合处理动态请求”。但这个差异化只有在请求量达到一定的阈...

    明月云服务
  • Nginx 了解一下?

    如图所示,一个请求会先经过 Nginx 到达应用服务层,然后再去访问数据层(比如 Redis、MySQL 等),提供基本的数据功能。我们的应用服务因为要求开发效...

    武培轩
  • nginx常见面试题

    Nginx的并发能力在同类型网页服务器中的表现,相对而言是比较好的,因此受到了很多企业的青睐,我国使用Nginx网站的知名用户包括腾讯、淘宝、百度、京东、新浪、...

    后端技术探索
  • Nginx面试中最常见的18道题 抱佛脚必备

    Nginx的并发能力在同类型网页服务器中的表现,相对而言是比较好的,因此受到了很多企业的青睐,我国使用Nginx网站的知名用户包括腾讯、淘宝、百度、京东、新浪、...

    后端技术探索

扫码关注云+社区

领取腾讯云代金券