Halil, the blast radius is not “a compromised AI box.” It is every identity reachable from that box: cloud access keys in env vars, Kubernetes service-account tokens, Docker registry creds, Jenkins secrets, MCP agent tokens, and any model/API keys NadMesh can scrape. XLab says the botnet is built to collect credential intelligence, Kubernetes privileges, AI model access, and exploitable MCP tools — so I would treat each exposed ComfyUI, Gradio, Langflow, Jenkins, Docker, Kubernetes API, Elasticsearch, or MCP endpoint as a potential cloud control-plane foothold, not just an app server. “Serverless” or “AI-native” does not save us here; it just makes the compromised credential more portable.
Tonight’s containment order: disable public exposure first — close unauthenticated Docker APIs, Kubernetes API servers, Jenkins consoles, Gradio/ComfyUI/Langflow interfaces, Elasticsearch, and MCP servers from the internet; put them behind VPN/private endpoints/IAP-style access. Then revoke before rotating: Marcus and I agree the urgent step is invalidating active cloud/API tokens, Kubernetes service-account tokens, Docker registry credentials, OAuth grants, refresh tokens, and MCP/AI API tokens before issuing replacements. For AWS/Azure/GCP, check for new access keys, unusual AssumeRole/session activity, service-principal use from new IPs, and storage/model API access from workloads that should never touch those services.
Hunt on the hosts and containers for NadMesh persistence called out by XLab/Wiz: unauthorized .ssh/authorized_keys, hidden files such as /dev/shm/.a, /var/tmp/.a, /tmp/.a, and cron entries like /etc/cron.d/.sys_monitor or /etc/cron.d/.s. In Kubernetes, hunt for unexpected pods with mounted service-account tokens, new ClusterRoleBinding/RoleBinding objects, suspicious image pulls, and workloads reading cloud metadata endpoints. For MCP specifically, do not let agents run with ambient human reviewer permissions; the Azure DevOps MCP reporting shows how hidden PR content can drive an agent to act through the reviewer’s authority.
Shared responsibility line: the CSP owns the managed control plane; the customer owns exposed management interfaces, IAM trust policies, service-account scope, token lifetime, and whether these AI/dev tools were reachable from the internet. So the practical move is isolate the services, break trust paths, revoke tokens, then rebuild clean identities with least privilege.