Back to skill

Security audit

1p.io Shortlink API

Security checks for vulnerabilities and agentic risk

Overview

The skill is a mostly coherent 1p.io link-management helper, but it can automatically send long URLs to a third-party service and includes organization link deletion and management actions that are under-scoped.

Review this skill before installing. Use it only when you are comfortable sending the full destination URL and related metadata to 1p.io, and avoid shortening private, tokenized, internal, password-reset, presigned, or otherwise sensitive links. Deleting links or changing feature status should require an explicit user instruction and confirmation.

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

other

Warning
Location
SKILL.md:3
Finding
Automatic Disclosure of Long URLs to a Third-Party Shortening Service## Vulnerability Details **File Location**: `SKILL.md`, lines 3–11 **Vulnerability Type**: Automatic Sensitive URL Disclosure **Risk Level**: Medium ### Vulnerable Code Snippet ```markdown description: Create short URLs and submit feature requests using 1p.io. Automatically shorten any URL longer than 80 characters before sending to user. --- # 1p.io API ## When to use - User asks to shorten a link - You are about to send user a URL longer than 80 characters - You want to share a clean, memorable link - You want to suggest or vote on new features ``` ### Technical Analysis The Skill instructs the agent to submit any outgoing URL longer than 80 characters to the external `1p.io` shortening service, even when the user has not explicitly requested link shortening or consented to third-party processing. URL length is not a valid sensitivity control. Long URLs commonly contain signed access parameters, password-reset tokens, session identifiers, private document IDs, internal hostnames, API credentials, presigned object-storage signatures, or confidential search parameters. Submitting such a URL to the shortening endpoint discloses the complete destination to a third party and causes it to be retained as short-link data. This behavior also replaces a transparent destination with a redirect, making the final target less visible to the recipient. The finding does not provide operating-system access or code execution; its primary security consequence is unauthorized disclosure of information embedded in URLs. ### Attack Path 1. A user or integrated service supplies data that causes the agent to prepare a URL exceeding 80 characters, such as a private document URL or a presigned download link. 2. The URL contains sensitive path or query-string data. 3. The Skill's automatic length-based rule activates without requiring explicit user consent. 4. The agent sends the complete URL to `https://1p.io/api/shorten`. 5. Th ...[truncated 1030 chars]
Remediation
## Remediation Suggestions 1. Remove the instruction to shorten every URL longer than 80 characters automatically. 2. Invoke the shortening service only when the user explicitly requests it or gives informed consent after being told that the complete destination will be sent to a third party. 3. Refuse to shorten URLs containing user information, credentials, fragments, or sensitive query parameters such as `token`, `key`, `secret`, `signature`, `session`, or similar authentication data. 4. Do not shorten private-address, localhost, intranet, administrative, password-reset, magic-link, or presigned resource URLs by default. 5. Display the destination domain and obtain confirmation before submitting potentially sensitive URLs. 6. Apply short expiration periods and password protection when shortening an approved confidential destination, while recognizing that these controls do not prevent disclosure of the original URL to the shortening provider. 7. Document the third party's retention, access-control, deletion, and logging policies and provide users with a non-shortened alternative. 8. Minimize organization access to stored link details and protect the service API key using least-privilege secret storage and rotation.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • 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
Findings (5)

Description-Behavior Mismatch

Medium
Confidence
95% confidence
Finding
The manifest and description materially understate the skill's capabilities. Beyond shortening URLs and feature requests, the document exposes registration, verification, listing, inspection, deletion, and recovery flows, which increases the chance the agent or user will authorize broader actions than expected. This mismatch weakens informed consent and can lead to unexpected access to organizational link data or destructive operations.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The description does not warn that URLs, feature-request content, and related metadata will be sent to a third-party service. Because URLs often contain sensitive paths, tokens, query parameters, or internal hostnames, omission of this disclosure creates a privacy and data-handling risk in normal use.

Vague Triggers

Medium
Confidence
91% confidence
Finding
The trigger conditions are broad enough to activate on routine agent behavior, especially 'You are about to send user a URL longer than 80 characters.' That can cause unsolicited use of the skill and unnecessary disclosure of URLs and associated metadata to an external service without a direct user request.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
## Register (first time)

### Option A: Register with owner email (auto-approved)
POST https://1p.io/api/register
{"owner_email": "...", "instance_id": "...", "instance_name": "..."}
Confidence
85% confidence
Finding
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Description-Behavior Mismatch

Low
Confidence
84% confidence
Finding
The skill promises automatic shortening of URLs longer than 80 characters, but the documentation provides no mechanism or constraints for that behavior. This can cause silent or inconsistent invocation of an external third-party service, potentially transmitting user URLs without clear implementation safeguards or predictable behavior.

Static analysis

No suspicious patterns detected.