add Vulnerability Advisory

Signed-off-by: zhuxiujuan28 <562873187@qq.com>
This commit is contained in:
zhuxiujuan28 2025-04-02 17:47:17 +08:00
parent d973bc3569
commit c3d9d46fd4
2 changed files with 339 additions and 1 deletions

View File

@ -2,7 +2,7 @@
title: "安全策略"
keywords: "Kubernetes, KubeSphere, 安全策略"
description: "介绍 KubeSphere 安全策略。"
weight: 05
weight: 01
---
== 支持的版本

View File

@ -0,0 +1,338 @@
---
title: "KubeSphere 网关组件ingress-nginx安全漏洞公告"
linkTitle: "KubeSphere 网关组件安全漏洞公告"
keywords: "Kubernetes, KubeSphere, 安全漏洞, 公告"
description: "介绍 KubeSphere 安全漏洞公告。"
weight: 02
---
== 漏洞概述
**影响版本**
- KubeSphere & KubeSphere 企业版 v3.x 所有版本
- KubeSphere & KubeSphere 企业版 v4.1.x 所有版本
**漏洞等级**:严重
**漏洞类型**:权限提升、信息泄露、安全绕过、目录遍历
**漏洞一览表:**
[%header,cols="1a,1a,1a,3a,1a"]
|===
|漏洞编号 |类型 |CVSS 评分 |简述 |详细信息
|CVE-2025-1097 |配置注入 |8.8(高危) |通过 `auth-tls-match-cn` 注解注入恶意配置,可导致任意代码执行和信息泄露 |link:https://github.com/kubernetes/kubernetes/issues/131007[官方链接]
|CVE-2025-24514 |配置注入 |8.8(高危) |通过 `auth-url` 注解注入恶意配置,可导致任意代码执行和信息泄露 |link:https://github.com/kubernetes/kubernetes/issues/131006[官方链接]
|CVE-2025-24513 |目录遍历 |4.8(中危)|Admission Controller 中的文件路径遍历,可能导致拒绝服务和信息泄露 |link:https://github.com/kubernetes/kubernetes/issues/131005[官方链接]
|CVE-2025-1974 |远程代码执行 |9.8(严重) |Pod 网络可达的未授权远程代码执行漏洞,可导致完全控制集群 |link:https://github.com/kubernetes/kubernetes/issues/131009[官方链接]
|CVE-2025-1098 |配置注入 |8.8(高危) |通过 `mirror-target` 和 `mirror-host` 注解注入恶意配置,可导致任意代码执行和信息泄露 |link:https://github.com/kubernetes/kubernetes/issues/131008[官方链接]
|===
== 漏洞影响分析
这些漏洞主要通过以下方式影响系统:
. **代码执行风险**CVE-2025-1097、CVE-2025-24514、CVE-2025-1098 和 CVE-2025-1974 都可能导致在 ingress-nginx 控制器上下文中执行任意代码。
. **信息泄露**由于默认情况下ingress-nginx 控制器可访问集群内所有命名空间中的 Secrets这可能导致敏感凭证泄露。
. **未授权访问**:特别是 CVE-2025-1974任何能够访问 Pod 网络的攻击者无需认证即可获取集群控制权CVSS 评分高达 9.8(严重)。
. **缓解条件**:对于 CVE-2025-24514如果已启用 `enable-annotation-validation` 参数v1.12.0 起默认启用),则不受该漏洞影响。
== 验证是否受影响
请执行以下步骤检查您的系统是否受影响。
. 确认是否使用 ingress-nginx 组件。
+
--
[source,bash]
----
kubectl get pods --all-namespaces --selector app.kubernetes.io/name=ingress-nginx
----
如果命令返回结果,表明您正在使用 ingress-nginx。
--
. 检查已安装的 ingress-nginx 版本。
+
--
[source,bash]
----
kubectl exec -it -n ingress-nginx deploy/ingress-nginx-controller -- /nginx-ingress-controller --version
----
**受影响版本:**
- < v1.11.0
- v1.11.0 - v1.11.4
- v1.12.0
[.admon.attention,cols="a"]
|===
|注意
|如果您使用的是受影响版本,请立即采取本文档中的解决方案或缓解措施。
|===
--
== 解决方案
=== 1. 升级nginx 社区推荐方案)
升级至以下安全版本之一:
- v1.11.5
- v1.12.1
- 或更高版本
=== 2. 升级修复KubeSphere 产品中的网关)
对于 KubeSphere 和 KubeSphere 企业版 v4.1.3,将 Kubesphere 网关升级到 v1.0.4 版本Ingress-Nginx controller 版本 v1.12.1)。
对于 v4.1.3 之前的 KubeSphere 和 KubeSphere 企业版,请先升级至 v4.1.3。
// Gateway 扩展组件升级方法可参考https://cwiki.yunify.com/pages/viewpage.action?pageId=224896073
=== 3. 临时缓解措施
如无法立即升级,可执行以下临时缓解措施。
==== CVE-2025-1097 缓解措施
检查并移除所有 Ingress 中的 `auth-tls-match-cn` 注解。
. 检查注解。
+
[source,bash]
----
kubectl get ingress -A -o custom-columns='NAMESPACE:.metadata.namespace,NAME:.metadata.name,AUTH_TLS_MATCH_CN:.metadata.annotations.nginx\.ingress\.kubernetes\.io/auth-tls-match-cn'
----
. 移除注解。
+
[source,bash]
----
kubectl annotate ingress -n <namespace-name> <Ingress-name> nginx.ingress.kubernetes.io/auth-tls-match-cn-
----
==== CVE-2025-24514 缓解措施
- 检查并移除所有 Ingress 中的 `auth-url` 注解。
+
--
. 检查注解。
+
[source,bash]
----
kubectl get ingress -A -o custom-columns='NAMESPACE:.metadata.namespace,NAME:.metadata.name,AUTH_URL:.metadata.annotations.nginx\.ingress\.kubernetes\.io/auth-url'
----
. 移除注解。
+
[source,bash]
----
kubectl annotate ingress -n <namespace-name> <Ingress-name> nginx.ingress.kubernetes.io/auth-url-
----
--
- 或启用 `enable-annotation-validation` 参数(此参数从 v1.12.0 起默认启用,但低版本需手动配置)。
+
--
. 检查是否启用了注解验证功能。
+
[source,bash]
----
kubectl get deployment -n ingress-nginx ingress-nginx-controller -o yaml | grep enable-annotation-validation
----
. 如未启用,编辑 deployment 添加参数 `--enable-annotation-validation=true`,保存后 ingress-nginx-controller 会自动重启。
+
[source,bash]
----
kubectl edit deployment -n ingress-nginx ingress-nginx-controller
----
--
==== CVE-2025-24513 和 CVE-2025-1974 缓解措施
KubeSphere 网关默认不开启 Admission Controller通过以下方法检查您的网关是否开启了 Admission Controller。
. 检查所有网关的 release。
+
[source,bash]
----
helm list -n A | grep kubesphere-router
----
. 查看所有 release 是否开启了 Admission Controller。
+
--
[source,bash]
----
helm get values [RELEASE_NAME] -n [RELEASE_NAMESPACE]
----
若 `controller.admissionWebhooks.enabled` 为 true请立即联系 KubeSphere 安全团队为您解决。
--
. 如果您自行安装了 ingress-nginx且 `controller.admissionWebhooks.enabled` 为 true可使用以下方法检查和禁用 Admission Controller。
+
====
[.admon.attention,cols="a"]
|===
|注意
|
这仅作为临时缓解措施,如果已升级到安全版本 v1.11.5 或 v1.12.1,则无需禁用 Admission Controller。
|===
* 若使用 Helm 安装了 ingress-nginx您需要重新安装设置 Helm 参数,禁用 admission webhook
+
[source,bash]
----
helm upgrade [RELEASE_NAME] ingress-nginx/ingress-nginx \
--set controller.admissionWebhooks.enabled=false \
-n ingress-nginx
----
* 若手动安装了 ingress-nginx
+
--
* 方法 1删除 `ValidatingWebhookConfiguration`。
+
[source,bash]
----
kubectl delete validatingwebhookconfigurations ingress-nginx-admission
----
* 方法 2编辑 Deployment 或 DaemonSet在 `spec.containers.args` 部分,删除 `--validating-webhook` 相关行。
+
[source,bash]
----
kubectl edit deployment -n ingress-nginx ingress-nginx-controller
----
+
[source,yaml]
----
- --validating-webhook=:8443
- --validating-webhook-certificate=/usr/local/certificates/cert
- --validating-webhook-key=/usr/local/certificates/key
----
--
[.admon.warning,cols="a"]
|===
|重要提示
|
升级到安全版本v1.11.5、v1.12.1 或更高版本)是解决所有漏洞的完整修复方案。禁用 Admission Controller 仅是在无法立即升级时的临时措施。升级后应保持 Admission Controller 启用,以确保正常功能。
|===
====
==== CVE-2025-1098 缓解措施
检查并移除所有 Ingress 中的 `mirror-target` 和 `mirror-host` 注解。
. 检查注解。
+
[source,bash]
----
kubectl get ingress -A -o custom-columns='NAMESPACE:.metadata.namespace,NAME:.metadata.name,MIRROR_TARGET:.metadata.annotations.nginx\.ingress\.kubernetes\.io/mirror-target,MIRROR_HOST:.metadata.annotations.nginx\.ingress\.kubernetes\.io/mirror-host'
----
. 移除注解。
+
[source,bash]
----
kubectl annotate ingress -n <namespace-name> <Ingress-name> nginx.ingress.kubernetes.io/mirror-target-
kubectl annotate ingress -n <namespace-name> <Ingress-name> nginx.ingress.kubernetes.io/mirror-host-
----
== 检测方法
使用以下命令检查可能被利用的配置或可疑活动:
. 检查可能被用于攻击的 `auth-tls-match-cn` 注解CVE-2025-1097
+
--
[source,bash]
----
kubectl get ingress -A -o custom-columns='NAMESPACE:.metadata.namespace,NAME:.metadata.name,AUTH_TLS_MATCH_CN:.metadata.annotations.nginx\.ingress\.kubernetes\.io/auth-tls-match-cn'
----
检查返回结果中是否有可疑内容,特别注意包含特殊字符如 `#`、`}}`、换行符等的注解值。
--
. 检查可能被用于攻击的 `auth-url` 注解CVE-2025-24514
+
--
[source,bash]
----
kubectl get ingress -A -o custom-columns='NAMESPACE:.metadata.namespace,NAME:.metadata.name,AUTH_URL:.metadata.annotations.nginx\.ingress\.kubernetes\.io/auth-url'
----
检查返回结果中是否有可疑内容,特别注意包含 `#`、`;` 或换行符的 URL。
--
. 检查 Admission Controller 是否开启,这与 CVE-2025-24513 和 CVE-2025-1974 相关。
+
--
[source,bash]
----
kubectl get validatingwebhookconfigurations -l app.kubernetes.io/name=ingress-nginx
----
如果返回结果,表示 Admission Controller 已开启,可能存在被攻击的风险。
--
. 检查可能被用于攻击的 `mirror-target` 或 `mirror-host` 注解CVE-2025-1098
+
--
[source,bash]
----
kubectl get ingress -A -o custom-columns='NAMESPACE:.metadata.namespace,NAME:.metadata.name,MIRROR_TARGET:.metadata.annotations.nginx\.ingress\.kubernetes\.io/mirror-target,MIRROR_HOST:.metadata.annotations.nginx\.ingress\.kubernetes\.io/mirror-host'
----
检查返回结果中是否有可疑内容。
--
. 检查 Pod 日志中是否有可疑活动。
+
[source,bash]
----
kubectl logs -n ingress-nginx -l app.kubernetes.io/name=ingress-nginx --tail=1000 | grep -E "error|warn|critical|suspicious|unauthorized"
----
如果发现可疑配置或活动,请立即隔离受影响的资源并联系 KubeSphere 安全团队进行进一步分析。
## 安全最佳实践
- 实施严格的网关访问控制
- 配置网关路由隔离策略
- 启用 TLS
- 限制 Ingress 资源访问权限
- 启用审计日志监控
- 实施 RBAC 最小权限原则
- 定期检查和升级 ingress-nginx 控制器
- 确保 Admission Controller 不对外暴露
- 实施网络策略限制 Pod 网络通信
## 技术支持
如发现漏洞利用证据或需要技术支持,请联系:
- KubeSphere 安全团队security@kubesphere.io
- GitHub Issueslink:https://github.com/kubesphere/kubesphere/issues[]
## 参考信息
- link:https://kubernetes.github.io/ingress-nginx/deploy/upgrade/[ingress-nginx 升级文档]
- link:https://www.wiz.io/blog/ingress-nginx-kubernetes-vulnerabilities[Wiz Research: IngressNightmare 漏洞分析]
- link:https://kubernetes.io/blog/2025/03/24/ingress-nginx-cve-2025-1974/[Kubernetes 官方博客: CVE-2025-1974 简介]