mirror of
https://github.com/kubesphere/website.git
synced 2025-12-26 00:12:48 +00:00
add Vulnerability Advisory
Signed-off-by: zhuxiujuan28 <562873187@qq.com>
This commit is contained in:
parent
d973bc3569
commit
c3d9d46fd4
|
|
@ -2,7 +2,7 @@
|
|||
title: "安全策略"
|
||||
keywords: "Kubernetes, KubeSphere, 安全策略"
|
||||
description: "介绍 KubeSphere 安全策略。"
|
||||
weight: 05
|
||||
weight: 01
|
||||
---
|
||||
|
||||
== 支持的版本
|
||||
|
|
|
|||
|
|
@ -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 Issues:link: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 简介]
|
||||
Loading…
Reference in New Issue