# CVE-2025-1974

## Vulnerability Details

Ingress-nginx Controller is a Kubernetes controller that uses Nginx as a reverse proxy and load balancer. Recently, multiple high-risk security vulnerabilities have been disclosed in it, with details as follows:

| Vulnerability Type | CVE-ID           | Severity | Disclosure/Discovery Date |
|--------------------|------------------|----------|---------------------------|
| Privilege Escalation | CVE-2025-2787    | High     | 2025-03-26                |
| Code Execution     | CVE-2025-1974    | High     | 2025-03-24                |
| Code Execution     | CVE-2025-1097    | High     | 2025-03-24                |
| Code Execution     | CVE-2025-1098    | High     | 2025-03-24                |
| Denial of Service  | CVE-2025-24513   | Medium   | 2025-03-24                |
| Code Execution     | CVE-2025-24514   | High     | 2025-03-24                |
| Authentication Bypass | CVE-2024-7646   | High     | 2024-08-16                |  

## Impact Scope

- < 1.11.4
- 1.12.0 - 1.12.3
- 1.13.0 - 1.13.2

## Vulnerability Self-Check

```
# v1.10.5 was supported in the previous Nginx Ingress documentation at https://docs.ucloud.cn/uk8s/service/ingress/nginx_1.26, and the document has now been updated to v1.11.5.
$ kubectl get deployment -n ingress-nginx ingress-nginx-controller -oyaml | grep "image:"
image: uhub.service.ucloud.cn/uk8s/ingress-nginx-controller:v1.10.5
```

## Fixing Scheme

Before performing the fix, you need to confirm whether the version of your current Kubernetes cluster supports the version of Ingress - nginx Controller to be upgraded. You can conduct a self - check through the version support of Ingress.

```
# Check the current cluster version
$ kubectl version
Server Version: v1.28.15
```

> Note: If your cluster does not support the version of Ingress - nginx Controller, it is recommended to upgrade the cluster version first and then upgrade the Ingress - nginx Controller. If you do not consider upgrading the Ingress - nginx Controller for the time being, it is recommended that you disable the configuration affected by the vulnerability (CVE - 2025 - 1974) and only allow trusted users to have the permission to manage ingress resources. For more information, please refer to the Kubernetes RBAC configuration.

```
# Disable the admission validation configuration
# Before executing kubectl apply - f mandatory.yaml, delete the following lines. Refer to the document: https://kubernetes.github.io/ingress-nginx/user-guide/cli-arguments/
    - --validating-webhook=:8443
    - --validating-webhook-certificate=/usr/local/certificates/cert
    - --validating-webhook-key=/usr/local/certificates/key

```

If your cluster supports an unaffected version such as 1.11.5, you can upgrade it through the following commands. For the vulnerability CVE - 2025 - 2787, you can pay attention to the official version release logs.

### Upgrade Command

```
$ kubectl -n ingress-nginx patch deployment ingress-nginx-controller --type='json'  -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/image", "value": "uhub.service.ucloud.cn/uk8s/ingress-nginx-controller:v1.11.5"}]'
```

### Check whether the Ingress-nginx Controller Status is Normal

```
$ kubectl -n ingress-nginx get deployment
NAME                       READY   UP-TO-DATE   AVAILABLE   AGE
ingress-nginx-controller   1/1     1            1           26h
```
