Back to skill

Security audit

Platform Healthcheck

Security checks for vulnerabilities and agentic risk

Overview

This health-check skill is mostly coherent, but it automatically reads API keys from other skill config files and sends them to platform endpoints without clear opt-in or full disclosure.

Install only if you are comfortable with this skill making outbound requests to the listed platforms and using ClawQuests or The Colony API keys from existing local skill configs during a normal check. Prefer running with test or least-privilege tokens, review data/platforms.json before use, and avoid default authenticated checks unless you trust the endpoints and redirect behavior.

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 (1)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/healthcheck.py:174
Finding

Automatic Credential Access and Redirect-Based Credential Disclosure

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (39)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
96% confidence
Finding

The skill advertises and invokes a Python health-check script that performs network operations and likely writes history/output, but the manifest declares no explicit tool scope such as permissions or allowed-tools. This creates a capability-transparency gap: reviewers and runtimes cannot easily constrain or reason about what the skill may access, increasing the risk of unintended network access or file modification when the skill is executed.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill states that it checks authentication status across 20+ external platforms, but the user-facing description does not clearly warn that real API keys or credentials may be sent to third-party endpoints. This can lead operators to run the skill without understanding that secrets will be exercised against many services, potentially triggering account actions, logging of credential-associated activity, rate limits, or disclosure through misconfiguration.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · data/history.json (reported line 7)May include surrounding context.

json
"results": [
      {
        "name": "Bankr",
        "url": "https://api.bankr.bot/agent/prompt",
        "category": "defi",
        "status": "UP",
        "http_code": 403,

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · data/history.json (reported line 279)May include surrounding context.

json
"results": [
      {
        "name": "Bankr",
        "url": "https://api.bankr.bot/agent/prompt",
        "category": "defi",
        "status": "UP",
        "http_code": 403,

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · data/history.json (reported line 317)May include surrounding context.

json
"results": [
      {
        "name": "Bankr",
        "url": "https://api.bankr.bot/agent/prompt",
        "category": "defi",
        "status": "UP",
        "http_code": 403,

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · data/history.json (reported line 368)May include surrounding context.

json
"results": [
      {
        "name": "Bankr",
        "url": "https://api.bankr.bot/agent/prompt",
        "category": "defi",
        "status": "UP",
        "http_code": 403,

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · data/history.json (reported line 640)May include surrounding context.

json
"results": [
      {
        "name": "Bankr",
        "url": "https://api.bankr.bot/agent/prompt",
        "category": "defi",
        "status": "UP",
        "http_code": 403,

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · data/history.json (reported line 912)May include surrounding context.

json
"results": [
      {
        "name": "Bankr",
        "url": "https://api.bankr.bot/agent/prompt",
        "category": "defi",
        "status": "UP",
        "http_code": 403,

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · data/history.json (reported line 1184)May include surrounding context.

json
"results": [
      {
        "name": "Bankr",
        "url": "https://api.bankr.bot/agent/prompt",
        "category": "defi",
        "status": "UP",
        "http_code": 403,

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · data/history.json (reported line 1456)May include surrounding context.

json
"results": [
      {
        "name": "Bankr",
        "url": "https://api.bankr.bot/agent/prompt",
        "category": "defi",
        "status": "UP",
        "http_code": 403,

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · data/platforms.json (reported line 25)May include surrounding context.

json
"results": [
      {
        "name": "Bankr",
        "url": "https://api.bankr.bot/agent/prompt",
        "category": "defi",
        "status": "UP",
        "http_code": 403,

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · data/history.json (reported line 33)May include surrounding context.

json
},
      {
        "name": "Basescan",
        "url": "https://api.basescan.org/api?module=proxy&action=eth_blockNumber",
        "category": "blockchain",
        "status": "UP",
        "http_code": 200,

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · data/history.json (reported line 394)May include surrounding context.

json
},
      {
        "name": "Basescan",
        "url": "https://api.basescan.org/api?module=proxy&action=eth_blockNumber",
        "category": "blockchain",
        "status": "UP",
        "http_code": 200,

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · data/history.json (reported line 666)May include surrounding context.

json
},
      {
        "name": "Basescan",
        "url": "https://api.basescan.org/api?module=proxy&action=eth_blockNumber",
        "category": "blockchain",
        "status": "UP",
        "http_code": 200,

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · data/history.json (reported line 938)May include surrounding context.

json
},
      {
        "name": "Basescan",
        "url": "https://api.basescan.org/api?module=proxy&action=eth_blockNumber",
        "category": "blockchain",
        "status": "UP",
        "http_code": 200,

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · data/history.json (reported line 1210)May include surrounding context.

json
},
      {
        "name": "Basescan",
        "url": "https://api.basescan.org/api?module=proxy&action=eth_blockNumber",
        "category": "blockchain",
        "status": "UP",
        "http_code": 200,

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · data/history.json (reported line 1482)May include surrounding context.

json
},
      {
        "name": "Basescan",
        "url": "https://api.basescan.org/api?module=proxy&action=eth_blockNumber",
        "category": "blockchain",
        "status": "UP",
        "http_code": 200,

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · data/platforms.json (reported line 103)May include surrounding context.

json
},
      {
        "name": "Basescan",
        "url": "https://api.basescan.org/api?module=proxy&action=eth_blockNumber",
        "category": "blockchain",
        "status": "UP",
        "http_code": 200,

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · data/history.json (reported line 72)May include surrounding context.

json
},
      {
        "name": "CoinGecko",
        "url": "https://api.coingecko.com/api/v3/ping",
        "category": "data",
        "status": "UP",
        "http_code": 200,

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · data/history.json (reported line 433)May include surrounding context.

json
},
      {
        "name": "CoinGecko",
        "url": "https://api.coingecko.com/api/v3/ping",
        "category": "data",
        "status": "UP",
        "http_code": 200,

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · data/history.json (reported line 705)May include surrounding context.

json
},
      {
        "name": "CoinGecko",
        "url": "https://api.coingecko.com/api/v3/ping",
        "category": "data",
        "status": "UP",
        "http_code": 200,

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · data/history.json (reported line 977)May include surrounding context.

json
},
      {
        "name": "CoinGecko",
        "url": "https://api.coingecko.com/api/v3/ping",
        "category": "data",
        "status": "UP",
        "http_code": 200,

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · data/history.json (reported line 1249)May include surrounding context.

json
},
      {
        "name": "CoinGecko",
        "url": "https://api.coingecko.com/api/v3/ping",
        "category": "data",
        "status": "UP",
        "http_code": 200,

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · data/history.json (reported line 1521)May include surrounding context.

json
},
      {
        "name": "CoinGecko",
        "url": "https://api.coingecko.com/api/v3/ping",
        "category": "data",
        "status": "UP",
        "http_code": 200,

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% 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 · data/platforms.json (reported line 88)May include surrounding context.

json
},
      {
        "name": "CoinGecko",
        "url": "https://api.coingecko.com/api/v3/ping",
        "category": "data",
        "status": "UP",
        "http_code": 200,

Static analysis

Detected: suspicious.insecure_tls_verification, suspicious.install_untrusted_source

HTTPS certificate verification is disabled.

Warn
Code
suspicious.insecure_tls_verification
Location
scripts/healthcheck.py:102

Install source points to URL shortener or raw IP.

Warn
Code
suspicious.install_untrusted_source
Location
data/history.json:176

Install source points to URL shortener or raw IP.

Warn
Code
suspicious.install_untrusted_source
Location
data/platforms.json:50