SnailSploit/CVE-2026-3288
GitHub: SnailSploit/CVE-2026-3288
针对Kubernetes ingress-nginx rewrite-target注解配置注入漏洞(CVE-2026-3288)的完整技术分析与复现指南。
Stars: 0 | Forks: 0
# CVE-2026-3288:通过 rewrite-target 注解实现 ingress-nginx 配置注入
[](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-3288)
[](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator)
[](https://kubernetes.github.io/ingress-nginx/)
[](https://cwe.mitre.org/data/definitions/20.html)
[](https://discuss.kubernetes.io/t/security-advisory-cve-2026-3288-ingress-nginx-rewrite-target-nginx-configuration-injection/34289)
## 目录
* [概述](#overview)
* [漏洞详情](#vulnerability-details)
* [技术分析](#technical-analysis)
* [受影响版本](#affected-versions)
* [修复方案](#remediation)
* [检测方法](#detection)
* [CVSS 指标](#cvss-v31-metrics)
* [时间线](#timeline)
* [参考链接](#references)
* [联系方式](#contact)
## 概述
在 ingress-nginx 中发现了一个安全问题,`nginx.ingress.kubernetes.io/rewrite-target` Ingress 注解可被用于向 nginx 注入配置。这可能导致在 ingress-nginx controller 上下文中执行任意代码,并泄露 controller 可访问的 Secrets。(请注意,在默认安装中,controller 可以访问集群范围内的所有 Secrets。)
**发现者:** Kai Aizen
**发布日期:** 2026年3月9日
**CVSS 评分:** 8.8 (高危)
**CWE:** CWE-20 — 输入验证不当
**CAPEC:** CAPEC-176 — 配置/环境操纵
**组件:** ingress-nginx
**攻击类型:** 通过 Ingress 注解进行 Nginx 配置注入
**所需权限:** 低 (PR:L)
## 漏洞详情
### 描述
`nginx.ingress.kubernetes.io/rewrite-target` Ingress 注解旨在将请求路径转发到上游服务之前对其进行修改。然而,其实现方式允许将任意配置指令直接注入到底层的 nginx 配置中。
能够创建或修改 Ingress 资源的攻击者可以利用此漏洞:
- 在 ingress-nginx controller 上下文中执行任意代码
- 读取 controller 可访问的 Secrets
- 在默认安装中,访问**集群范围内的所有 Secrets**
### 影响
| 影响领域 | 严重程度 |
| --- | --- |
| 机密性 | **高** — 完全泄露 Secret(默认配置下为集群范围) |
| 完整性 | **高** — 在 controller 上下文中执行任意代码 |
| 可用性 | **高** — 完全攻陷 ingress-nginx controller |
### 根本原因
核心问题在于 ingress-nginx 在处理 `rewrite-target` 注解值时缺乏充分的输入验证,导致攻击者控制的内容被直接写入 nginx 配置。这是一个配置注入漏洞 —— 注解值被作为简单的重写路径信任,但其中可以包含任意 nginx 指令。
## 技术分析
### 攻击面
在运行 ingress-nginx 的集群中,任何有权创建或修改 Ingress 资源的用户都可以触达此漏洞。该攻击需要:
1. 能够创建/修改 Ingress 资源
2. ingress-nginx controller 必须正在运行
3. 无需额外的用户交互
### Ingress-nginx 注解注入历史
此漏洞属于 ingress-nginx 中一类既定的注解注入漏洞:
| CVE | 年份 | 注解 | 影响 |
| --- | --- | --- | --- |
| CVE-2021-25746 | 2022 | 多个注解 | 指令注入 |
| CVE-2023-5044 | 2023 | `permanent-redirect` | 代码注入 |
| CVE-2024-7646 | 2024 | 注解验证绕过 | 验证绕过 |
| **CVE-2026-3288** | **2026** | **`rewrite-target`** | **RCE + Secret 泄露** |
反复出现的模式是:注解值在未经充分净化的情况下流入 nginx 配置。不同的注解,相同的根本原因。
## 受影响版本
| 分支 | 受影响版本 | 修复版本 |
| --- | --- | --- |
| 1.13.x | < 1.13.8 | **1.13.8** |
| 1.14.x | < 1.14.4 | **1.14.4** |
| 1.15.x | < 1.15.0 | **1.15.0** |
### 检查是否受影响
```
# 检查 ingress-nginx 是否已安装
kubectl get pods --all-namespaces --selector app.kubernetes.io/name=ingress-nginx
# 检查 ingress-nginx 版本
kubectl exec -n ingress-nginx \
$(kubectl get pods -n ingress-nginx -l app.kubernetes.io/name=ingress-nginx -o jsonpath='{.items[0].metadata.name}') \
-- /nginx-ingress-controller --version
```
如果您的集群上未安装 ingress-nginx,则您不受影响。
## 修复方案
### 升级(推荐)
将 ingress-nginx 升级至您所用分支的修补版本:
```
# 使用 Helm
helm upgrade ingress-nginx ingress-nginx/ingress-nginx \
--namespace ingress-nginx \
--version
```
请参阅官方升级文档:[Ingress-nginx 升级指南](https://kubernetes.github.io/ingress-nginx/deploy/upgrade/)
### 缓解措施(如果无法立即升级)
在能够升级之前,使用 admission control 阻止使用 `rewrite-target` 注解:
```
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
name: block-rewrite-target
webhooks:
- name: block-rewrite-target.security.local
rules:
- apiGroups: ["networking.k8s.io"]
apiVersions: ["v1"]
operations: ["CREATE", "UPDATE"]
resources: ["ingresses"]
clientConfig:
# Point to a webhook service that rejects Ingress resources
# containing the rewrite-target annotation
```
## 检测方法
Ingress 资源中 `rules.http.paths.path` 字段内的可疑数据可能表明存在利用此漏洞的尝试。
```
# 检查可疑的 Ingress annotations
kubectl get ingress --all-namespaces -o json | \
jq '.items[] | select(.metadata.annotations["nginx.ingress.kubernetes.io/rewrite-target"] != null) | {namespace: .metadata.namespace, name: .metadata.name, rewrite: .metadata.annotations["nginx.ingress.kubernetes.io/rewrite-target"]}'
```
如果您发现此漏洞已被利用的证据,请联系 [security@kubernetes.io](mailto:security@kubernetes.io)。
## CVSS v3.1 指标
```
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
```
| 指标 | 值 |
| --- | --- |
| 攻击向量 | 网络 (AV:N) |
| 攻击复杂度 | 低 (AC:L) |
| 所需权限 | 低 (PR:L) |
| 用户交互 | 无 (UI:N) |
| 范围 | 未改变 (S:U) |
| 机密性 | 高 (C:H) |
| 完整性 | 高 (I:H) |
| 可用性 | 高 (A:H) |
## 时间线
| 日期 | 事件 |
| --- | --- |
| — | 漏洞被发现并报告给 Kubernetes Security Response Committee |
| 2026年3月9日 | 发布安全公告 |
| 2026年3月9日 | 发布修补版本 (1.13.8, 1.14.4, 1.15.0) |
| 2026年3月9日 | 分配 CVE-2026-3288 |
## 参考链接
- [Kubernetes 安全公告](https://discuss.kubernetes.io/t/security-advisory-cve-2026-3288-ingress-nginx-rewrite-target-nginx-configuration-injection/34289)
- [GitHub Issue — kubernetes/kubernetes#137560](https://github.com/kubernetes/kubernetes/issues/137560)
- [NVD 条目](https://nvd.nist.gov/vuln/detail/CVE-2026-3288)
- [GHSA-c56h-j8gw-3v54](https://github.com/advisories/GHSA-c56h-j8gw-3v54)
- [Ingress-nginx 升级指南](https://kubernetes.github.io/ingress-nginx/deploy/upgrade/)
## 致谢
**研究员:** Kai Aizen — [SnailSploit](https://snailsploit.com)
**致谢:** Tabitha Sable 代表 Kubernetes Security Response Committee
## 免责声明
此信息仅用于安全研究和防御目的。任何出于恶意目的利用此漏洞的行为都是非法和不道德的。在测试您不拥有的系统之前,请务必获得适当的授权。
## 联系方式
如有关于此漏洞的问题或需要更多信息:
- **邮箱:** [kai@owasp.com](mailto:kai@snailsploit.com)
- **网站:** [snailsploit.com](https://snailsploit.com)
*最后更新:2026年3月10日*
标签:CISA项目, CVE-2026-3288, CVSS 8.8, CWE-20, ingress-nginx, Ingress注解, Nginx, Pandas, RCE, Rewrite-Target, StruQ, Web截图, 中间件安全, 协议分析, 子域名突变, 安全漏洞, 容器安全, 开放策略代理, 提示词注入, 权限提升, 漏洞复现, 输入验证不当, 配置注入