Back to skill

Security audit

Agentic Weighbridge

Security checks for vulnerabilities and agentic risk

Overview

ClawScan marks this skill suspicious because scanners report that its endpoint checks can follow redirects to unintended destinations and its offline signature check does not establish who issued the result.

Consider avoiding installation until the redirect handling and offline verification concerns are addressed. If you use the hosted-verdict workflow, consider that the target URL is sent to a third-party service. The scan was partial because two local references could not be resolved, so its evidence is incomplete.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/weigh_x402_endpoint.py
Finding

Automatic redirects bypass destination validation

Content
View full analysis

Impact

The endpoint can cause requests to internal HTTP services reachable from the agent, including unauthenticated GET handlers with side effects. Redirects also bypass the stated eight-request budget. Internal HTTPS access remains subject to normal certificate validation; credential extraction is not established.

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md
Finding

Offline verification trusts an attacker-supplied signing key

Content
View full analysis

Impact

An attacker can generate a key pair, fabricate favorable endpoint measurements, recompute the hash, and sign the payload. Both documented checks pass despite the document not originating from the arena service, defeating the advertised provenance guarantee.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (7)

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The HTTPS-only, per-hop-guarded guarantee is not enforced by the supplied implementation, whose HTTP client automatically follows redirects without checking each destination. The read-only claim is also too strong: default probing sends a POST, and an unpaid request can still modify server state if the destination processes it.

Content

No source excerpt is available for this finding.

Offline verification trusts a document-supplied key, contradicting the claim that it proves arena-service origin.

High
Category
Excessive Agency
Confidence
100% confidence
Finding

The verification example obtains its verification key from the same untrusted document it authenticates. An attacker can generate a key pair, fabricate a verdict, recompute its hash, and sign it successfully, so passing this check does not establish arena-service origin and could mislead payment decisions.

Content

No source excerpt is available for this finding.

Code capability 'file_write' detected in scripts/weigh_x402_endpoint.py but not covered by declared permissions.

High
Category
MCP Least Privilege
Confidence
75% confidence
Finding

The skill uses 'file_write' capability that is not covered by the declared 'allowed-tools' preapproval. Review the host runtime's actual enforcement policy; runtime permissions are unknown unless separately verified, and this declaration alone does not establish a permission ceiling.

Content

No source excerpt is available for this finding.

Code capability 'network' detected in scripts/weigh_x402_endpoint.py but not covered by declared permissions.

High
Category
MCP Least Privilege
Confidence
75% confidence
Finding

The skill uses 'network' capability that is not covered by the declared 'allowed-tools' preapproval. Review the host runtime's actual enforcement policy; runtime permissions are unknown unless separately verified, and this declaration alone does not establish a permission ceiling.

Content

No source excerpt is available for this finding.

Redirects are followed automatically without the promised per-hop destination checks.

High
Category
Excessive Agency
Confidence
100% confidence
Finding

urllib.request.urlopen follows redirects internally, so guard_url checks only the initial URL rather than each actual destination. An attacker-controlled public endpoint can redirect to HTTP or internal services, bypassing the advertised SSRF protections and per-request budget; the surrounding loop never validates these hidden hops.

Content

No source excerpt is available for this finding.

Cloud Metadata Access

High
Category
Server-Side Request Forgery
Confidence
90% confidence
Finding

Code accesses a cloud instance metadata endpoint (e.g. 169.254.169.254). A single request can return temporary IAM credentials, making this a high-value SSRF target for credential theft.

Content

Scanner excerpt · tests/test_guard.py (reported line 22)May include surrounding context.

python
("https://127.0.0.1/paid", "private/loopback"),
    ("https://localhost/paid", "loopback"),
    ("https://10.0.0.5/paid", "private/loopback"),
    ("https://169.254.169.254/latest/meta-data", "private/loopback"),
    ("https://::1/paid", "private/loopback"),
    ("https://192.168.1.1/admin", "private/loopback"),
    ("https://", "missing host"),

The hosted-verdict workflow lacks a privacy warning that the target URL is disclosed to a third-party service.

Medium
Category
Output Handling
Confidence
88% confidence
Finding

The workflow instructs the user to submit the target URL to xhagents.xyz to obtain a hosted verdict. Although the request is shown, there is no privacy warning that this shares the endpoint address with the hosted operator, potentially exposing sensitive paths or query parameters; the capability disclosures describe only requests to the named endpoint and its origin.

Content

No source excerpt is available for this finding.