Back to skill

Security audit

Swipe File Generator

Security checks for vulnerabilities and agentic risk

Overview

This skill does what it says: it fetches user-provided content URLs, analyzes them, and writes a local swipe file, though users should be aware of network fetching and third-party Twitter/X handling.

Install this only if you are comfortable with the agent fetching URLs from your swipe-file source list and writing results under swipe-file/. Treat fetched articles, tweets, and pages as untrusted content, and be aware that Twitter/X URLs are transformed through api.fxtwitter.com rather than fetched only from Twitter/X directly.

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)

T01 · Skill Instruction Hijacking

Warning
Location
SKILL.md:22
Finding
Untrusted Remote Content Is Processed Without Prompt-Injection Isolation## Vulnerability Details **File Location**: `SKILL.md`, lines 22-58 **Vulnerability Type**: Prompt injection through attacker-controlled remote content **Risk Level**: Medium ### Complete Code Snippet ```markdown 3. Extract all valid URLs from the sources file (one per line, ignore comments starting with #) ### Step 3: Fetch All New URLs (Batch) 1. **Detect URL type and select fetch strategy:** - **Twitter/X URLs:** Use FxTwitter API (see below) - **All other URLs:** Use web_fetch tool 2. **Fetch all content in parallel** using appropriate method for each URL 3. **Track fetch results:** - Successfully fetched: Store URL and content for processing - Failed fetches: Log the URL and failure reason for reporting 4. Continue only with successfully fetched content #### Twitter/X URL Handling Twitter/X URLs require special handling because they need JavaScript to render. Use the **FxTwitter API** instead: **Detection:** URL contains `twitter.com` or `x.com` **API Endpoint:** `https://api.fxtwitter.com/{username}/status/{tweet_id}` **Transform URL:** - Input: `https://x.com/gregisenberg/status/2012171244666253777` - API URL: `https://api.fxtwitter.com/gregisenberg/status/2012171244666253777` ### Step 4: Analyze All Content For each piece of fetched content, analyze using the **Content Deconstructor Guide** below: 1. Apply the full analysis framework to each piece ``` ### Technical Analysis The skill accepts URLs from a user-controlled source file and directs the agent to load their contents into its working context. Those contents are subsequently processed by the model without an explicit trust boundary or instruction to treat remote text solely as inert data. An attacker can place prompt-injection directives in an article, tweet, or other remotely hosted resource. When the skill fetches that resource, the model may confuse the embedded directives with trusted workflow instructions. The skill does not require sanitization of hidden or active ...[truncated 1803 chars]
Remediation
## Remediation Suggestions 1. Explicitly state that all fetched content is untrusted data and that instructions, requests, or tool directives appearing inside it must never be followed. 2. Place remote content inside clear data delimiters and require the model to analyze only the delimited material. 3. Extract only fields needed for analysis, such as title and visible body text, instead of placing complete responses or markup into the model context. 4. Remove scripts, hidden elements, metadata, comments, and other non-content markup where the fetch mechanism permits. 5. Validate URLs before fetching: - Permit only `http` and `https`. - Reject embedded credentials and malformed hosts. - Block loopback, link-local, private-network, and cloud-metadata destinations where relevant. - Revalidate every redirect destination. 6. Permit only the documented analysis and swipe-file updates while processing remote content. Require explicit user confirmation for any unrelated tool action. 7. Prevent fetched content from selecting tools, changing safety constraints, requesting secrets, or modifying files outside the documented `swipe-file/` paths. 8. Mark generated analysis as derived from untrusted material and safely quote any suspicious directives rather than reproducing them as operational instructions.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (4)

Vague Triggers

Medium
Confidence
94% confidence
Finding
The manifest description says to use the skill when 'someone wants to study and deconstruct successful content,' which is a wide natural-language condition that could overlap with many ordinary content-analysis requests. It does not define specific trigger phrases, boundaries, or exclusion cases to clarify when this skill should or should not activate.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The skill instructs the agent to read local files, fetch external URLs, and write/update local project files without requiring an explicit user warning or confirmation. This creates a real risk of unintended network access and filesystem modification, especially if the skill auto-runs or is invoked in a context where the user did not clearly consent to those side effects.

External Transmission

Medium
Category
Data Exfiltration
Content
**Detection:** URL contains `twitter.com` or `x.com`

**API Endpoint:** `https://api.fxtwitter.com/{username}/status/{tweet_id}`

**Transform URL:**
- Input: `https://x.com/gregisenberg/status/2012171244666253777`
Confidence
94% confidence
Finding
The skill directs the agent to transmit Twitter/X-derived data to a third-party endpoint, api.fxtwitter.com, rather than limiting retrieval to a trusted first-party or user-approved source. This external transmission can expose user-supplied URLs and fetched content metadata to an additional service, increasing privacy, integrity, and supply-chain risk.

External Transmission

Medium
Category
Data Exfiltration
Content
**Transform URL:**
- Input: `https://x.com/gregisenberg/status/2012171244666253777`
- API URL: `https://api.fxtwitter.com/gregisenberg/status/2012171244666253777`

### Step 4: Analyze All Content
Confidence
95% confidence
Finding
This line provides a concrete transformation that routes X/Twitter content requests through a third-party API, operationalizing external transmission rather than merely mentioning it. Because the skill uses this as part of its standard workflow, the data-sharing behavior is more dangerous in context: users may not realize their requested content is being fetched via a non-obvious intermediary service.

Static analysis

No suspicious patterns detected.