Back to skill

Security audit

Twitter Thread Generator

Security checks for vulnerabilities and agentic risk

Overview

This is a small, disclosed Twitter/X thread drafting skill with no embedded code or persistence, but its setup and missing referenced script should be reviewed before use.

Install only in a virtual environment, pin the OpenAI package version if possible, and do not provide valuable API keys until the missing thread_gen.py implementation is available and reviewed. Treat generated threads as drafts, especially because the listing mentions posting readiness but the artifact does not include posting controls or Twitter/X credential handling.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:12
Finding
Unpinned Third-Party Dependency Installation## Vulnerability Details **File Location**: `SKILL.md`, lines 10-14 **Vulnerability Type**: Uncontrolled third-party dependency version **Risk Level**: Medium **Complete Code Snippet**: ```bash ## Setup ```bash pip install openai export OPENAI_API_KEY="your_key" ``` ``` ### Technical Analysis The documented setup command installs the `openai` package without pinning a reviewed version or verifying an integrity hash. Consequently, package resolution occurs at installation time and may select a version that did not exist when the skill was audited. This creates a supply-chain risk because the code ultimately installed and executed can change independently of the reviewed project. Although the package name is not an apparent typosquat and the audit found no evidence that the current package is malicious, an upstream package compromise, malicious future release, compromised distribution account, or unsafe package-index configuration could cause attacker-controlled code to be installed. ### Attack Path 1. An attacker compromises the upstream package, its publishing credentials, or a package index used by the victim. 2. The attacker publishes a malicious package release under the dependency name. 3. A user follows the documented setup instructions and runs `pip install openai`. 4. Because no version or hash is constrained, pip resolves and installs the attacker-controlled release. 5. Malicious package behavior executes during installation or when the generated application imports and uses the dependency. ### Impact Assessment Malicious dependency code could execute with the privileges of the user running pip or the application. Its scope could include reading user-accessible files and environment variables, including `OPENAI_API_KEY`; modifying files; making network requests; and executing additional commands. Administrative privileges are not inherently obtained, but impact increases if installation or application ...[truncated 47 chars]
Remediation
## Remediation Suggestions 1. Pin the dependency to an explicitly reviewed version, such as `openai==X.Y.Z`. 2. Place dependencies in a version-controlled lock file or requirements file. 3. Record and enforce cryptographic hashes by using pip's `--require-hashes` option. 4. Configure installation to use an explicitly trusted package index rather than inheriting arbitrary user or environment index settings. 5. Review dependency updates before changing the pinned version and use automated vulnerability scanning for the resolved dependency tree. 6. Install dependencies in an isolated virtual environment under a non-privileged account. 7. Provide the referenced `thread_gen.py` implementation so its dependency usage and handling of `OPENAI_API_KEY` can be audited.
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (1)

Vague Triggers

Medium
Confidence
94% confidence
Finding
The manifest description says the skill can 'Turn any topic into engaging viral threads,' which is broad and does not define when the skill should or should not be invoked. In a manifest file, this kind of open-ended phrasing can overlap with many ordinary content-generation requests and lacks negative examples or scope limits.

Static analysis

No suspicious patterns detected.