T08 · Insecure Dependencies
- Location
SKILL.md:14- Finding
Execution of Unverified External Project Code and Dependencies
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 14–15, 40–43, and 59–72
Vulnerability Type: Unverified dependency installation and execution outside the audited skill directory
Risk Level: MediumVulnerable Instructions
bash pip install -r requirements.txt python -m playwright install chromium cp .env.example .envbash python main.pyThe skill also supplies the following execution variants:
bash python main.py --prompt "your midjourney prompt here" python main.py --skip-instagram python main.py --headless python main.py --post-delay 60 python main.py --use-prompt-caption python main.py --use-vision-captionTechnical Analysis
The skill directs the agent to leave the skill directory, locate a surrounding repository root containing
main.py, install the packages specified by that repository'srequirements.txt, and executemain.py. Neitherrequirements.txtnormain.pyis included in the audited artifact, so their contents, integrity, dependency versions, package sources, and runtime behavior cannot be verified.Installing Python packages can execute package installation or build hooks. Executing
main.pydirectly grants that program the permissions of the user running the agent. Selecting the target repository by directory layout and the presence of a filename rather than by a fixed, validated path or cryptographic identity increases the risk of executing a replaced or unintended project.This represents an insecure dependency and execution-boundary design. It is not evidence that the referenced project is malicious, but the instructions establish a path through which compromised dependencies or repository files could run arbitrary code.
Attack Path
- An attacker modifies or supplies the surrounding repository, its
requirements.txt, a referenced Python package, ormain.py. - The agent follows
SKILL.md, changes into the purported ...[truncated 1458 chars]
- An attacker modifies or supplies the surrounding repository, its
- Remediation
View remediation
Remediation Suggestions
- Include all required executable code and dependency manifests inside a reviewed, versioned skill package.
- Use a fixed and validated project path instead of locating a repository by the presence of
main.py. - Pin every Python dependency to an exact version and use a lockfile containing cryptographic hashes.
- Install packages only from explicitly trusted package indexes and enable hash verification.
- Verify the expected hashes or signatures of
main.py, dependency manifests, and related modules before execution. - Run dependency installation and browser automation in an isolated virtual environment, container, or sandbox with least-privilege filesystem and network access.
- Prevent the installation process from accessing
.env, browser profiles, and other credentials. - Restrict permissions on
.envandbrowser_data/so unrelated processes cannot read them. - Separate dependency installation from authenticated execution and require explicit user approval before posting content.
- Avoid passing secrets through command-line arguments, logs, or inherited environments unless strictly required.
- Document and enforce an allowlist of expected files, package names, versions, and execution entry points.
