Announcing Beacon: Self-improving memory for coding agents
← All skills
Skill

performing-kubernetes-penetration-testing

skill:mukul975/anthropic-cybersecurity-skills#performing-kubernetes-penetration-testing

Evaluates Kubernetes cluster security by actively simulating attacker techniques against the API server, kubelet, etcd, pods, RBAC, network policy, and secrets, using kube-hunter, Kubescape, peirates, and manual kubectl exploitation to find paths to cluster compromise. Use for an authorized penetration test or hands-on validation that controls actually stop an attacker. Keywords: kube-hunter, Kubescape, peirates, kubelet 10250, anonymous auth, token theft, lateral movement, cluster takeover. Do not use for a configuration-only compliance audit - use performing-kubernetes-cis-benchmark-with-kube-bench.

Verdict
Suspicious

Risky behavior the analysis could not rule out.

Analyzed Oct 27, 2026, 22:56 UTC at 54a7988

Dispute security verdict

If you believe this verdict is incorrect, submit a dispute and we'll review it.

3
findings
medium
highest severity
1
threat classes
4,532
files scanned
173/173
checks satisfied
0
package advisories

Why this verdict

  • suspicious: finding skill:skills/performing-kubernetes-penetration-testing:skills/performing-kubernetes-penetration-testing/SKILL.md:104:SUPPLY
  • suspicious: finding skill:skills/performing-kubernetes-penetration-testing:skills/performing-kubernetes-penetration-testing/SKILL.md:134:SUPPLY
  • suspicious: finding skill:skills/performing-kubernetes-penetration-testing:skills/performing-kubernetes-penetration-testing/SKILL.md:143:SUPPLY

Security findings 3

Supply chain

mediumContextual risklow confidence

Undeclared unpinned dependency install: the skill instructs installing kube-hunter from PyPI without any version pin, so the code executed at test time is not pinned to a reviewed version.

pip install kube-hunter
vector:instruction
Counter-argument considered

The skill body concretely instructs an unpinned PyPI install that the workflow then executes; the pinned-official-registry carve-out requires a pin that is absent, and no declared claim covers the install's provenance or version, so this low-severity contextual supply-chain risk stands.

Supply chain

mediumContextual riskmedium confidence

Workflow Step 3 instructs the agent to apply an unpinned job.yaml fetched from the mutable main branch of the aquasecurity/kube-bench repository, causing the cluster to run whatever containers and spec that remote manifest contains at run time.

kubectl apply -f https://raw.githubusercontent.com/aquasecurity/kube-bench/main/job.yaml
vector:instruction
Counter-argument considered

The workflow step applies a live manifest from the mutable main branch into the cluster at run time with no pin; no carve-out covers a mutable-branch fetch executed as an operational step, and the declared description never declares kube-bench or remote fetching - it redirects kube-bench work to a different skill - so the undeclared gate independently sustains the finding.

Supply chain

mediumContextual riskmedium confidence

The skill instructs the agent to pipe an unpinned install script from the mutable raw.githubusercontent.com master branch directly into /bin/bash, executing remote code with no version pin or integrity check as a setup step of the workflow.

curl -s https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash
vector:instruction
Counter-argument considered

Piping an unpinned script from the mutable master branch into /bin/bash is an unpinned operational workflow step, not a vendor installer confined to fenced install documentation, and no declared claim covers the raw.githubusercontent.com fetch, so the carve-out does not neutralize the finding and it survives.

Open questions 1

What the analysis could not settle from the code alone.

[file request skills/performing-kubernetes-penetration-testing/SKILL.md] What does the Workflow section beginning at line 80 instruct the agent to run — does it invoke the bundled scripts agent.py or process.py, and does it fetch, download, or pipe any remote resource (e.g., curl|bash, unpinned URLs)?
Code execution
Refuted findings 1

Candidates the review stage examined and rejected, kept for transparency.

Privilege escalation

highRefutedlow confidence

The skill instructs the agent to deploy a privileged pod with hostPID, hostNetwork, and a hostPath mount of / on the target cluster and then chroot into the mounted host filesystem, yielding node-level compromise if the authorized-target assumption does not hold.

chroot /host
Why it was refuted

Deploying a privileged hostPID/hostNetwork pod with a hostPath mount of / and chrooting into the host filesystem is exactly the declared core capability - actively simulating attacker techniques against pods via manual kubectl exploitation to find paths to cluster compromise in an authorized penetration test - so the declared-core-capability carve-out applies and the behavior is declared, not concealed.

Coverage gaps 2

Parts of the artifact the static analysis could not fully examine.

request_unanswered request.1: request.0/skill-md-workflow: finding: citation not shown or quote not in it
invalid_judge_finding request.1