Microsoft says attackers have compromised three very different AI infrastructure products—LiteLLM, RAGFlow, and Kestra—but the practical lesson is the same: these services are increasingly functioning as privileged control points, not disposable developer tooling. A breached gateway can expose model-provider keys and proxy credentials; a compromised retrieval platform can quietly collect every new LLM key an administrator adds; and a workflow engine can become a route to shell execution, container metadata, and adjacent secrets.

The Microsoft Threat Intelligence report published August 26 describes observed intrusions rather than a theoretical attack chain. Its strongest finding is not that cryptominers reached AI servers—miners are a familiar Linux compromise outcome—but that attackers are choosing systems positioned between users, applications, models, databases, and container platforms. Those placements make a single application compromise capable of becoming a credentials, data-access, and compute-abuse incident at once.

Microsoft’s reporting is the only public account tying these particular LiteLLM, RAGFlow, and Kestra incidents together. But the vulnerabilities cited around two of the cases are independently documented: NVD and CISA list the LiteLLM issue CVE-2026-42271 as actively exploited, while Kestra’s own advisory records that CVE-2026-49869 can let an unauthenticated attacker create and execute workflows on affected installations. The report therefore supplies the campaign-level evidence; the underlying exposure is not speculative.

Cybersecurity attack dashboard showing an exposed AI gateway, stolen credentials, shell execution, and crypto-mining deployment.LiteLLM’s gateway role turns a host breach into a key breach​

The most urgent remediation target in Microsoft’s report is LiteLLM. Microsoft assesses that attackers likely exploited an exposed LiteLLM surface, then executed commands in the gateway process context. That matters because LiteLLM is commonly used as an API proxy: it can hold upstream model-provider credentials, its own master key, tenant routing data, virtual keys, and a database connection string.

CVE-2026-42271 affects LiteLLM versions 1.74.2 through 1.83.6 and was fixed in version 1.83.7. The vendor advisory says the vulnerable MCP test endpoints could spawn a supplied command using the privileges of the proxy service, even for a holder of a low-privilege API key. NVD records the same affected range, and CISA added the flaw to its Known Exploited Vulnerabilities catalog on June 8, 2026.

Microsoft’s intrusion evidence shows why a gateway compromise deserves a more severe response than simply rebuilding the container. The payload reportedly read /proc/1/environ, a particularly productive place to look in containers where the primary application runs as PID 1. Environment variables often contain the exact material an attacker needs next: provider API keys, database URLs, passwords, tokens, and configuration values.

The attackers then used the stolen database connection information to query an Azure Database for PostgreSQL instance backing LiteLLM, according to Microsoft. The reported targets included LiteLLM’s model configuration and virtual-key tables. In practice, that means rotating one compromised user credential is insufficient: organizations must assume that exposed provider keys, LiteLLM virtual keys, database credentials, and any secrets held in the gateway process may all need replacement.

Microsoft also describes persistent SSH-key changes, cron manipulation, hidden files under temporary paths, and XMRig-style cryptomining. Those are conventional Linux post-exploitation behaviors. What changes the risk calculation is the gateway’s concentration of credentials: a miner on a generic compute node is costly, but a miner on an AI proxy may be evidence that attacker access began with every key needed to impersonate the organization’s model traffic.

There is a further dependency problem. Public advisories document CVE-2026-48710, a Starlette Host-header validation flaw fixed in Starlette 1.0.1. Microsoft says public research has shown the LiteLLM command-execution bug can be chained with that weakness in affected configurations to remove the intended authentication barrier. Administrators should not regard a LiteLLM version bump alone as a complete validation exercise; they should inspect the resolved Starlette version in the actual deployed image and verify that reverse proxies reject malformed Host headers.


RAGFlow shows why application-file integrity matters in containers​

Microsoft’s RAGFlow case differs sharply from the LiteLLM and Kestra incidents. The goal was not primarily compute theft. Instead, the attacker reportedly modified the application’s startup or import path and installed a hook in the TenantLLM configuration flow. The hook then captured newly configured provider details—including API keys, provider types, model names, and endpoint information—and sent them out from the compromised container.

That persistence method is especially important for teams that treat containers as inherently ephemeral. A modified application file does not need a conventional daemon or interactive shell to survive. If the altered filesystem layer is retained in an image, persistent volume, writable application directory, or poorly controlled deployment process, the hook can reload at service start and continue collecting credentials that did not exist at the time of the initial compromise.

