Back to skill

Security audit

Launch Sentiment Sweep

Security checks for vulnerabilities and agentic risk

Overview

This is a disclosed one-shot Reddit/X launch-reaction research skill that uses Veezee, with expected third-party API use and limited key storage.

Before installing, understand that launch names, search terms, selected social posts, and related context may be sent to Veezee. Use the narrower Reddit and X MCP endpoints rather than the all-platform mount unless you specifically want the broader integration, and avoid using this skill for confidential launch details unless third-party processing is acceptable.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (1)

External Transmission

Medium
Category
Data Exfiltration
Content
Every call needs an API key. Minting one is free and human-free: no signup, no card. A call without a key fails with `KEY_REQUIRED` (401) carrying `mint_url`; the fix is the free mint below, never a payment. Two equivalent surfaces; pick whichever your environment has:

- MCP: add `https://mcp.veezee.io/reddit` and `https://mcp.veezee.io/x` (streamable-http, one platform each), or `https://mcp.veezee.io/all` for both plus LinkedIn in one mount. Hosts that support MCP authorization (Claude Code, claude.ai) open a Veezee sign-in on connect (email code, no password): that is the whole auth step. Other hosts: mint a key with `POST https://api.veezee.io/v1/keys/mint` (empty body; the key is shown once) and put it in the connection's `Authorization: Bearer` header.
- SDK: `import { VeezeeClient } from "@veezee/sdk"`; `const client = new VeezeeClient(); await client.mint();` mints and stores the free key the first time and reuses it on later runs. Reddit methods live on `client.reddit.search/getSubreddit/getSubredditPosts/getUser/getPost/resolveUrl`; X methods follow the same per-platform pattern (`client.x.search`, `client.x.getProfile`, `client.x.getTweets`, `client.x.getTweet`, `client.x.resolveUrl`). `client.resolveUrl` and `client.getUsage` are also available top-level. The `veezee` CLI (`npx @veezee/sdk init`) mints and stores the same key.

A fresh `vz_trial_` key runs under a free per-IP daily budget of 200 credits shared across platforms, cached data only, first page only on any cursor sequence. That covers a small test sweep; a real two-platform sweep needs purchased credits. When the budget or a trial cap runs out (`TRIAL_CAP_EXCEEDED`, `INSUFFICIENT_CREDITS`, `BUDGET_EXHAUSTED`), the error carries `upgrade_url` and a machine-readable `offer`: hand that link to your human; purchases credit the same key directly, nothing to reconfigure.
Confidence
91% confidence
Finding
The skill instructs the agent to connect to external Veezee endpoints and mint/store an API key, which creates a real data egress path to a third-party service. If invoked on sensitive user prompts or internal launch information, query terms, links, and derived context could be transmitted outside the trusted environment without strong consent and data-handling constraints.

Static analysis

No suspicious patterns detected.