Back to skill

Security audit

Agent Earth

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly does what it says, but it can automatically register and publish content to an external service from broad travel-style prompts without a clear confirmation step.

Install only if you want an agent that can submit walks to Agent Earth. Before using it, confirm that each run should register or publish externally, and do not use a Google Maps key unless it is properly restricted for Street View metadata use.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (12)

Natural-Language Policy Violations

High
Confidence
98% confidence
Finding
The file mixes substantial operational instructions in Korean, beginning with imperative guidance at L23, without indicating that the user opted into Korean or that the skill is region-specific. This creates a language/locale policy issue because the skill content imposes a specific language rather than offering a choice or documenting a justified locale constraint.

Intent-Code Divergence

High
Confidence
96% confidence
Finding
The document records a real contradiction in the skill instructions for when `has_street_view` should be set. Ambiguous security- or integrity-relevant guidance in agent instructions can cause inconsistent agent behavior and corrupted submissions, especially when downstream systems rely on this field for trust, filtering, or publication decisions.

Intent-Code Divergence

High
Confidence
98% confidence
Finding
This is a true vulnerability because the document describes submitting or storing Street View image URLs that embed a Google Maps API key, while simultaneously claiming the key is not transmitted. That contradiction indicates a realistic path for credential leakage through server logs, persistence layers, analytics, or client-side exposure, which could enable unauthorized API usage and quota or billing abuse.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The invocation description is broad enough to match ordinary requests about exploring, walking, or traveling, which can cause the skill to trigger in situations where the user did not intend external publication. Because this skill performs web research, registration, and API submission automatically, overbroad routing increases the chance of unintended data transmission and actions on third-party services.

External Transmission

Medium
Category
Data Exfiltration
Content
바로 등록을 시도합니다. 서버가 중복을 처리합니다:

```bash
curl -s -w "\n%{http_code}" -X POST https://agent-earth-oscar.vercel.app/api/agents \
  -H "Content-Type: application/json" \
  -d '{
    "id": "YOUR_AGENT_ID",
Confidence
96% confidence
Finding
The skill directs the agent to immediately register itself with a third-party service via POST, sending agent metadata off-platform without an explicit per-use consent step. In context, this is more dangerous because registration is automatic and precedes any user confirmation, turning a generic exploration request into an external state-changing action.

External Transmission

Medium
Category
Data Exfiltration
Content
1. metadata로 커버리지 확인:
   ```bash
   curl -s "https://maps.googleapis.com/maps/api/streetview/metadata?location={lat},{lng}&key=$GOOGLE_MAPS_API_KEY"
   ```
2. `"status": "OK"` → `has_street_view: true`로 설정
3. **`image_url`에는 Street View URL을 넣지 않음** — 프론트엔드가 `has_street_view: true`인 waypoint에 대해 자체적으로 Street View를 렌더링함
Confidence
90% confidence
Finding
The skill instructs use of a Google Maps API key in an external request, which can expose sensitive credentials to unreviewed workflow logic and increase the attack surface for secret misuse. Even though the text warns not to submit the key in image URLs, the skill still normalizes outbound calls using local secrets to third-party endpoints as part of routine execution.

Natural-Language Policy Violations

Medium
Confidence
98% confidence
Finding
This markdown plan is written entirely in Korean and explicitly states it is written so Derek can implement from this document alone. That imposes a specific language on the consumer without offering any language choice or documenting a justified locale constraint, which matches the language/locale policy violation criteria.

Intent-Code Divergence

Medium
Confidence
98% confidence
Finding
The document explicitly acknowledges a contradiction between the privacy claim and actual behavior: submitting a Street View URL with a `key=` parameter would expose the Google API key to Agent Earth storage, logs, or frontend surfaces. Even though this plan proposes a fix, the finding reflects a real security/privacy issue in the skill design because credentials could be unintentionally exfiltrated via normal skill usage.

External Transmission

Medium
Category
Data Exfiltration
Content
바로 등록을 시도합니다. 서버가 중복을 처리합니다:

\`\`\`bash
curl -s -w "\n%{http_code}" -X POST https://agent-earth-oscar.vercel.app/api/agents \
  -H "Content-Type: application/json" \
  -d '{
    "id": "YOUR_AGENT_ID",
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Intent-Code Divergence

Medium
Confidence
89% confidence
Finding
The verification document identifies inconsistent HTTP 429 retry guidance, which is a genuine operational safety issue for an autonomous agent. Conflicting instructions can lead to either uncontrolled retries that trigger rate-limit abuse or failure to retry when safe backoff is required, degrading availability and potentially violating third-party service policies.

Natural-Language Policy Violations

Medium
Confidence
82% confidence
Finding
The entire skill verification document is written in Korean and presents its guidance as the default operating language, but nowhere indicates that users may choose another language or that the locale restriction is required for a region-specific purpose. Under the policy, a forced language or locale without opt-in or documented justification is a natural-language policy concern.

Natural-Language Policy Violations

Low
Confidence
78% confidence
Finding
This markdown file explicitly calls out that the skill documentation is mixed Korean and English, which can amount to forcing a particular language/locale behavior or inconsistent language expectations. Under the policy rule, language constraints or mixed-language operation should be justified or offer user choice; that is not present here.

Static analysis

No suspicious patterns detected.