Important
This is a supported replacement of the original kubernetes/ingress-nginx repository, which was archived on March 24, 2026.
Community contributions are not being accepted at this time. The documentation has been carried over directly from the original repository and may not reflect recent changes.
We will make a best-effort attempt to address publicly known security vulnerabilities, including CVEs in dependencies and certain source code vulnerabilities when remediation can be achieved safely and with minimal risk. If mitigating a vulnerability would require extensive code changes (for example, adapting to a new API or significant refactoring), we will generally not make that change in order to avoid introducing regressions.
Interested in a CVE-free container image of this project? Contact Chainguard.
This fork compiles NGINX from source with a series of patches applied from
images/nginx/rootfs/patches/ (the NN_nginx-<version>-*.patch files). These
include best-effort backports of NGINX source CVEs that upstream did not ship
for the bundled NGINX release line.
Note
Some of these patches add fields to core NGINX structures. For example, the
max_headers backport for CVE-2026-49975 adds a counter to
ngx_http_headers_in_t, which is embedded in ngx_http_request_t, so it
changes the binary layout of those structures relative to stock NGINX. Every
dynamic module shipped in this image is compiled against the patched headers,
so the image itself is self-consistent. However, a third-party NGINX dynamic
module built against an unpatched NGINX of the same version may be
ABI-incompatible and should be rebuilt against this fork's headers before it
is loaded into the controller.
ingress-nginx was an Ingress controller for Kubernetes using NGINX as a reverse proxy and load balancer.
Learn more about Ingress on the Kubernetes documentation site.
If you are not already using ingress-nginx, you should not be deploying it as it is not being developed. Instead you should identify a Gateway API implementation and use it.
Do not use in multi-tenant Kubernetes production installations. This project assumes that users that can create Ingress objects are administrators of the cluster. See the FAQ for more.
If you encounter issues, review the troubleshooting docs, search for an issue, or talk to us on the #ingress-nginx-users channel on the Kubernetes Slack server.
See the list of releases for all changes.
For detailed changes for each release, please check the changelog-$version.md file for the release version.
For detailed changes on the ingress-nginx helm chart, please check the changelog folder for a specific version.
CHANGELOG-$current-version.md file.
Supported versions for the ingress-nginx project mean that we have completed E2E tests, and they are passing for the versions listed. Ingress-Nginx versions may work on older versions, but the project does not make that guarantee.
| Supported | Ingress-NGINX version | k8s supported version | Alpine Version | Nginx Version | Helm Chart Version |
|---|---|---|---|---|---|
| 🔄 | v1.15.1 | 1.35, 1.34, 1.33, 1.32, 1.31 | 3.23.3 | 1.27.1 | 4.15.1 |
| 🔄 | v1.15.0 | 1.35, 1.34, 1.33, 1.32, 1.31 | 3.23.3 | 1.27.1 | 4.15.0 |
| 🔄 | v1.14.5 | 1.34, 1.33, 1.32, 1.31, 1.30 | 3.23.3 | 1.27.1 | 4.14.5 |
| 🔄 | v1.14.4 | 1.34, 1.33, 1.32, 1.31, 1.30 | 3.23.3 | 1.27.1 | 4.14.4 |
| 🔄 | v1.14.3 | 1.34, 1.33, 1.32, 1.31, 1.30 | 3.23.2 | 1.27.1 | 4.14.3 |
| 🔄 | v1.14.2 | 1.34, 1.33, 1.32, 1.31, 1.30 | 3.23.2 | 1.27.1 | 4.14.2 |
| 🔄 | v1.14.1 | 1.34, 1.33, 1.32, 1.31, 1.30 | 3.22.2 | 1.27.1 | 4.14.1 |
| 🔄 | v1.14.0 | 1.34, 1.33, 1.32, 1.31, 1.30 | 3.22.2 | 1.27.1 | 4.14.0 |
| 🔄 | v1.13.9 | 1.33, 1.32, 1.31, 1.30, 1.29 | 3.23.3 | 1.27.1 | 4.13.9 |
| 🔄 | v1.13.8 | 1.33, 1.32, 1.31, 1.30, 1.29 | 3.23.3 | 1.27.1 | 4.13.8 |
| 🔄 | v1.13.7 | 1.33, 1.32, 1.31, 1.30, 1.29 | 3.23.2 | 1.27.1 | 4.13.7 |
| 🔄 | v1.13.6 | 1.33, 1.32, 1.31, 1.30, 1.29 | 3.23.2 | 1.27.1 | 4.13.6 |
| 🔄 | v1.13.5 | 1.33, 1.32, 1.31, 1.30, 1.29 | 3.22.2 | 1.27.1 | 4.13.5 |
| 🔄 | v1.13.4 | 1.33, 1.32, 1.31, 1.30, 1.29 | 3.22.2 | 1.27.1 | 4.13.4 |
| 🔄 | v1.13.3 | 1.33, 1.32, 1.31, 1.30, 1.29 | 3.22.1 | 1.27.1 | 4.13.3 |
| 🔄 | v1.13.2 | 1.33, 1.32, 1.31, 1.30, 1.29 | 3.22.1 | 1.27.1 | 4.13.2 |
| 🔄 | v1.13.1 | 1.33, 1.32, 1.31, 1.30, 1.29 | 3.22.1 | 1.27.1 | 4.13.1 |
| 🔄 | v1.13.0 | 1.33, 1.32, 1.31, 1.30, 1.29 | 3.22.0 | 1.27.1 | 4.13.0 |
| v1.12.8 | 1.32, 1.31, 1.30, 1.29, 1.28 | 3.22.2 | 1.25.5 | 4.12.8 | |
| v1.12.7 | 1.32, 1.31, 1.30, 1.29, 1.28 | 3.22.1 | 1.25.5 | 4.12.7 | |
| v1.12.6 | 1.32, 1.31, 1.30, 1.29, 1.28 | 3.22.1 | 1.25.5 | 4.12.6 | |
| v1.12.5 | 1.32, 1.31, 1.30, 1.29, 1.28 | 3.22.1 | 1.25.5 | 4.12.5 | |
| v1.12.4 | 1.32, 1.31, 1.30, 1.29, 1.28 | 3.22.0 | 1.25.5 | 4.12.4 | |
| v1.12.3 | 1.32, 1.31, 1.30, 1.29, 1.28 | 3.21.3 | 1.25.5 | 4.12.3 | |
| v1.12.2 | 1.32, 1.31, 1.30, 1.29, 1.28 | 3.21.3 | 1.25.5 | 4.12.2 | |
| v1.12.1 | 1.32, 1.31, 1.30, 1.29, 1.28 | 3.21.3 | 1.25.5 | 4.12.1 | |
| v1.12.0 | 1.32, 1.31, 1.30, 1.29, 1.28 | 3.21.0 | 1.25.5 | 4.12.0 | |
| v1.12.0-beta.0 | 1.32, 1.31, 1.30, 1.29, 1.28 | 3.20.3 | 1.25.5 | 4.12.0-beta.0 | |
| v1.11.8 | 1.30, 1.29, 1.28, 1.27, 1.26 | 3.22.0 | 1.25.5 | 4.11.8 | |
| v1.11.7 | 1.30, 1.29, 1.28, 1.27, 1.26 | 3.21.3 | 1.25.5 | 4.11.7 | |
| v1.11.6 | 1.30, 1.29, 1.28, 1.27, 1.26 | 3.21.3 | 1.25.5 | 4.11.6 | |
| v1.11.5 | 1.30, 1.29, 1.28, 1.27, 1.26 | 3.21.3 | 1.25.5 | 4.11.5 | |
| v1.11.4 | 1.30, 1.29, 1.28, 1.27, 1.26 | 3.21.0 | 1.25.5 | 4.11.4 | |
| v1.11.3 | 1.30, 1.29, 1.28, 1.27, 1.26 | 3.20.3 | 1.25.5 | 4.11.3 | |
| v1.11.2 | 1.30, 1.29, 1.28, 1.27, 1.26 | 3.20.0 | 1.25.5 | 4.11.2 | |
| v1.11.1 | 1.30, 1.29, 1.28, 1.27, 1.26 | 3.20.0 | 1.25.5 | 4.11.1 | |
| v1.11.0 | 1.30, 1.29, 1.28, 1.27, 1.26 | 3.20.0 | 1.25.5 | 4.11.0 | |
| v1.10.6 | 1.30, 1.29, 1.28, 1.27, 1.26 | 3.21.0 | 1.25.5 | 4.10.6 | |
| v1.10.5 | 1.30, 1.29, 1.28, 1.27, 1.26 | 3.20.3 | 1.25.5 | 4.10.5 | |
| v1.10.4 | 1.30, 1.29, 1.28, 1.27, 1.26 | 3.20.0 | 1.25.5 | 4.10.4 | |
| v1.10.3 | 1.30, 1.29, 1.28, 1.27, 1.26 | 3.20.0 | 1.25.5 | 4.10.3 | |
| v1.10.2 | 1.30, 1.29, 1.28, 1.27, 1.26 | 3.20.0 | 1.25.5 | 4.10.2 | |
| v1.10.1 | 1.30, 1.29, 1.28, 1.27, 1.26 | 3.19.1 | 1.25.3 | 4.10.1 | |
| v1.10.0 | 1.29, 1.28, 1.27, 1.26 | 3.19.1 | 1.25.3 | 4.10.0 | |
| v1.9.6 | 1.29, 1.28, 1.27, 1.26, 1.25 | 3.19.0 | 1.21.6 | 4.9.1 | |
| v1.9.5 | 1.28, 1.27, 1.26, 1.25 | 3.18.4 | 1.21.6 | 4.9.0 | |
| v1.9.4 | 1.28, 1.27, 1.26, 1.25 | 3.18.4 | 1.21.6 | 4.8.3 | |
| v1.9.3 | 1.28, 1.27, 1.26, 1.25 | 3.18.4 | 1.21.6 | 4.8.* | |
| v1.9.1 | 1.28, 1.27, 1.26, 1.25 | 3.18.4 | 1.21.6 | 4.8.* | |
| v1.9.0 | 1.28, 1.27, 1.26, 1.25 | 3.18.2 | 1.21.6 | 4.8.* | |
| v1.8.4 | 1.27, 1.26, 1.25, 1.24 | 3.18.2 | 1.21.6 | 4.7.* | |
| v1.7.1 | 1.27, 1.26, 1.25, 1.24 | 3.17.2 | 1.21.6 | 4.6.* | |
| v1.6.4 | 1.26, 1.25, 1.24, 1.23 | 3.17.0 | 1.21.6 | 4.5.* | |
| v1.5.1 | 1.25, 1.24, 1.23 | 3.16.2 | 1.21.6 | 4.4.* | |
| v1.4.0 | 1.25, 1.24, 1.23, 1.22 | 3.16.2 | 1.19.10† | 4.3.0 | |
| v1.3.1 | 1.24, 1.23, 1.22, 1.21, 1.20 | 3.16.2 | 1.19.10† | 4.2.5 |
See Updating NGINX-Ingress to use the stable Ingress API (July 26, 2021) to upgrade to the stable Ingress API before upgrading to Kubernetes 1.22.