<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>CVE-2025-1974 - Tag - Shengxu · Cloud Architecture &amp; DevOps</title><link>https://shengxu.pages.dev/en/tags/cve-2025-1974/</link><description>Cloud architecture &amp; DevOps notes by Shengxu: Kubernetes, Cilium, observability, LLM infra, AI agents.</description><generator>Hugo 0.153.2 &amp; FixIt v0.4.0-alpha.3-20251225101113-8ffb9a95</generator><language>en</language><lastBuildDate>Sat, 27 Dec 2025 10:00:00 +0800</lastBuildDate><atom:link href="https://shengxu.pages.dev/en/tags/cve-2025-1974/index.xml" rel="self" type="application/rss+xml"/><item><title>IngressNightmare (CVE-2025-1974): Vulnerability Deep Dive and Gateway API Migration Guide</title><link>https://shengxu.pages.dev/en/posts/ingress-nightmare-gateway-api-migration/</link><pubDate>Sat, 27 Dec 2025 10:00:00 +0800</pubDate><guid>https://shengxu.pages.dev/en/posts/ingress-nightmare-gateway-api-migration/</guid><category domain="https://shengxu.pages.dev/en/categories/kubernetes/">Kubernetes</category><category domain="https://shengxu.pages.dev/en/categories/security/">Security</category><description>&lt;p&gt;The recently disclosed &lt;strong&gt;&amp;ldquo;IngressNightmare&amp;rdquo;&lt;/strong&gt; vulnerability in Ingress-NGINX has once again thrust nginx-ingress into the spotlight, serving as a stark warning for clusters still relying on traditional Ingress.&lt;/p&gt;
&lt;p&gt;Below is a technical review focused on engineering practice, covering the vulnerability recap, risk analysis, short-term fixes, how to leverage this as an opportunity to migrate to Gateway API, and a comparison of pros and cons before and after migration.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 class="heading-element" id="vulnerability-brief-ingressnightmare-cve20251974"&gt;&lt;span&gt;Vulnerability Brief: IngressNightmare (CVE‑2025‑1974)&lt;/span&gt;
 &lt;a href="#vulnerability-brief-ingressnightmare-cve20251974" class="heading-mark"&gt;
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Severity&lt;/strong&gt;: In March 2025, researchers disclosed a set of high-severity vulnerabilities in the Ingress-NGINX controller, collectively known as &amp;ldquo;IngressNightmare.&amp;rdquo; Among them, &lt;strong&gt;CVE‑2025‑1974&lt;/strong&gt; has a CVSS score of &lt;strong&gt;9.8&lt;/strong&gt;, rated as &amp;ldquo;Critical&amp;rdquo; by the official team and multiple security vendors, affecting a vast number of Kubernetes clusters.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Root Cause&lt;/strong&gt;: The core issue lies in the &lt;strong&gt;Validating Admission Webhook&lt;/strong&gt;. When validating an Ingress object, the controller generates an NGINX configuration based on the object and its annotations, then uses &lt;code&gt;nginx -t&lt;/code&gt; for validation. During this process, insufficient filtering of annotations and configuration fragments allows attackers to inject arbitrary NGINX directives, ultimately leading to Remote Code Execution (RCE) on the controller Pod.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Low Attack Barrier&lt;/strong&gt;: An attacker only needs access to the admission webhook within the Pod network (many clusters even expose it to the public internet) to trigger the vulnerability via unauthenticated requests. This is an &lt;strong&gt;unauthenticated RCE&lt;/strong&gt;, highly susceptible to mass exploitation by worms or automated attack tools.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vulnerability Chain&lt;/strong&gt;: The same disclosure includes several other high-severity injection vulnerabilities (e.g., CVE‑2025‑24514, CVE‑2025‑1097, CVE‑2025‑1098), collectively forming the IngressNightmare vulnerability chain, with an attack surface far exceeding a single CVE.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 class="heading-element" id="risk-and-impact-from-nginx-to-full-cluster-takeover"&gt;&lt;span&gt;Risk and Impact: From NGINX to Full Cluster Takeover&lt;/span&gt;
 &lt;a href="#risk-and-impact-from-nginx-to-full-cluster-takeover" class="heading-mark"&gt;
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Sensitive Information Leakage&lt;/strong&gt;: Once RCE is achieved within the ingress-nginx controller container, attackers can read all Kubernetes Secrets mounted to that Pod. &lt;strong&gt;Crucially&lt;/strong&gt;, the NGINX Ingress Controller typically has extremely high privileges (ClusterRole), requiring it to read Secrets from &lt;strong&gt;all namespaces&lt;/strong&gt; in the cluster to obtain TLS certificates. This means the consequence of RCE is not just the current Namespace, but the &lt;strong&gt;complete leakage of all cluster certificates and credentials&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Traffic Hijacking and Tampering&lt;/strong&gt;: The controller usually has read and write permissions for Ingress resources in the cluster. Combined with RCE, attackers can further tamper with routing, transparently forwarding user traffic to attacker-controlled backends for man-in-the-middle attacks or data theft.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;ldquo;One Hole to Rule the Cloud&amp;rdquo;&lt;/strong&gt;: Practical tests by multiple security vendors show that in clusters with loose default network policies, an attacker only needs execution permissions on any Pod to laterally access the admission webhook, thereby escalating to cluster-level control.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 class="heading-element" id="short-term-remediation-patch-first-rebuild-later"&gt;&lt;span&gt;Short-Term Remediation: Patch First, Rebuild Later&lt;/span&gt;
 &lt;a href="#short-term-remediation-patch-first-rebuild-later" class="heading-mark"&gt;
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Before discussing Gateway API migration, all clusters still running ingress-nginx need to take two immediate actions:&lt;/p&gt;</description></item></channel></rss>