
ウォークスルー: rewrite-target アノテーションを介した ingress-nginx 設定インジェクション
ingress-nginx において、nginx.ingress.kubernetes.io/rewrite-target Ingress アノテーションを使用して nginx に設定をインジェクションできるというセキュリティ問題が発見されました。これにより、ingress-nginx コントローラーのコンテキストでの任意のコード実行や、コントローラーがアクセス可能な Secret の漏えいにつながる可能性があります。(デフォルトのインストールでは、コントローラーはクラスター全体のすべての Secret にアクセスできることに注意してください。)
発見者: Kai Aizen
公開日: 2026年3月9日
CVSS スコア: 8.8 (High)
CWE: CWE-20 — 不適切な入力検証
CAPEC: CAPEC-176 — 設定・環境の改ざん
コンポーネント: ingress-nginx
攻撃種別: Ingress アノテーション経由の nginx 設定インジェクション
必要な権限: Low (PR:L)
nginx.ingress.kubernetes.io/rewrite-target Ingress アノテーションは、リクエストをアップストリームサービスに転送する前にリクエストパスを書き換えることを目的としています。しかし、その実装では、基盤となる nginx 設定に任意の設定ディレクティブを直接インジェクションすることが可能です。
Ingress リソースを作成または変更できる攻撃者は、これを利用して以下が可能です:
| 影響領域 | 深刻度 |
|---|---|
| 機密性 | High — 完全な Secret 漏えい(デフォルト設定ではクラスター全体) |
| 完全性 | High — コントローラーのコンテキストでの任意のコード実行 |
| 可用性 | High — ingress-nginx コントローラーの完全な侵害 |
根本的な問題は、ingress-nginx が rewrite-target アノテーションの値を十分な入力検証なしに処理し、攻撃者が制御するコンテンツが nginx 設定に直接書き込まれることです。これは設定インジェクションの脆弱性です。アノテーションの値は単純な書き換えパスとして信頼されていますが、任意の nginx ディレクティブを含むことができます。
この脆弱性は、ingress-nginx が実行されているクラスターで Ingress リソースを作成または変更する権限を持つすべてのユーザーが利用できます。攻撃に必要な条件は次のとおりです:
この脆弱性は、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 |
# Check if ingress-nginx is installed
kubectl get pods --all-namespaces --selector app.kubernetes.io/name=ingress-nginx
# Check ingress-nginx version
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 をアップグレードしてください:
# Using Helm
helm upgrade ingress-nginx ingress-nginx/ingress-nginx \
--namespace ingress-nginx \
--version <patched-chart-version>
公式のアップグレードドキュメントを参照してください:Upgrading Ingress-nginx
アップグレードできるようになるまで、アドミッションコントロールを使用して 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 フィールド内の不審なデータは、この脆弱性を悪用しようとする試みを示している可能性があります。
# Check for suspicious 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"]}'
この脆弱性が悪用された証拠を発見した場合は、[email protected] まで連絡してください。
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
| メトリクス | 値 |
|---|---|
| 攻撃元 | Network (AV:N) |
| 攻撃の複雑さ | Low (AC:L) |
| 必要な権限 | Low (PR:L) |
| ユーザー操作 | None (UI:N) |
| スコープ | Unchanged (S:U) |
| 機密性への影響 | High (C:H) |
| 完全性への影響 | High (I:H) |
| 可用性への影響 | High (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 採番 |
研究者: Kai Aizen — SnailSploit
謝辞: Kubernetes Security Response Committee を代表して Tabitha Sable
この情報は、セキュリティ研究および防御目的のためだけに提供されます。この脆弱性を悪意のある目的で悪用することは違法であり、非倫理的です。あなたが所有していないシステムをテストする前に、必ず適切な許可を取得してください。
この脆弱性に関する質問や追加情報については、以下までお問い合わせください:
最終更新日: 2026年3月10日
このプロジェクトの完全な writeup、方法論、および関連研究は以下にあります:
作成: Kai Aizen — 独立系オフェンシブセキュリティ研究者
snailsploit.com · 研究 · フレームワーク · GitHub · LinkedIn · ResearchGate · X/Twitter
同じ攻撃。異なる基盤。