CVE-2020-36309
ngx_http_lua_module (aka lua-nginx-module) before 0.10.16 in OpenResty allows unsafe characters...
ngx_http_lua_module (aka lua-nginx-module) before 0.10.16 in OpenResty allows unsafe characters in an argument when using the API to mutate a URI, or a request or response header.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- Low
- Availability
- None
Exploit likelihood
What each source reports
NVD Score used
5.3
ngx_http_lua_module (aka lua-nginx-module) before 0.10.16 in OpenResty allows unsafe characters in an argument when using the API to mutate a URI, or a request or response header.
- Record
CVE-2020-36309- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N - CVSS 2.0
- 5.0 Medium
AV:N/AC:L/Au:N/C:N/I:P/A:N - Updated
- 2026-11-02
CVE List No score
ngx_http_lua_module (aka lua-nginx-module) before 0.10.16 in OpenResty allows unsafe characters in an argument when using the API to mutate a URI, or a request or response header.
- Record
CVE-2020-36309- Updated
- 2026-11-02
EUVDEUVD-2020-23851 No score
ngx_http_lua_module (aka lua-nginx-module) before 0.10.16 in OpenResty allows unsafe characters in an argument when using the API to mutate a URI, or a request or response header.
- Record
EUVD-2020-23851- Updated
- 2026-11-02
GitHub AdvisoriesGHSA-j8m6-95xp-pmp6
5.3
ngx_http_lua_module (aka lua-nginx-module) before 0.10.16 in OpenResty allows unsafe characters...
ngx_http_lua_module (aka lua-nginx-module) before 0.10.16 in OpenResty allows unsafe characters in an argument when using the API to mutate a URI, or a request or response header.
- Record
GHSA-j8m6-95xp-pmp6- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N - Updated
- 2026-11-02
OSV
5.3
ngx_http_lua_module (aka lua-nginx-module) before 0.10.16 in OpenResty allows unsafe characters in an argument when using the API to mutate a URI, or a request or response header.
- Record
CVE-2020-36309- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N - Updated
- 2026-11-02
OSVDEBIAN-CVE-2020-36309
5.3
ngx_http_lua_module (aka lua-nginx-module) before 0.10.16 in OpenResty allows unsafe characters in an argument when using the API to mutate a URI, or a request or response header.
- Record
DEBIAN-CVE-2020-36309- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N - Updated
- 2026-11-02
Show 4 moreShow less
OSVUBUNTU-CVE-2020-36309
5.3
ngx_http_lua_module (aka lua-nginx-module) before 0.10.16 in OpenResty allows unsafe characters in an argument when using the API to mutate a URI, or a request or response header.
- Record
UBUNTU-CVE-2020-36309- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N - Updated
- 2026-11-02
OSVBIT-openresty-2020-36309 No score
ngx_http_lua_module (aka lua-nginx-module) before 0.10.16 in OpenResty allows unsafe characters in an argument when using the API to mutate a URI, or a request or response header.
- Record
BIT-openresty-2020-36309- Updated
- 2026-11-02
OSVCLSA-2026-1780912663 No score
Fix of 6 CVEs
- SECURITY UPDATE: detect premature plain text response from SSL upstream (TLS plaintext injection)
- debian/patches/CVE-2026-1642.patch: detect premature plain text response from SSL upstream (TLS plaintext injection)
- CVE-2026-1642
- SECURITY UPDATE: fix NULL pointer dereference clearing s->passwd in mail auth http requests
- debian/patches/CVE-2026-27651.patch: fix NULL pointer dereference clearing s->passwd in mail auth http requests
- CVE-2026-27651
- SECURITY UPDATE: destination length validation for WebDAV COPY and MOVE (heap buffer overflow)
- debian/patches/CVE-2026-27654.patch: destination length validation for WebDAV COPY and MOVE (heap buffer overflow)
- CVE-2026-27654
- SECURITY UPDATE: fix integer overflow on 32-bit platforms in ngx_http_mp4_module
- debian/patches/CVE-2026-27784.patch: fix integer overflow on 32-bit platforms in ngx_http_mp4_module
- CVE-2026-27784
- SECURITY UPDATE: avoid zero size buffers in ngx_http_mp4_module output (out-of-bounds access)
- debian/patches/CVE-2026-32647.patch: avoid zero size buffers in ngx_http_mp4_module output (out-of-bounds access)
- CVE-2026-32647
- SECURITY UPDATE: reject unsafe characters in URIs and headers set via the Lua API (HTTP response splitting)
- debian/modules/nginx-lua/src/ngx_http_lua_util.c, debian/modules/nginx-lua/src/ngx_http_lua_util.h, debian/modules/nginx-lua/src/ngx_http_lua_uri.c, debian/modules/nginx-lua/src/ngx_http_lua_headers_in.c, debian/modules/nginx-lua/src/ngx_http_lua_headers_out.c, debian/modules/nginx-lua/src/ngx_http_lua_control.c: validate arguments of the Lua APIs that mutate a URI or a request/response header so control characters raise an error instead of being silently truncated.
- CVE-2020-36309
- Record
CLSA-2026-1780912663- Updated
- 2026-11-02
OSVUSN-5371-1 No score
nginx vulnerabilities
It was discovered that nginx Lua module mishandled certain inputs. An attacker could possibly use this issue to perform an HTTP Request Smuggling attack. This issue was fixed for Ubuntu 18.04 LTS and Ubuntu 20.04 LTS. (CVE-2020-11724)
It was discovered that nginx Lua module mishandled certain inputs. An attacker could possibly use this issue to disclose sensitive information. This issue only affects Ubuntu 18.04 LTS and Ubuntu 20.04 LTS. (CVE-2020-36309)
It was discovered that nginx mishandled the use of compatible certificates among multiple encryption protocols. If a remote attacker were able to intercept the communication, this issue could be used to redirect traffic between subdomains. (CVE-2021-3618)
- Record
USN-5371-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
openrestyBitnami |
before 0.10.16 | 0.10.16 |
nginxTuxCare:Ubuntu:16.04 |
before 1.10.3-0ubuntu0.16.04.8+tuxcare.els8 | 1.10.3-0ubuntu0.16.04.8+tuxcare.els8 |
nginx-commonTuxCare:Ubuntu:16.04 |
before 1.10.3-0ubuntu0.16.04.8+tuxcare.els8 | 1.10.3-0ubuntu0.16.04.8+tuxcare.els8 |
nginx-coreTuxCare:Ubuntu:16.04 |
before 1.10.3-0ubuntu0.16.04.8+tuxcare.els8 | 1.10.3-0ubuntu0.16.04.8+tuxcare.els8 |
nginx-docTuxCare:Ubuntu:16.04 |
before 1.10.3-0ubuntu0.16.04.8+tuxcare.els8 | 1.10.3-0ubuntu0.16.04.8+tuxcare.els8 |
nginx-extrasTuxCare:Ubuntu:16.04 |
before 1.10.3-0ubuntu0.16.04.8+tuxcare.els8 | 1.10.3-0ubuntu0.16.04.8+tuxcare.els8 |
nginx-fullTuxCare:Ubuntu:16.04 |
before 1.10.3-0ubuntu0.16.04.8+tuxcare.els8 | 1.10.3-0ubuntu0.16.04.8+tuxcare.els8 |
nginx-lightTuxCare:Ubuntu:16.04 |
before 1.10.3-0ubuntu0.16.04.8+tuxcare.els8 | 1.10.3-0ubuntu0.16.04.8+tuxcare.els8 |
nginxDebian:12 |
before 1.22.0-3 | 1.22.0-3 |
nginxDebian:13 |
before 1.22.0-3 | 1.22.0-3 |
Show 6 moreShow less
| Package | Affected | Fixed |
|---|---|---|
nginxDebian:14 |
before 1.22.0-3 | 1.22.0-3 |
nginxDebian:11 |
before 1.18.0-6.1+deb11u5, plus listed versions 1.18.0-6.11.18.0-6.1+deb11u11.18.0-6.1+deb11u21.18.0-6.1+deb11u31.18.0-6.1+deb11u4 |
1.18.0-6.1+deb11u5 |
nginxUbuntu:Pro:14.04:LTS |
All versions, plus listed versions 1.4.1-3ubuntu11.4.3-2ubuntu11.4.4-1ubuntu11.4.4-2ubuntu11.4.4-4ubuntu1 Show 19 moreShow less1.4.5-1ubuntu11.4.6-1ubuntu21.4.6-1ubuntu31.4.6-1ubuntu3.11.4.6-1ubuntu3.21.4.6-1ubuntu3.31.4.6-1ubuntu3.41.4.6-1ubuntu3.51.4.6-1ubuntu3.61.4.6-1ubuntu3.71.4.6-1ubuntu3.81.4.6-1ubuntu3.91.4.6-1ubuntu3.9+esm11.4.6-1ubuntu3.9+esm21.4.6-1ubuntu3.9+esm31.4.6-1ubuntu3.9+esm41.4.6-1ubuntu3.9+esm51.4.6-1ubuntu3.9+esm61.4.6-1ubuntu3.9+esm8 |
None known |
nginxUbuntu:Pro:16.04:LTS |
before 1.10.3-0ubuntu0.16.04.5+esm3, plus listed versions 1.9.3-1ubuntu11.9.6-2ubuntu11.9.6-2ubuntu21.9.9-0ubuntu11.9.9-1ubuntu1 Show 19 moreShow less1.9.10-0ubuntu11.9.10-1ubuntu11.9.11-0ubuntu11.9.11-0ubuntu21.9.12-0ubuntu11.9.13-0ubuntu11.9.14-0ubuntu11.9.15-0ubuntu11.10.0-0ubuntu0.16.04.11.10.0-0ubuntu0.16.04.21.10.0-0ubuntu0.16.04.31.10.0-0ubuntu0.16.04.41.10.3-0ubuntu0.16.04.11.10.3-0ubuntu0.16.04.21.10.3-0ubuntu0.16.04.31.10.3-0ubuntu0.16.04.41.10.3-0ubuntu0.16.04.51.10.3-0ubuntu0.16.04.5+esm11.10.3-0ubuntu0.16.04.5+esm2 |
1.10.3-0ubuntu0.16.04.5+esm3 |
nginxUbuntu:18.04:LTS |
before 1.14.0-0ubuntu1.10, plus listed versions 1.12.1-0ubuntu21.13.6-2ubuntu11.13.6-2ubuntu21.13.10-1ubuntu11.13.12-0ubuntu1 Show 9 moreShow less1.14.0-0ubuntu11.14.0-0ubuntu1.11.14.0-0ubuntu1.21.14.0-0ubuntu1.31.14.0-0ubuntu1.41.14.0-0ubuntu1.51.14.0-0ubuntu1.61.14.0-0ubuntu1.71.14.0-0ubuntu1.9 |
1.14.0-0ubuntu1.10 |
nginxUbuntu:20.04:LTS |
before 1.18.0-0ubuntu1.3, plus listed versions 1.16.1-0ubuntu21.16.1-0ubuntu31.17.5-0ubuntu11.17.6-0ubuntu11.17.7-0ubuntu1 Show 9 moreShow less1.17.8-0ubuntu11.17.8-0ubuntu21.17.8-0ubuntu31.17.9-0ubuntu11.17.9-0ubuntu21.17.9-0ubuntu31.17.10-0ubuntu11.18.0-0ubuntu11.18.0-0ubuntu1.2 |
1.18.0-0ubuntu1.3 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2020-36309 is a medium vulnerability (CVSS 5.3) in Openresty Lua-nginx-module, published April 6, 2021. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.42%, the 72nd percentile. Fixed in openresty 0.10.16.
References
github.com/openresty/lua-nginx-module/compare/v0.10.15...v0.10.16
github.com/openresty/lua-nginx-module/pull/1654
news.ycombinator.com/item?id=26712562
security.netapp.com/advisory/ntap-20210507-0005
lists.debian.org/debian-lts-announce/2025/06/msg00026.html
nvd.nist.gov/vuln/detail/CVE-2020-36309
Show 13 moreShow less
github.com/advisories/GHSA-j8m6-95xp-pmp6
errata.tuxcare.com/els_os/ubuntu16.04els/CLSA-2026-1780912663.html
nvd.nist.gov/vuln/detail/CVE-2026-1642
nvd.nist.gov/vuln/detail/CVE-2026-27651
nvd.nist.gov/vuln/detail/CVE-2026-27654
nvd.nist.gov/vuln/detail/CVE-2026-27784
nvd.nist.gov/vuln/detail/CVE-2026-32647
security-tracker.debian.org/tracker/CVE-2020-36309
ubuntu.com/security/CVE-2020-36309
ubuntu.com/security/notices/USN-5371-1
cve.org/CVERecord?id=CVE-2020-36309
ubuntu.com/security/CVE-2020-11724
ubuntu.com/security/CVE-2021-3618