Back to skill

Security audit

Reddit Skill (ThreadPilot)

Security checks for vulnerabilities and agentic risk

Overview

This skill is for Reddit automation, but it depends on unaudited external executable bootstrapping and missing wrapper files for actions that can use account sessions and post or like content.

Review before installing. Only use this skill if you trust the upstream threadpilot source and are comfortable with a CLI that may access Reddit sessions or tokens and perform account actions. Prefer a package that includes the launcher, pins immutable releases or commits, and verifies checksums or signatures before execution.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • 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
  • 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)

T03 · Remote Payload Retrieval and Execution

Error
Location
README.md:79
Finding
Unverified Remote Payload Retrieval and Execution<![CDATA[ ## Vulnerability Details **File Location**: `README.md:79-100` **Supporting Locations**: `SKILL.md:8`; `bin/REFERENCE.md:3-15` **Vulnerability Type**: Remote executable bootstrap without documented integrity or provenance verification **Risk Level**: High ### Vulnerable Code Snippets `README.md:79-100`: ```markdown ## Binary Resolution Order `scripts/threadpilot` resolves runtime in this order: 1. `THREADPILOT_BIN` (explicit path) 2. Cached binary in `.threadpilot/bin/` 3. System `threadpilot` from `PATH` 4. Auto-install from `vood/threadpilot` release asset by version 5. Source fallback by cloning `vood/threadpilot` and building Manual install/bootstrap: ```bash scripts/threadpilot install ``` ## Environment Variables - `THREADPILOT_BIN`: Force exact binary path. - `THREADPILOT_CACHE_DIR`: Override local cache directory (default: `.threadpilot`). - `THREADPILOT_RELEASE_BASE_URL`: Release base URL for binary downloads. - `THREADPILOT_VERSION`: Binary release version to download (default: `v0.1.0`). - `THREADPILOT_REPO`: Git repo used for source bootstrap. - `THREADPILOT_REF`: Git ref/branch for source bootstrap (default: `main`). - `THREADPILOT_SOURCE_DIR`: Build from local source tree instead of cloning. ``` `SKILL.md:8`: ```markdown This skill runs the `threadpilot` CLI and can auto-bootstrap it from `github.com/vood/threadpilot`. ``` `bin/REFERENCE.md:3-15`: ```markdown This repository does not store `threadpilot` executables. Runtime binaries are sourced from: - Repository: `https://github.com/vood/threadpilot` - Releases: `https://github.com/vood/threadpilot/releases` - Download pattern: - `https://github.com/vood/threadpilot/releases/download/<version>/threadpilot-<os>-<arch>` Defaults used by `scripts/threadpilot`: - `THREADPILOT_VERSION=v0.1.0` - `THREADPILOT_RELEASE_BASE_URL=https://github.com/vood/threadpilot/releases/download` ``` ### Technical Analysis The documented workflow retrieves and executes a binary from an ...[truncated 2930 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Include the referenced launcher and safety wrappers in the package so their complete behavior can be audited. 2. Pin release artifacts to an immutable version and publish a trusted SHA-256 or stronger digest for every supported operating-system and architecture combination. 3. Verify the expected digest before making a downloaded file executable or launching it, and fail closed on any mismatch. 4. Add cryptographic release-signature verification using a pinned maintainer key or a verifiable keyless signing framework such as Sigstore. 5. Replace the mutable `main` source fallback with a pinned full commit hash. Verify the checked-out commit before building. 6. Disable automatic source fallback by default. Require explicit user approval before downloading, compiling, or executing external code. 7. Treat `THREADPILOT_RELEASE_BASE_URL`, `THREADPILOT_REPO`, `THREADPILOT_REF`, `THREADPILOT_BIN`, and `THREADPILOT_SOURCE_DIR` as security-sensitive inputs. Reject unexpected values in normal operation or require explicit approval for overrides. 8. Do not silently trust a `threadpilot` executable found through `PATH`. Resolve an approved absolute path and verify its digest or signature. 9. Store downloaded artifacts in a user-private directory with restrictive permissions, avoid unsafe symbolic-link handling, and perform atomic installation. 10. Publish a software bill of materials and provenance metadata for the binary and source build. 11. Ensure Reddit credentials and browser profiles are exposed only to the verified process, and avoid forwarding unrelated environment secrets. 12. Correct the package documentation or include the missing `scripts/` and `ops/` files before describing the safety wrappers as production-ready. ]]>
Vulnerability Patterns
  • 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
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep

Static analysis

No suspicious patterns detected.