Back to skill

Security audit

Api Bridge

Security checks for vulnerabilities and agentic risk

Overview

This is a documentation-only skill that lists public API examples; its main risk is that agents may send query data to third-party services.

Install only if you are comfortable with agents sending API query parameters to public third-party services. Avoid using it with secrets or sensitive personal data, prefer HTTPS URLs, and get user approval before looking up IP addresses, precise locations, private URLs, or account-related finance data.

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
SKILL.md:42
Finding
Weather API Examples Use Unencrypted HTTP Requests## Vulnerability Details **File Location**: `SKILL.md`, lines 42–49 **Vulnerability Type**: Plaintext HTTP communication **Risk Level**: Medium ### Vulnerable Code ```bash curl -s "wttr.in/San+Jose,CA?format=j1" ``` ```bash # Specific location curl -s "wttr.in/San+Jose,CA?format=3" # Named locations work well; coordinates less so ``` ### Technical Analysis The example URLs do not specify the HTTPS scheme. As a result, curl interprets them as plaintext HTTP URLs. Even if the service normally redirects clients to HTTPS, the initial request remains unencrypted and unauthenticated. An attacker capable of observing or modifying network traffic could read the requested location, prevent a legitimate redirect, or return a forged API response. Because this skill directs AI agents to consume the returned weather information, manipulated content could compromise the integrity of subsequent agent output. External API data must also be treated strictly as untrusted data rather than executable commands or trusted agent instructions. ### Attack Path 1. An agent follows one of the documented curl examples. 2. curl sends the location query over plaintext HTTP. 3. An attacker positioned on the local network, gateway, proxy, or another relevant network path intercepts the request. 4. The attacker reads the requested location or replaces the response with attacker-controlled weather data. 5. The agent consumes the forged response and may present incorrect information or use it in downstream decisions. ### Impact Assessment Exploitation does not directly grant operating-system privileges or code execution. Its scope is limited to the confidentiality and integrity of these weather API exchanges. An attacker may learn queried locations and manipulate weather information supplied to the agent. The practical effect depends on how downstream workflows use the response; decisions that rely on accurate weather data could be influence ...[truncated 2 chars]
Remediation
## Remediation Suggestions 1. Specify HTTPS explicitly in every example: ```bash curl --fail --silent --show-error "https://wttr.in/San+Jose,CA?format=j1" curl --fail --silent --show-error "https://wttr.in/San+Jose,CA?format=3" ``` 2. Use `--proto '=https'` to prevent accidental use of plaintext protocols: ```bash curl --proto '=https' --fail --silent --show-error \ "https://wttr.in/San+Jose,CA?format=j1" ``` 3. If redirects are required, use `--location` together with `--proto '=https'` and `--proto-redir '=https'` so redirects cannot downgrade the connection. 4. Validate response status, content type, size, and expected JSON structure before consuming API data. 5. Treat all remote response fields as untrusted data and prevent them from being interpreted as shell commands or agent instructions.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (14)

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The skill is explicitly designed to have agents call third-party APIs, but it does not provide a general disclosure that user-supplied prompts, URLs, locations, IPs, tickers, or other query data may be transmitted to external services. This can cause unintentional privacy and compliance issues because operators may not realize the documentation encourages direct outbound sharing of potentially sensitive data.

External Transmission

Medium
Category
Data Exfiltration
Content
### Open-Meteo — Open Source Weather API (CORS: ✅, No Key)

**Base:** `https://api.open-meteo.com/v1/forecast`

```bash
curl -s "https://api.open-meteo.com/v1/forecast?latitude=37.34&longitude=-121.89&current=temperature_2m,relative_humidity_2m,weather_code,wind_speed_10m&temperature_unit=fahrenheit&wind_speed_unit=mph&timezone=America%2FLos_Angeles"
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
### Open-Meteo — Open Source Weather API (CORS: ✅, No Key)

**Base:** `https://api.open-meteo.com/v1/forecast`

```bash
curl -s "https://api.open-meteo.com/v1/forecast?latitude=37.34&longitude=-121.89&current=temperature_2m,relative_humidity_2m,weather_code,wind_speed_10m&temperature_unit=fahrenheit&wind_speed_unit=mph&timezone=America%2FLos_Angeles"
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The IP geolocation section omits that querying ipapi for the caller's address reveals the sandbox/server public IP to a third party and that querying other IPs transmits those IP addresses off-platform. Because IP addresses can be personal data and may expose infrastructure metadata, the lack of warning increases the chance of accidental privacy leakage.

External Transmission

Medium
Category
Data Exfiltration
Content
### CoinGecko — Crypto Prices (CORS: ✅, No Key, Rate Limited)

**Base:** `https://api.coingecko.com/api/v3`

```bash
# Simple price
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
### CoinGecko — Crypto Prices (CORS: ✅, No Key, Rate Limited)

**Base:** `https://api.coingecko.com/api/v3`

```bash
# Simple price
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
### CoinGecko — Crypto Prices (CORS: ✅, No Key, Rate Limited)

**Base:** `https://api.coingecko.com/api/v3`

```bash
# Simple price
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
### thecatapi — Random Cat Images (CORS: ✅, No Key)

```bash
curl -s "https://api.thecatapi.com/v1/images/search"
# [{"id":"d5D", "url":"https://...","width":1600,"height":1200}]
```
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
### Polygon.io — Market Status & Stock Quotes (CORS: ❌, No Key)

**Base:** `https://api.polygon.io/v1`

```bash
# Market status
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
### Polygon.io — Market Status & Stock Quotes (CORS: ❌, No Key)

**Base:** `https://api.polygon.io/v1`

```bash
# Market status
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
### Polygon.io — Market Status & Stock Quotes (CORS: ❌, No Key)

**Base:** `https://api.polygon.io/v1`

```bash
# Market status
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
### Polygon.io — Market Status & Stock Quotes (CORS: ❌, No Key)

**Base:** `https://api.polygon.io/v1`

```bash
# Market status
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
### Polygon.io — Market Status & Stock Quotes (CORS: ❌, No Key)

**Base:** `https://api.polygon.io/v1`

```bash
# Market status
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Natural-Language Policy Violations

Low
Confidence
91% confidence
Finding
The comment `# Your sandbox出口IP` mixes English with Chinese, introducing a language-specific instruction in a generally English-language skill. There is no indication that the skill is intended for Chinese-speaking users or that multilingual output is optional, so this is a minor locale-policy inconsistency.

Static analysis

No suspicious patterns detected.