IngressNightmare(CVE-2025-1974)の検知と緩和

By 清水 孝郎 - MARCH 25, 2025

SHARE:

本文の内容は、2025年3月25日に Sysdig Threat Research Team が投稿したブログ(https://sysdig.com/blog/detecting-and-mitigating-ingressnightmare-cve-2025-1974/)を元に日本語に翻訳・再構成した内容となっております。

2025年3月24日(月)、Kubernetes用Ingress NGINX ControllerのAdmission Controllerコンポーネントに影響を与える一連の重大な脆弱性が発表されました。合計5件の脆弱性が公表されており、中でも最も重大な脆弱性であるCVE-2025-1974(CVSS 9.8)は、リモートコード実行(RCE)につながる可能性があります。

この脆弱性の悪用は、Sysdig Secureまたは本記事で提供されているFalcoルールを使用することで検知可能です。

本ブログ公開時点では、一般に公開された実証コード(PoC)は存在していませんが、この脆弱性に関する技術的詳細は十分に公開されており、近い将来PoCが開発され、容易に入手可能になると考えられます。

脆弱性

CVE-2025-1974 (CVSS スコア: 9.8) — 認証されていないリモート コマンド実行

CVE-2025-1098 (CVSS スコア: 8.8) — サニタイズされていないアノテーションによる設定インジェクション

CVE-2025-1097 (CVSS スコア: 8.8) — サニタイズされていないアノテーションによる設定インジェクション

CVE-2025-24514 (CVSS スコア: 8.8) — サニタイズされていないアノテーションによる設定インジェクション

CVE-2025-24513   (CVSS スコア: 4.8) — パストラバーサル

Amazon EKSGoogle GKEでは、NGINX Ingress Controller はデフォルトでインストールされません。 

イングレスコントローラの仕組み

イングレス コントローラーは、Kubernetes インフラストラクチャー内のコンポーネントであり、リバース プロキシおよびロード バランサーとして機能します。Kubernetes Ingressの構成をルーティング ルールに変換し、クラスター内のサービスへの外部トラフィックのエントリ ポイントを提供します。


Kubernetes環境では、さまざまなソフトウェアやオープンソースプロジェクトによってIngressコントローラーが実装されています。その中でも最も広く使用されているものの一つがNGINXです。KubernetesのIngressオブジェクトをNGINXのルーティング設定やその他の技術に変換する際、デプロイと同時にコントローラーはバリデーション用のAdmission Webhookを使用して最終的な設定を適用前に検証します。しかし、NGINX設定の安全でない処理により、細工されたIngressリクエストによって認証情報の漏洩や任意のコマンド実行が発生する可能性があります。

IngressNightmareの影響

デフォルトでは、NGINX Ingress コントローラーは公開されていません。ただし、ポッドに足がかりを得た攻撃者はコントローラーにアクセスできる可能性があります。コントローラーが公開されるように構成されている場合、リモートの攻撃者が脆弱性を悪用できる可能性があります。 

NGINX アドミッション コントローラー サービスにアクセスできる攻撃者は、脆弱性を悪用するために悪意のあるイングレス オブジェクトを作成する必要があります。脆弱性が悪用されると、攻撃者は、非常に機密性の高いサービス アカウントがマウントされている NGINX イングレス コントローラー ポッドから任意のコマンドを実行できます。このようなサービス アカウントは、クラスター全体からシークレットを取得するために使用される可能性があり、クラスターとサービスの侵害や認証情報の盗難につながる可能性があります。 

CVE-2025-1974の検知

報告された脆弱性の中で最も影響が大きいのは、認証されていないリモートコード実行を可能にするCVE-2025-1974です。このクラスの脆弱性により、攻撃者は任意のコードを実行でき、NGINX Ingress Controllerポッドに割り当てられたKubernetesロールにより、クラスター全体に影響が及ぶ可能性があります。このロールには昇格された権限があるため、攻撃者はこれを悪用してクラスター内で権限を昇格させる可能性があります。

この脆弱性を悪用するには、攻撃者は次の手順を実行する必要があります。

  • NGINXクライアントボディバッファリングを使用して共有ライブラリをターゲットポッドにアップロードする
  • NGINX Admission Controller に対して、ssl_engine の load_module ディレクティブを含む AdmissionReview リクエストを送信し、事前にアップロードされた共有ライブラリを NGINX に読み込ませます。
  • /proc ファイルシステム内のファイルディスクリプタ参照(特に /proc/*/fd/* 内)を検索することで、実行中の共有ライブラリを取得します。

このエクスプロイトは、NGINX Ingress コンテナの/procからロードされた共有ライブラリを監視することで検知できます。

Sysdig Secure のお客様には、Sysdig Runtime Threat DetectionポリシーにPotential IngressNightmare Vulnerability Exploitationルールが自動的に追加されます。

CVE-2025-1974 の検出

Falcoユーザーは、以下のルールを適用して、この脆弱性が悪用されていることを検知できます。

- rule: Potential IngressNightmare Vulnerability Exploitation

desc: This rule detects a possible exploitation of IngressNightmare vulnerability (CVE-2025-1974), where the NGINX process loads a shared library from the ProcFS. This execution may indicate a malicious actor attempting to exploit the vulnerability before executing other arbitrary code in the ingress controller container.

condition: evt.type in (mmap,mmap2) and proc.name contains "nginx" and fd.name startswith "/proc/" and fd.name contains "/fd/" and evt.arg.prot contains PROT_EXEC and container

output: Possible exploitation of IngressNightmare vulnerability by loading shared library %fd.name in %container.image.repository by %proc.name with parent %proc.pname on %container.name under user %user.name and execution path %proc.exepath (proc.name=%proc.name proc.pname=%proc.pname fd.name=%fd.name proc.exepath=%proc.exepath proc.pexepath=%proc.pexepath gexepath=%proc.aexepath[2] ggexepath=%proc.aexepath[3] gggexepath=%proc.aexepath[4] proc.cmdline=%proc.cmdline proc.pcmdline=%proc.pcmdline gcmdline=%proc.acmdline[2] ggcmdline=%proc.acmdline[3] gggcmdline=%proc.acmdline[4] gparent=%proc.aname[2] ggparent=%proc.aname[3] gggparent=%proc.aname[4] evt.type=%evt.type proc.args=%proc.args proc.pid=%proc.pid proc.cwd=%proc.cwd proc.ppid=%proc.ppid user.uid=%user.uid user.loginuid=%user.loginuid user.name=%user.name container.id=%container.id container.name=%container.name image=%container.image.repository:%container.image.tag)

priority: WARNING

tags: [container, MITRE, MITRE_TA0002_execution]

CVE-2025-1974の緩和

これらの脆弱性の影響を受ける Ingress NGINX コントローラーのバージョンは次のとおりです。

  • < v1.11.0
  • v1.11.0 - 1.11.4
  • v1.12.0


修正はバージョン v1.11.5 および v1.12.1 でリリースされています。


組織はこの脆弱性の修正を最優先とし、影響を受けるすべてのシステムに直ちにパッチを適用する必要があります。修正には、環境内のすべての Ingress NGINX Controller を最新バージョンにアップグレードし、Admission Webhook のエンドポイントが外部に公開されていないことを確認することが含まれます。

まとめ

Ingress NGINX Controller は、Kubernetesで最も人気のあるIngressコントローラーの一つであり、GitHub上でも数千のスターを獲得しています。これらの脆弱性を組み合わせることで、攻撃者はリモートコード実行を達成し、Kubernetesクラスター全体の侵害につながる可能性があります。

オープンソースのFalcoを基盤とするSysdig Secureを使用すれば、この種の攻撃を数秒で検知できるため、迅速な対応が可能です。