Top/Articles/Exploit code published for mcp-server-kubernetes CVE-2026-61459 — and scanners stay silent
mcp-server-kubernetes-cve-cover-en-update

Exploit code published for mcp-server-kubernetes CVE-2026-61459 — and scanners stay silent

mcp-server-kubernetes, a popular tool that lets AI assistants operate Kubernetes, has a critical flaw (CVE-2026-61459, severity 9.8): unauthenticated argument injection redirects kubectl and steals the cluster admin's credentials. Versions before 3.9.0 are affected. Update now.

NewsPublished July 11, 2026Last updated Aug. 14, 2026
Table of contents
Key takeaways

mcp-server-kubernetes, a popular tool that lets AI assistants operate Kubernetes, has a critical flaw (CVE-2026-61459, severity 9.8): unauthenticated argument injection redirects kubectl and steals the cluster admin's credentials. Versions before 3.9.0 are affected. Update now.

[Update, August 14, 2026] Exploit code is out. And the warning is not reaching the people who need it

This article has said that no proof-of-concept code was publicly available. That no longer holds. On August 11, 2026, a Python exploit for CVE-2026-61459 was published on Packet Storm. Its header reads: affected, below 3.9.0; tested on 3.8.x and earlier; type, remote argument injection; fixed in 3.9.0.

To be straight about it, "no PoC" was never quite accurate. GitHub issue #328, the report that led to this CVE and published on July 8, contains reproduction steps against v3.8.0 and a capture of the bearer token received on the attacker's own server. CISA had already assessed the flaw as having a proof-of-concept on July 13. We were reading the vulnerability databases and writing "not published" on that basis. We apologize for the error.

There are still no reports of exploitation in the wild as of August 14, and it remains absent from KEV.

The warning is not reaching the vulnerable side

The premise of this article was that following CVE numbers alone makes you miss fixes. What turned up this week goes one step further than that.

On August 12, the GitHub Advisory Database marked its entry for CVE-2026-61459 as reviewed. But the ecosystem on that entry is "pip" — Python. The vulnerable package is the npm one. We confirmed this by querying GitHub's public API directly.

ghsa_id = GHSA-wmg3-h8mf-wgvr
cve_id = CVE-2026-61459
ecosystem = pip  name = mcp-server-kubernetes
vulnerable_version_range = < 3.9.0

The mislabel causes damage in both directions.

First, npm users get no warning at all. npm audit, Dependabot and any scanner built on OSV will not return this CVE for the npm mcp-server-kubernetes. Query OSV for the npm package and the entry simply is not there. A 9.8-rated flaw reads as "no issues found."

Second, unrelated people get warned. There is a mcp-server-kubernetes on PyPI, but it is a completely different project by a different author ("A Python MCP server for Kubernetes environments," latest 0.1.6, last released March 2025). Version 0.1.6 falls inside "below 3.9.0," so users of that unrelated project get a critical alert that has nothing to do with them.

NVD, for its part, records the platform correctly as node.js. The mix-up sits in the GitHub Advisory Database and OSV — which is where most scanners look. You can cross-check your own dependencies with our free matching tool, but when the upstream data is wrong, every tool built on it returns the same wrong answer. In the end you have to read the release notes of the packages you actually use.

v4.1.4 is current, and "dependency bump" is hiding security fixes

The latest release is v4.1.4 (August 8, 2026). Two versions have shipped since v4.1.2, and both have one-line release notes.

VersionReleasedRelease noteWhat it actually was
v4.1.3Aug 7Dependency bump
for express
Clears 5 advisories,
one of them high
v4.1.4Aug 8Dependency bump
for js-yaml
Fix for a parsing
cost blow-up

v4.1.3 moves express from 4.21.2 to 4.22.2. Per the project's own issue tracker, that clears five advisories, one of them high severity: a URL shape that makes processing time explode until the server stops responding. The js-yaml change in v4.1.4 sits under a "Security" heading in the upstream changelog.

Neither carries a CVE number. The release notes say "dependency bump" and nothing else. The pattern this article started with is still running.

As for the guard against connection-target substitution — the actual subject of this article — no changes have landed since July 29, and there have been no commits to the main branch since v4.1.4. Three dependency-side advisories also remain unresolved, all of them reached through other packages.

A serious flaw has been found in "mcp-server-kubernetes," a popular bridging tool that lets AI assistants (such as Claude Desktop) operate "Kubernetes," the system for running many servers together, that could let the credentials managing the cluster (server fleet) be stolen and the whole infrastructure taken over. The identifier is CVE-2026-61459, and its severity is 9.8 out of 10, in the top tier.

