すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:脆弱性CVE-2021-25746

最終更新日:Nov 11, 2024

ingress-nginxの脆弱性CVE-2021-25746は、Kubernetesコミュニティによって発見されました。 攻撃者は、Ingressのmetadata.annotationsパラメーターを使用して、NGINX Ingressコントローラーの資格情報を取得できます。 資格情報を使用して、クラスター内のすべてのSecretsにアクセスできます。

CVE-2021-25746は高重症度と評価され、その共通脆弱性スコアリングシステム (CVSS) スコアは7.6である。

影響を受けるバージョン

1.2.0より前のingress-nginxバージョンは、この脆弱性の影響を受けます。

この脆弱性は、次のingress-nginxバージョンで修正されています。

  • v1.2.0-beta.0

  • v1.2.0

この脆弱性の詳細については、「 #8503」をご参照ください。

影響

Ingressを作成または変更する権限を持つユーザーは、networking.k8s.ioまたはextensions APIグループのIngressのmetadata.annotationsパラメーターを使用して、NGINX Ingressコントローラーの資格情報を取得できます。 資格情報を使用して、クラスターのAPIサーバーにアクセスし、クラスター内のすべてのSecretsにアクセスできます。

緩和

解決策1

  1. 次のコマンドを実行して、kube-system名前空間のnginx-configuration ConfigMapを変更します。

    kubectl edit configmap -n kube-system nginx-configuration
  2. 設定オプションannotation-value-word-blocklistを追加します。

    詳細については、「annotation-value-word-blocklist」をご参照ください。

    data:
      annotation-value-word-blocklist: "load_module,lua_package,_by_lua,location,root,proxy_pass,serviceaccount,{,},',\""
  3. NGINX Ingressコントローラーにプロビジョニングされているポッドを再起動します。

解決策2

Container Service for Kubernetes (ACK) のポリシーガバナンス機能を使用して、ACKCheckNginxAnnotationポリシーをデプロイします。 これにより、危険な設定を含むIngress変更リクエストを拒否できます。 詳細については、「ポリシーガバナンス機能の有効化」および「ACKの定義済みセキュリティポリシー」をご参照ください。

解決策3

管理者ではないAlibaba CloudアカウントからIngressを作成および変更する権限を取り消します。

修正

NGINX Ingressコントローラーのリリースノートをメモし、できるだけ早くNGINX Ingressコントローラーを更新することができます。 NGINX Ingressコントローラーのリリースノートの詳細については、「NGINX Ingressコントローラー」をご参照ください。