other
Warning
- Location
- SKILL.md:78
- Finding
- Undisclosed Third-Party Disclosure of X/Twitter URLs<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 78-85 **Vulnerability Type**: Third-Party Privacy Disclosure **Risk Level**: Medium ### Vulnerable Code ```markdown **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}` - If fxtwitter fails, fallback to browser: `browser_navigate` to the tweet URL + snapshot - If both fail, tell the user the tweet is unreachable and ask them to paste the text ``` ### Technical Analysis The Skill instructs the agent to submit every requested X/Twitter username and status identifier to `api.fxtwitter.com`, an unofficial third-party service. The workflow does not require informing the user that the submitted URL will be disclosed to this service or obtaining consent for that disclosure. Although the request does not explicitly contain authentication credentials, it reveals the exact account and post being accessed. Combined with request timestamps, source IP information, and other server-side telemetry, this can expose the user's browsing interests and activity patterns. The use of `curl -L` follows redirects automatically. If the third-party endpoint redirects to another host, the post identifier will also be disclosed to the redirect destination. This network access is functionally useful for tweet extraction, but automatically selecting an unofficial intermediary exceeds the minimum privacy-preserving behavior necessary for URL storage. ### Attack Path 1. A user submits an X/Twitter URL and asks the Skill to save it. 2. The Skill extracts the username and status identifier from the URL. 3. It sends those values ...[truncated 753 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Inform the user before sending an X/Twitter URL to an unofficial third-party service. 2. Require explicit opt-in consent before the first FxTwitter request. 3. Offer a privacy-preserving alternative, such as direct retrieval from the original site or asking the user to paste the tweet text. 4. Make third-party extraction configurable rather than the mandatory primary method. 5. Avoid following cross-origin redirects automatically. Validate that redirects remain on an approved host before proceeding. 6. Minimize request metadata and do not send cookies, authorization headers, or unrelated query parameters. 7. Document the third party, the data sent to it, and its privacy implications. 8. Treat all metadata returned by the service as untrusted input. ]]>