This tool supports "MCP (Model Context Protocol)," a common mechanism for letting AI use "external tools," so that AI can run Kubernetes operation commands (kubectl) on your behalf. The flaw here is that if an attacker slips a crafted instruction into these operation commands, the administrator's key (credentials) that should go to your own servers is instead sent to the attacker's server. Affected are versions before 3.9.0, and the vendor has released a fix. If you use it, update to the latest version right now.

What is mcp-server-kubernetes

Kubernetes is now a standard platform for managing and automatically operating many servers and containers (small boxes that run apps) together. It is widely used as the foundation of corporate systems and cloud services. It is normally operated with a command called "kubectl."

mcp-server-kubernetes is a bridge for letting an AI assistant do this operating. The increasingly common MCP (Model Context Protocol) is a shared set of rules for letting AI use external tools (file operations, databases, and — here — Kubernetes). Integrate this tool into Claude Desktop, Cursor, or VS Code, and just by saying "scale up this app" or "show me the logs," the AI actually runs kubectl for you. With over 1,500 GitHub stars, it is used by people managing infrastructure with AI. Vulnerabilities in similar "AI-to-external" tools have been reported before, as with the unauthenticated-access vulnerability in the data connector mcp-pinot and the MCP-based takeover vulnerability in LiteLLM.

What is dangerous, and how far can the damage spread

This flaw is what specialists call "argument injection." If an attacker slips into the instructions (arguments) the AI passes to kubectl a special option beginning with a dash (-), it slips past the tool's safety check and hijacks how kubectl behaves. Specifically, the destination kubectl talks to (which should be your own Kubernetes) can be swapped for a server the attacker prepared. The U.S. National Institute of Standards and Technology (NIST) classifies this as abuse of command argument delimiters (CWE-88).

When this happens, kubectl sends the administrator's credentials (the key to operate the cluster) straight to the attacker's server as it communicates. Having stolen this key, the attacker can freely operate the entire Kubernetes cluster while impersonating the victim. That means defacing or deleting apps, exfiltrating internal data, abusing it for cryptocurrency mining, even breaking into other systems — the infrastructure can be seized wholesale. The severity of 9.8 reflects this "steal the admin's key and take over the infrastructure" scale of impact.

What is frightening is that the trigger can be pulled simply by an AI agent reading external information. For example, when you ask an AI to "check these logs" or "look at this issue ticket," if the attacker has planted instructions inside those logs or tickets, the AI may execute them as operation commands. This is a new danger common to the whole mechanism of giving AI tools, and just like the case where Kubernetes keys leaked from a migration tool, the administrator's "keyring" is a classic target.

Who targets this hole, and what happens

The likely exploiters are attackers seeking administrator credentials as a foothold into corporate infrastructure, and ransomware groups that mine cryptocurrency on hijacked clusters or hold data hostage for ransom. Kubernetes administrator rights are close to a "master key" that governs an entire corporate system, making them an extremely high-value target for attackers.

The flow of attack goes like this. Attackers plant crafted operation instructions in logs, tickets, or web pages that the AI agent reads, and the moment the victim has the AI process them, they make kubectl point to the attacker's server and send the administrator's key. The victim thinks they merely asked the AI for a routine task, while behind the scenes the key is siphoned off.

As a result, the targeted organization loses control of its Kubernetes cluster, has running services stopped, or has internal data taken wholesale. The mechanism of giving AI convenient tools is spreading fast, but if those tools receive external input unguarded, the AI can be abused as the attacker's proxy. AI being used for both attack and defense overlaps with the structure in which AI is accelerating attacks.

What is happening from a technical standpoint

In mcp-server-kubernetes, several kubectl-related flaws have been reported in succession. The central one is the following.

CVE-2026-61459: crafted arguments redirect kubectl to the attacker's server and steal the admin's key (severity 9.8)

