T08 · Insecure Dependencies
- Location
SKILL.md:30- Finding
Unpinned Runtime Dependency and Automatically Downloaded Tunnel Binary
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 30–49 and 65–67
Vulnerability Type: Unverified third-party package and binary execution
Risk Level: HighVulnerable Code
bash # Single key with cloudflared tunnel (recommended) uv run --with secret-portal secret-portal \ -k API_KEY_NAME \ -f ~/.secrets/target-env-file \ --tunnel cloudflared # With guided instructions and a link to the key's console uv run --with secret-portal secret-portal \ -k OPENAI_API_KEY \ -f ~/.env \ -i '<strong>Get your key:</strong><ol><li>Go to platform.openai.com</li><li>Click API Keys</li><li>Create new key</li></ol>' \ -l "https://platform.openai.com/api-keys" \ --link-text "Open OpenAI dashboard →" \ --tunnel cloudflared # Multi-key mode (no -k flag, user enters key names and values) uv run --with secret-portal secret-portal \ -f ~/.secrets/keys.env \ --tunnel cloudflaredtext Use `--tunnel cloudflared` — it's free, requires no account, has no interstitial pages, provides HTTPS, and auto-downloads the binary if missing.Technical Analysis
Every documented workflow uses
uv run --with secret-portal, which dynamically resolves and executes the third-partysecret-portalpackage without an exact version constraint, cryptographic hash, reviewed lockfile, or vendored implementation. Consequently, the code executed when a user follows the instructions may differ from the code that existed when the skill was reviewed.The recommended
cloudflaredmode can also automatically download and execute a binary. The document does not specify an immutable release, trusted download URL, checksum, or signature-verification procedure. Both components operate in a security-sensitive workflow that receives API keys and environment variables and writes them to local files.The repository contains only
SKILL.md; ...[truncated 1858 chars]- Remediation
View remediation
Remediation Suggestions
- Pin
secret-portalto an exact, reviewed version rather than allowing unconstrained runtime resolution. - Commit a dependency lockfile containing cryptographic hashes for the package and all transitive dependencies.
- Prefer distributing reviewed implementation code with the skill or referencing an immutable source commit so the audited code corresponds to the executed code.
- Pin
cloudflaredto a specific approved release and platform artifact. - Download binaries only from an explicitly trusted HTTPS origin and verify an official cryptographic signature or published SHA-256 checksum before execution.
- Fail closed if package or binary integrity verification cannot be completed; do not silently fall back to an unverified download.
- Document the exact package version, binary version, download origin, and verification procedure in
SKILL.md. - Run the portal with least privilege and isolate it from unrelated user files, credentials, and environment variables where practical.
- Include auditable tests or implementation evidence for secret-output suppression, one-time token enforcement, timeout behavior, and owner-only destination-file permissions.
- Pin
