Volodymyr StoikoandGitHub a76a1920dc mcp: confine download_file destination and harden start_kubeshark argument handling (#1957)
* mcp: confine download_file dest and fix start_kubeshark arg injection

download_file wrote fetched bytes to a caller-supplied dest with no
validation, and appended the caller-supplied pod_regex to 'kubeshark tap'
with no end-of-options separator. Both are reachable via induced-agent
(prompt-injection) tool arguments.

- download_file: resolve dest through secureDownloadDest, confined to a base
  directory (CWD by default, relocatable via KUBESHARK_MCP_DOWNLOAD_DIR);
  reject dest that escapes the base (../ or absolute) and '..' in the Hub
  path (CWE-22).
- start_kubeshark: append pod_regex last, after a '--' separator, so it is
  always the [POD REGEX] positional and never parsed as a --set flag (CWE-88).
- tests: set downloadDir in the download tests; add a traversal-rejection test.

Reported by novice-22 via coordinated disclosure.

* mcp: reject download destinations that escape the base via symlink

Containment in secureDownloadDest was lexical only, so a symlinked
subdirectory inside the download dir (or a dest that is itself a symlink)
could still redirect the write outside it. Resolve symlinks on the
deepest existing ancestor and re-check containment, and open the file
with O_NOFOLLOW where available to narrow the TOCTOU window.
2026-08-12 13:00:04 -07:00
2026-05-19 02:00:17 -07:00
2026-05-19 02:00:17 -07:00
2022-11-30 04:50:12 +03:00
2025-03-01 22:23:24 +02:00

Kubeshark

Release Docker pulls Discord Slack

Network Observability for SREs & AI Agents

Live Demo · Docs


Kubeshark indexes cluster-wide network traffic at the kernel level using eBPF — delivering instant answers to any query using network, API, and Kubernetes semantics.

What you can do:

  • Download Retrospective PCAPs — cluster-wide packet captures filtered by nodes, time, workloads, and IPs. Store PCAPs for long-term retention and later investigation.
  • Visualize Network Data — explore traffic matching queries with API, Kubernetes, or network semantics through a real-time dashboard.
  • See Encrypted Traffic in Plain Text — automatically decrypt TLS/mTLS traffic using eBPF, with no key management or sidecars required.
  • Integrate with AI — connect your favorite AI assistant (e.g. Claude, Copilot) to include network data in AI-driven workflows like incident response and root cause analysis.

Kubeshark


Get Started

helm repo add kubeshark https://helm.kubeshark.com
helm install kubeshark kubeshark/kubeshark
kubectl port-forward svc/kubeshark-front 8899:80

Open http://localhost:8899 in your browser. You're capturing traffic.

For production use, we recommend using an ingress controller instead of port-forward.

Connect an AI agent via MCP:

brew install kubeshark
claude mcp add kubeshark -- kubeshark mcp

MCP setup guide →


Network Data for AI Agents

Kubeshark exposes cluster-wide network data via MCP — enabling AI agents to query traffic, investigate API calls, and perform root cause analysis through natural language.

"Why did checkout fail at 2:15 PM?" "Which services have error rates above 1%?" "Show TCP retransmission rates across all node-to-node paths" "Trace request abc123 through all services"

Works with Claude Code, Cursor, and any MCP-compatible AI.

MCP Demo

MCP setup guide →

AI Skills

Open-source, reusable skills that teach AI agents domain-specific workflows on top of Kubeshark's MCP tools:

Skill Description
Network RCA Retrospective root cause analysis — snapshots, dissection, PCAP extraction, trend comparison
KFL KFL (Kubeshark Filter Language) expert — writes, debugs, and optimizes traffic filters

Install as a Claude Code plugin:

/plugin marketplace add kubeshark/kubeshark
/plugin install kubeshark

Or clone and use directly — skills trigger automatically based on conversation context.

AI Skills docs →


Query with API, Kubernetes, and Network Semantics

Kubeshark indexes cluster-wide network traffic by parsing it according to protocol specifications, with support for HTTP, gRPC, Redis, Kafka, DNS, and more. A single KFL query can combine all three semantic layers — Kubernetes identity, API context, and network attributes — to pinpoint exactly the traffic you need. No code instrumentation required.

KFL query combining API, Kubernetes, and network semantics

KFL reference → · Traffic indexing →

Workload Dependency Map

A visual map of how workloads communicate, showing dependencies, traffic volume, and protocol usage across the cluster.

Service Map

Learn more →

Traffic Retention & PCAP Export

Capture and retain raw network traffic cluster-wide, including decrypted TLS. Download PCAPs scoped by time range, nodes, workloads, and IPs — ready for Wireshark or any PCAP-compatible tool. Store snapshots in cloud storage (S3, Azure Blob, GCS) for long-term retention and cross-cluster sharing.

Traffic Retention

Snapshots guide → · Cloud storage →


Features

Feature Description
Traffic Snapshots Point-in-time snapshots with cloud storage (S3, Azure Blob, GCS), PCAP export for Wireshark
Traffic Indexing Real-time and delayed L7 indexing with request/response matching and full payloads
Protocol Support HTTP, gRPC, GraphQL, Redis, Kafka, DNS, and more
TLS Decryption eBPF-based decryption without key management, included in snapshots
AI Integration MCP server + open-source AI skills for network RCA and traffic filtering
KFL Query Language CEL-based query language with Kubernetes, API, and network semantics
100% On-Premises Air-gapped support, no external dependencies

Install

Method Command
Helm helm repo add kubeshark https://helm.kubeshark.com && helm install kubeshark kubeshark/kubeshark
Homebrew brew install kubeshark && kubeshark tap
Binary Download

Installation guide →


Contributing

We welcome contributions. See CONTRIBUTING.md.

License

Apache-2.0

S
Description
The API traffic analyzer for Kubernetes providing real-time K8s protocol-level visibility, capturing and monitoring all traffic and payloads going in, out and across containers, pods, nodes and clusters.. Think TCPDump and Wireshark re-invented for Kubernetes
Readme
167 MiB
Languages
Go 92%
Makefile 5.1%
Go Template 1.6%
Shell 1.3%