This tool passes instructions received from the AI as kubectl options (arguments). The problem was that arguments beginning with a dash (for example, options like --server or --kubeconfig that fundamentally change kubectl's behavior) were allowed to slip past the safety check. An attacker uses this to swap kubectl's connection target for their own server. Then the administrator's authentication token (the Authorization: Bearer header) that kubectl sends with each request goes straight into the attacker's hands. No login is required (no privileges needed), and affected are versions before 3.9.0. The vendor fixed it in 3.9.0.

A recurring pattern: token leaks and command execution

Similar flaws have been found repeatedly in this tool. By passing crafted arguments to the general-purpose kubectl feature (kubectl_generic), there was a flaw that let the administrator's authentication token leak to an attacker's server (CVE-2026-47250, fixed in 3.7.0), and by slipping dangerous characters into operations like scaling and patching, a flaw that let arbitrary commands run on the server hosting the tool (CVE-2025-53355, fixed in 2.5.0). The common cause in all cases is that input passed from the AI was fed straight into kubectl or system commands. When the "input validation" of the part that gives AI its tools is weak, the tool itself becomes a springboard for attack — a textbook case.

Affected versions and countermeasures

The affected and fixed versions for each major flaw are as follows. Because the fix version differs for each, the sure way to resolve them all at once is to update to the latest available version. The latest is v4.1.2, released on July 28, 2026, and npm ships the same v4.1.2 as its latest (GitHub releases).

IdentifierIssueSeverityAffectedFixed in
CVE-2026-61459Crafted args
steal admin key
9.8before 3.9.03.9.0
CVE-2026-47250Token leak
to attacker
6.1before 3.7.03.7.0
CVE-2025-53355Command exec
on the server
≤ 2.4.92.5.0

Beyond updating, it is important to give the AI the minimum necessary privileges. This tool also has a "read-only mode" that permits only reading. For uses that do not need to make changes, narrowing to read-only, and limiting the external data (logs and tickets) you let the AI agent read to trusted sources, narrows the room for exploitation.

Fixes without a CVE number keep arriving

CVE-2026-61459 itself is fixed in 3.9.0, but reaching 3.9.0 is not where this ends. Bypasses of the same family have kept being closed since then, without CVE numbers attached. The clearest example is v4.0.6, released on July 18, 2026 (PR #347), which hardened the guard that rejects dangerous kubectl options.

The tool blocks dangerous options by name. Before checking, it normalizes each token by stripping the leading dashes and any =value suffix to get at the option name. But when the value is attached directly after a single-dash short flag — for example -sURL — normalization produced the odd string surl, which matched neither the denylist nor the set of short aliases, so the token passed the guard untouched.

The catch is that the kubectl and helm parsers read -sURL as identical to the already-blocked --server URL, -s URL, and -s=URL. In other words, a route in the same "swap kubectl's connection target" family as CVE-2026-61459 and CVE-2026-47250 was still open. v4.0.6 added logic that pulls the first character after a single dash and checks it against the short-alias set, closing that form.

The operational consequence follows from this: no CVE number was assigned to that fix. Watching NVD or GitHub advisories will not surface it. Ordinary dependency scanners, which work off vulnerability databases, will report v4.0.5 and below as having no known vulnerabilities. Pin a version and reason that "no CVE means we are fine," and fixes like this one are exactly what gets left behind. In an area like AI-integration tooling, where attack techniques are still taking shape, you have to track the release notes themselves rather than CVE numbers.

Other security-relevant releases have landed in the v4.0 line as well.

VersionReleasedChange
v4.0.12026-07-08Closed a path that bypassed
Secret masking
v4.0.2 / v4.0.52026-07-13 / 07-18Restricted server-side file reads
over remote transports
v4.0.62026-07-18Fixed attached short-flag form
slipping past the option guard
v4.0.72026-07-18Added an auth-token setting to the Helm chart
Warns on unauthenticated HTTP/SSE
v4.0.82026-07-23Updated DNS-rebinding defenses
for SSE

v4.0.0 shipped on July 8, 2026 and v4.1.2 on July 28, so all of these hardening changes piled up within three weeks. Looking only at the three flaws that carry CVE numbers does not give you the picture.

What is confirmed, and what is still unknown

✓ Confirmed facts

  • Argument injection can swap kubectl's target for the attacker's server and steal the administrator's credentials. Severity 9.8 (NVD)
  • The cause is feeding arguments passed from the AI into kubectl without validation (CWE-88). Affected are versions before 3.9.0, fixed in 3.9.0
  • The same tool has repeatedly reported similar input-validation gaps, such as token leaks (CVE-2026-47250) and command execution (CVE-2025-53355) (GitLab Advisory)
  • A bypass in the same "swap the connection target" family was fixed without a CVE number in v4.0.6 (2026-07-18) (PR #347). The latest release is v4.1.2, from July 28, 2026

? Not yet confirmed

  • ?As of August 14, 2026, there is still no official report of this vulnerability being used in an actual attack. Public proof-of-concept code does exist, however — published to Packet Storm on August 11, with reproduction steps present in the reporting issue since July 8 (see the update at the top)
  • ?As of the same date, it is not listed in the U.S. CISA "Known Exploited Vulnerabilities catalog (KEV)" (check the latest KEV status here). The NVD entry has not changed since July 17, 2026, and the affected range has not widened
  • ?The mechanism of giving AI tools is new, and exploitation techniques via external data may spread from here — caution is warranted

What you can do right now

The core countermeasure is clear. The top priority is to update mcp-server-kubernetes to the latest available version (CVE-2026-61459 is fixed in 3.9.0; the latest is v4.1.2). Hardening without CVE numbers has continued after 3.9.0, so the safer rule is to stay on the latest release rather than stopping at the version that fixes a given CVE. Fixed versions are available from the GitHub releases page and npm. Letting AI handle infrastructure operations is convenient, but the damage when your key is seized grows accordingly.

Also important is to narrow the privileges you give the AI agent and the range of external data you let it read. If you do not need to make changes, use read-only mode; do not let the AI process untrusted logs or tickets as-is; and limit which devices handle the administrator credentials (kubeconfig). From the standpoint of continuously checking dependency vulnerabilities in your OSS supply chain, such AI-integration tools are worth keeping under watch.

Who you areWhat you can do nowPriority
Developers using itUpdate to the latest version
Consider read-only mode
Top priority
Infrastructure adminsRotate credentials, review privileges
Restrict external data the AI reads
High
Suspect exploitationRevoke kubeconfig, rotate keys
Investigate cluster operation history
High

Frequently asked questions

Q. Is this irrelevant if I don't use mcp-server-kubernetes?

A. If you have not installed this tool, you are not a direct target of this flaw. However, in the "MCP" mechanism for letting AI use external tools, similar input-validation gaps have been targeted in other tools too. When adopting AI-integration tools, narrow their privileges and design so that untrusted external data is not processed as-is.

Q. How do I check my version?

A. You can check the version of the npm package or Docker image you specified at install time, or in your configuration file. If it is before 3.9.0, it is affected by CVE-2026-61459. Obtain and install the latest version (v4.1.2) from the GitHub releases page.

Q. I already updated to 3.9.0 — is anything else needed?

A. CVE-2026-61459 itself is closed in 3.9.0, but a bypass in the same "swap kubectl's connection target" family was fixed later, in v4.0.6 (July 18, 2026), with no CVE number attached. Fixes without a CVE number never reach vulnerability databases or dependency scanners. Update to v4.1.2 and make a habit of reading the release notes.

Q. Am I safe if I use read-only mode?

A. Read-only mode is effective at preventing operations that modify the cluster, but a technique like this one — swapping the connection target to make it send credentials — can succeed even with read operations. Read-only helps reduce damage, but the fundamental fix is updating to the latest version. Combining both is safest.

Q. Is it already being exploited in attacks?

A. As of August 14, 2026, there is still no official report of exploitation in the wild and no KEV listing at CISA. Public exploit code does exist, though: it was published to Packet Storm on August 11, and the reporting issue has carried reproduction steps since July 8. (This article originally said there was no public proof-of-concept code; corrected August 14, 2026.) However, it is a heavy flaw that can target administrator credentials, and similar holes have been found repeatedly, so updating early is safer.

Summary

This case is about how a convenient tool for letting AI operate Kubernetes fed the instructions passed from the AI into kubectl without checking them well enough, so that the connection target could be swapped for the attacker's server and the cluster administrator's credentials stolen. CVE-2026-61459 is severity 9.8, can be exploited without a login, and, moreover, the same tool has had similar holes found repeatedly. If the administrator's key is seized, it leads to the heavy damage of the whole infrastructure being taken over.

The saving grace is that the vendor has already released a fix. Updating to the latest version (v4.1.2), narrowing the privileges you give the AI, and not processing untrusted external data as-is closes most entry points. Even so, a bypass of the same family was closed in v4.0.6 with no CVE number attached, so watching vulnerability databases alone will not keep you current. The mechanism of giving AI tools is spreading fast, but if the tool neglects to validate the input it receives, the AI can become the attacker's proxy. Working on the assumption that convenience and danger are two sides of the same coin, it is worth making privilege design and updates a habit. If there is any new sign of exploitation, we will report it again.

References

avatar-m-1

Makoto Horikawa

Backend Engineer / AWS / Django