剛剛釋出了 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 維護的上游主線同步了一些重要的修復。

點選這裡檢視完整的釋出變更