Microsoft does not attribute the RAGFlow intrusion to a confirmed CVE. It reports SSRF-style reconnaissance followed days later by code execution, but says its telemetry could not identify the exact execution sink. That restraint is warranted. Several public RAGFlow vulnerabilities provide plausible context, including CVE-2026-45312, a Jinja2 server-side template injection issue affecting versions through 0.24.0 according to RAGFlow’s GitHub advisory, and CVE-2026-24770, an arbitrary file-write issue in the MinerU parser. Neither public advisory proves that either flaw caused the intrusion Microsoft observed.

For defenders, the useful indicator is broader than a single CVE: unexpected changes under the RAGFlow application tree are a security event, particularly changes to Python import paths, __init__.py files, or credential-configuration code. File-integrity monitoring must cover the writable paths actually used by the container, not merely the host’s package-managed directories. A clean pod restart also is not a clean bill of health if it comes back from a compromised image or remounts a modified volume.

The report’s claim that the hook captured credentials when administrators later configured LLM providers also changes incident response priorities. Teams should determine not only whether RAGFlow was breached, but when the malicious code was installed and which provider configurations were created or edited after that point. That timeline defines the likely exposure window.


Kestra turns workflow administration into code execution​

The Kestra case is the clearest example of an AI-adjacent platform acting as an execution control plane. Microsoft assesses that attackers likely exploited CVE-2026-49869, an authentication-bypass flaw in Kestra. Kestra’s advisory says affected versions allowed an unauthenticated user to create and execute arbitrary workflows because an authentication check used a suffix match for paths ending in /configs.

The affected Kestra releases are versions earlier than 1.0.45 and versions 1.1.0 through 1.3.20; the fixes are 1.0.45 and 1.3.21. That version split is easy to mishandle in patch reporting, especially for organizations tracking separate release branches. A security review should verify the running version, the deployed worker image, and whether the vulnerable API is reachable—not merely whether a newer release exists in a repository.

Microsoft says the attackers used workflow-originated shell execution, inspected Docker metadata through a mounted Docker socket, deployed XMRig, and later collected data through Kestra’s own key-value interface. A mounted Docker socket is the most dangerous part of that sequence. It is frequently added for operational convenience, but it can permit a workload that has gained access to enumerate other containers and inspect their environment arrays. Those arrays are precisely where cloud credentials, database passwords, API tokens, and internal endpoints are commonly stored.

The resulting containment work should therefore extend beyond Kestra. If the worker had Docker socket access, responders need to inventory all containers accessible through that socket, identify secrets exposed in their environment configuration, rotate those secrets, and review whether privileged mounts or host-level container controls enabled further escape. Treating the event as limited to one malicious workflow would understate the exposure.


The security boundary is the control plane, not the model​

Microsoft frames these services as a new layer of enterprise infrastructure. The evidence supports a more operationally useful formulation: gateways, retrieval systems, and orchestrators should be administered like privileged identity and automation systems. They may not be domain controllers, but they increasingly mediate credentials and execution in ways that produce similar blast radius.

A model-provider key can incur charges or access data. A virtual key can impersonate an internal consumer of a proxy. A database URL can reveal tenant configuration and additional credentials. A workflow engine can execute a shell. A Docker socket can reveal another workload’s secrets. Individually, none of these facts is novel; their co-location in an AI runtime is the problem.

The immediate review should focus on exposed management surfaces, not just public chat or inference endpoints:

  • AI gateway administration and MCP test endpoints should be removed from direct internet exposure and restricted to authenticated, trusted management networks.
  • LiteLLM should be upgraded to at least version 1.83.7, while deployments using vulnerable Starlette versions should move to Starlette 1.0.1 or later and validate proxy Host-header handling.
  • Kestra installations should be upgraded to 1.0.45 or 1.3.21 or later, with workflow-creation APIs restricted and unnecessary script-execution plugins disabled.
  • Provider credentials should move out of process environment variables where possible and into a managed secret store with per-service access controls.
  • AI containers should not receive a Docker socket unless that access is explicitly necessary and compensating controls are in place.
  • Monitoring should flag application-parented shells, Python one-liners, reads of /proc/1/environ, writes under application startup paths, execution from /tmp, SSH authorized-key changes, cron edits, immutable-file operations, and outbound connections to unusual raw IP addresses or callback services.

Microsoft’s report also recommends correlating those signals rather than treating them as isolated alerts. That is the right approach. A shell spawned by a gateway process may be suspicious but explainable; the same shell reading environment variables, contacting an unknown endpoint, staging a binary in /tmp, and querying a proxy database is a compromise sequence.

The practical consequence is straightforward: organizations that have deployed AI infrastructure need to add it to the same patch, exposure-management, secrets-rotation, and incident-response disciplines already applied to identity systems, CI/CD runners, and production automation. The attackers Microsoft observed have already made that classification.