other
- Location
SKILL.md:78- Finding
Undisclosed Third-Party Disclosure of X/Twitter URLs
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
SnipLink is a coherent URL-saving skill, but it needs review because it writes persistent notes to a hardcoded Google Drive-backed Obsidian path and uses external services without enough user-controlled scoping.
Review this before installing. Configure your own storage location instead of the hardcoded Google Drive path, require confirmation of the exact destination and final filename before saving, and avoid the FxTwitter path unless you are comfortable sharing the tweet URL with that third party. Treat metadata from saved pages as untrusted until the skill adds strict filename and Markdown/YAML sanitization.
SKILL.md:78Undisclosed Third-Party Disclosure of X/Twitter URLs
SKILL.md:166Hardcoded Personal Google Drive Vault Path
SKILL.md:173Untrusted Page Metadata Used in Filenames and Obsidian Note Content Without Required Sanitization
The trigger section includes phrases like "save this," "remember this," and broad conditions such as asking "what tools do I have for X," which are common conversational requests and not specific to this skill. The file does not provide exclusion conditions or tighter scope boundaries to reduce accidental invocation.
The manifest describes a low-friction URL saving skill that categorizes, tags, and stores links the user provides. Adding a separate capability to search the web for social profiles, and later to suggest tools by tag/category, expands the skill into discovery/recommendation behavior that is not necessary to save a submitted link.
The skill sends user-provided tweet URLs and derived tweet content to external services such as fxtwitter, and may also perform web searches for enrichment, without a clear privacy disclosure. Users may share links expecting local processing, but the workflow transmits data to third parties, creating privacy, logging, and compliance risks.
The skill explicitly transmits tweet identifiers and requests extracted tweet content from an external API endpoint. Even if the content is public, this is still an external data flow that can expose user activity, be logged by the third party, and surprise users if not transparently disclosed and consented to.
**Trigger:** User shares an `x.com` or `twitter.com` URL and wants it saved.
**Step 1: Extract tweet content (use fxtwitter API first)**
- Primary method: `curl -sL "https://api.fxtwitter.com/{user}/status/{id}"`
- Returns JSON with `tweet.text`, `tweet.author`, `tweet.media`, `tweet.raw_text.facets` (links inside tweet)
- Works without browser, no login, no CAPTCHA — fast and reliable
- Extract username and ID from URL patterns: `x.com/{user}/status/{id}` or `twitter.com/{user}/status/{id}` or `x.com/i/status/{id}`
The skill writes files into the user's Obsidian vault and updates an index, but this side effect is not clearly disclosed up front in the user-facing description. That can lead to unintended persistent writes in a sensitive knowledge base, especially because the storage is synced and may propagate beyond the local machine.
The hardcoded vault path exposes a personal email address and directs writes into a Google Drive-synced location. This leaks personal information in the skill itself and increases the blast radius of any saved content because files are automatically replicated to a third-party cloud service.