T09 · Insecure Skill Coding Practices
- Location
scripts/healthcheck.py:174- Finding
Automatic Credential Access and Redirect-Based Credential Disclosure
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
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.
scripts/healthcheck.py:174Automatic Credential Access and Redirect-Based Credential Disclosure
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.
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.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"results": [
{
"name": "Bankr",
"url": "https://api.bankr.bot/agent/prompt",
"category": "defi",
"status": "UP",
"http_code": 403,
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"results": [
{
"name": "Bankr",
"url": "https://api.bankr.bot/agent/prompt",
"category": "defi",
"status": "UP",
"http_code": 403,
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"results": [
{
"name": "Bankr",
"url": "https://api.bankr.bot/agent/prompt",
"category": "defi",
"status": "UP",
"http_code": 403,
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"results": [
{
"name": "Bankr",
"url": "https://api.bankr.bot/agent/prompt",
"category": "defi",
"status": "UP",
"http_code": 403,
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"results": [
{
"name": "Bankr",
"url": "https://api.bankr.bot/agent/prompt",
"category": "defi",
"status": "UP",
"http_code": 403,
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"results": [
{
"name": "Bankr",
"url": "https://api.bankr.bot/agent/prompt",
"category": "defi",
"status": "UP",
"http_code": 403,
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"results": [
{
"name": "Bankr",
"url": "https://api.bankr.bot/agent/prompt",
"category": "defi",
"status": "UP",
"http_code": 403,
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"results": [
{
"name": "Bankr",
"url": "https://api.bankr.bot/agent/prompt",
"category": "defi",
"status": "UP",
"http_code": 403,
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"results": [
{
"name": "Bankr",
"url": "https://api.bankr.bot/agent/prompt",
"category": "defi",
"status": "UP",
"http_code": 403,
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
},
{
"name": "Basescan",
"url": "https://api.basescan.org/api?module=proxy&action=eth_blockNumber",
"category": "blockchain",
"status": "UP",
"http_code": 200,
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
},
{
"name": "Basescan",
"url": "https://api.basescan.org/api?module=proxy&action=eth_blockNumber",
"category": "blockchain",
"status": "UP",
"http_code": 200,
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
},
{
"name": "Basescan",
"url": "https://api.basescan.org/api?module=proxy&action=eth_blockNumber",
"category": "blockchain",
"status": "UP",
"http_code": 200,
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
},
{
"name": "Basescan",
"url": "https://api.basescan.org/api?module=proxy&action=eth_blockNumber",
"category": "blockchain",
"status": "UP",
"http_code": 200,
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
},
{
"name": "Basescan",
"url": "https://api.basescan.org/api?module=proxy&action=eth_blockNumber",
"category": "blockchain",
"status": "UP",
"http_code": 200,
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
},
{
"name": "Basescan",
"url": "https://api.basescan.org/api?module=proxy&action=eth_blockNumber",
"category": "blockchain",
"status": "UP",
"http_code": 200,
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
},
{
"name": "Basescan",
"url": "https://api.basescan.org/api?module=proxy&action=eth_blockNumber",
"category": "blockchain",
"status": "UP",
"http_code": 200,
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
},
{
"name": "CoinGecko",
"url": "https://api.coingecko.com/api/v3/ping",
"category": "data",
"status": "UP",
"http_code": 200,
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
},
{
"name": "CoinGecko",
"url": "https://api.coingecko.com/api/v3/ping",
"category": "data",
"status": "UP",
"http_code": 200,
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
},
{
"name": "CoinGecko",
"url": "https://api.coingecko.com/api/v3/ping",
"category": "data",
"status": "UP",
"http_code": 200,
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
},
{
"name": "CoinGecko",
"url": "https://api.coingecko.com/api/v3/ping",
"category": "data",
"status": "UP",
"http_code": 200,
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
},
{
"name": "CoinGecko",
"url": "https://api.coingecko.com/api/v3/ping",
"category": "data",
"status": "UP",
"http_code": 200,
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
},
{
"name": "CoinGecko",
"url": "https://api.coingecko.com/api/v3/ping",
"category": "data",
"status": "UP",
"http_code": 200,
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
},
{
"name": "CoinGecko",
"url": "https://api.coingecko.com/api/v3/ping",
"category": "data",
"status": "UP",
"http_code": 200,
Detected: suspicious.insecure_tls_verification, suspicious.install_untrusted_source