刚刚发布了 OpenResty 1.15.8.3 安全更新正式版。 包含了最近社区报告的 Nginx core 和 HTTP Lua 模块中的安全漏洞, 特别是 HackerOne 团队报告的内存内容泄漏隐患。 当 Lua 程序员在设置 URI 或请求头等数据时没有检查数据中是否存在换行符或其他控制字符时, 可能会让攻击者注入恶意请求头或泄漏内存中的敏感数据。

建议所有的 OpenResty 用户升级到这个版本。

同时发布了 OpenResty 1.17.8.1 RC1 版 供社区测试, 包含了过去几个月累积的数量众多的 bug 修复、新特性和性能优化。

顺利的话,新的 1.17.8.1 主线版将会在下周或者更晚些时候发布。

重点变更

  • 基于新的 NGINX 1.17.8 版本。
  • 支持 OpenSSL 1.1.1。
  • 不再支持 PUC-Rio Lua,只支持 LuaJIT 2.x。
  • 强制使用 lua-resty-core,废弃 lua_load_resty_core 指令。
  • 新增一个 NGINX patch,以确保当开启 reuseport 的时候,关闭没有用的监听文件句柄。
  • coroutine.wrap() 的错误返回给父协程,以符合标准 Lua 行为。
  • 新增了 ngx_req.add_header() API。
  • ngx.pipe:支持指定环境变量,支持指定超时时间等改进。
  • ngx_ssl.get_tls1_version_str() 支持 TLS1.3。
  • 在修改 URI 以及 请求/响应头的 API 里增加检查是否包含非法字符。
  • stream-lua: tcpsock:connect 支持连接排队,以及最大连接数限制。
  • stream-lua: 支持更多基于 FFI 实现的 API,比如 ngx.worker.*, ngx.var, ngx.ctx 等。
  • LuaJIT: 支持 x390x 体系结构。
  • LuaJIT: 从 Mike Pall 维护的上游主线同步了一些重要的修复。

点击这里查看完整的发布变更