Back to skill

Security audit

Agent Ping

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its agent-discovery purpose, but its scanner automatically sends a POST request to an unvalidated URL supplied by the scanned site.

Review this skill before installing. Only scan domains you trust, because a scanned site can influence where the script sends its automatic ping request. Treat registration and beacon commands as public disclosure actions, and inspect any recommended follow-on skills before installing them.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
Findings (2)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/agent-ping.sh:24
Finding

Unvalidated Remote Hub URL Enables Server-Side Request Forgery

Content
View full analysis
/dev/null || true) if echo "$WK" | jq -e '.protocol' >/dev/null 2>&1; then HUB_NAME=$(echo "$WK" | jq -r '.hub.name // "Unknown"') HUB_URL=$(echo "$WK" | jq -r '.hub.url // "?"') REG=$(echo "$WK" | jq -r '.hub.register // "?"') echo " ✅ Hub: $HUB_NAME ($HUB_URL)" ``` ```bash if [ -n "$HUB_URL" ] && [ "$HUB_URL" != "?" ]; then PING_URL="${HUB_URL%/}/ping" PONG=$(curl -s --max-time 5 -X POST "$PING_URL" -H "Content-Type: application/json" -d '{"source":"agent-ping-scanner"}' 2>/dev/null || true) if echo "$PONG" | jq -e '.pong // .status' >/dev/null 2>&1; then echo " ✅ PONG received" FOUND=$((FOUND+1)) else echo " ❌ No PONG" ``` ### Technical Analysis The script retrieves `/.well-known/agent-protocol.json` from the user-selected domain and extracts `.hub.url` without validating its scheme, hostname, port, resolved IP address, or relationship to the original scanned domain. It then appends `/ping` and automatically sends an HTTP POST request to that location. Because the discovery document is controlled by the scanned website, an attacker can supply URLs targeting loopback, private, link-local, or otherwise locally reachable services. Quoting prevents shell command injection, but it does not prevent network-level request forgery. The fixed JSON request body limits arbitrary payload construction, and the script does not directly expose response contents beyond checking them with `jq`. Nevertheless, it can make requests from the victim's network context to services unavailable to the attacker. ### Attack Path 1. An attacker operates a domain that the victim is induced to scan. 2. The attacker serves a v ...[truncated 1031 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Note
Location
SKILL.md:64
Finding

Unpinned Third-Party Skill Installation Guidance Creates Supply-Chain Risk

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (10)

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · SKILL.md (reported line 21)May include surrounding context.

md
1. **HTTP Headers** — `X-Agent-Hub` header
2. **.well-known** — `/.well-known/agent-protocol.json`
3. **Markdown** — `<!-- OADP:1.0 -->` comments in AGENT.md
4. **HTML Meta** — `<meta name="agent-protocol">` tags
5. **robots.txt** — `Agent-Hub:` directives
6. **DNS TXT** — `_agent.domain` records

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding

The skill advertises and demonstrates shell-based execution (bash .../agent-ping.sh) but does not declare any explicit tool scope or permission boundary. That increases the chance an agent or user will run shell commands without clear review constraints, which is risky because the skill's purpose includes scanning arbitrary domains and interacting with external infrastructure.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill instructs users to POST agent registration data to an external service without disclosing that data will leave the local environment and be stored by a third party. Even if the sample payload looks harmless, users may substitute real identifiers, descriptions, or capability data, causing unreviewed external disclosure.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
98% confidence
Finding

This curl -X POST example transmits structured agent metadata to an external domain, which is a concrete external transmission path. In the context of an agent skill, that is dangerous because users may execute it directly, causing unreviewed data exfiltration to a third-party coordination hub.

Content

Scanner excerpt · SKILL.md (reported line 40)May include surrounding context.

bash
# ClawSwarm (largest open hub)
curl -s -X POST "https://onlyflies.buzz/clawswarm/api/v1/agents/register" \
  -H "Content-Type: application/json" \
  -d '{"name":"YourName","description":"What you do","capabilities":["your","skills"]}'

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill tells users to append a discoverability beacon to AGENTS.md without warning that this publicly advertises hub, registration, and ping endpoints. Publishing those coordinates can expose internal tooling relationships or make the agent easier to enumerate and target by untrusted third parties.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The script is described as a discovery scanner, but it actively sends a POST request to a hub URL learned from untrusted remote content. That changes behavior from passive enumeration to active interaction with third-party infrastructure, which can create unintended external signaling, privacy leakage, and contact with attacker-controlled endpoints.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
95% confidence
Finding

This is a real external transmission: the script sends a JSON POST to a URL discovered from untrusted content. In a skill context, automatic outbound requests to attacker-influenced endpoints can leak tool usage, trigger interactions with internal or sensitive network locations if misconfigured, and violate least-surprise expectations for a scanner.

Content

Scanner excerpt · scripts/agent-ping.sh (reported line 74)May include surrounding context.

sh
echo "[6/6] OADP Ping..."
if [ -n "$HUB_URL" ] && [ "$HUB_URL" != "?" ]; then
  PING_URL="${HUB_URL%/}/ping"
  PONG=$(curl -s --max-time 5 -X POST "$PING_URL" -H "Content-Type: application/json" -d '{"source":"agent-ping-scanner"}' 2>/dev/null || true)
  if echo "$PONG" | jq -e '.pong // .status' >/dev/null 2>&1; then
    echo "  ✅ PONG received"
    FOUND=$((FOUND+1))

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The POST to the discovered ping endpoint occurs automatically with no warning, confirmation, or explicit user consent. Because the destination is derived from remote JSON, a malicious site can cause the script to send network traffic to arbitrary external services, undermining the user's expectation of a passive scan.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · scripts/agent-ping.sh (reported line 93)May include surrounding context.

sh
if [ -n "$REG" ] && [ "$REG" != "?" ]; then
    echo ""
    echo "Register now:"
    echo "  curl -s -X POST '$REG' \\"
    echo "    -H 'Content-Type: application/json' \\"
    echo "    -d '{\"name\":\"YourName\",\"description\":\"What you do\",\"capabilities\":[\"your\",\"skills\"]}'"
  fi

Description-Behavior Mismatch

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The manifest says the skill can register presence and join the network, but the code itself does not register; instead it emits a concrete curl command template targeting a discovered registration URL. This is a mild description-behavior mismatch because the described capability is presented as implemented behavior, while the script only suggests a follow-up manual action.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.