T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:34- Finding
Unverified Python Payload Retrieved from a Mutable Remote Branch
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:34(download), followed by local execution in the Quick Start section
Vulnerability Type: Remote payload retrieval and execution
Risk Level: HighVulnerable Code:
bash # Requires Python 3.8+. No pip install needed. curl -O https://raw.githubusercontent.com/itsPremkumar/dev-prompts/main/dev_prompts.py # Or copy the file anywhere — it's self-contained.The downloaded file is subsequently invoked as follows:
bash python dev_prompts.py --help # list optionsTechnical Analysis
The installation procedure downloads a Python program from the mutable
mainbranch of a personal GitHub repository. The artifact does not contain the downloadeddev_prompts.py, so its effective code was not part of the audited project.The instructions provide no immutable commit pin, checksum, digital signature, or other integrity verification. Therefore, the remote file can change after this skill has been reviewed. Compromise of the repository, maintainer account, branch, or hosting path could replace the expected program with arbitrary Python code.
Although
curldoes not execute the file automatically, the documented Quick Start explicitly instructs the user to run it. Python executes top-level code before processing the expected--helpbehavior, allowing a malicious replacement to run immediately.This remote execution path is unnecessary for the skill's minimum declared functionality. The project already bundles the complete static prompt collection in
PROMPTS.md, andrequirements.txtidentifies the project as a Markdown prompt pack with no Python dependencies. It also conflicts with the statement that the skill has “no code, no network.”Attack Path
- An attacker compromises the maintainer's GitHub account, repository, or mutable
mainbranch. - The attacker replaces
dev_prompts.pywith code that performs malicious actions a ...[truncated 1175 chars]
- An attacker compromises the maintainer's GitHub account, repository, or mutable
- Remediation
View remediation
Remediation Suggestions
- Remove the Python download and execution instructions because
PROMPTS.mdalready provides the declared prompt-library functionality. - If a CLI is genuinely required, include its reviewed source directly in the skill package so the audited artifact matches the executed code.
- If external retrieval cannot be avoided:
- Pin the URL to a specific immutable Git commit rather than
main. - Publish a trusted SHA-256 digest and verify it before execution.
- Prefer signed release artifacts and verify the maintainer's signature.
- Fail closed if verification does not succeed.
- Review the downloaded content before invoking Python.
- Pin the URL to a specific immutable Git commit rather than
- Avoid running the program with administrator, root, or broadly privileged CI credentials.
- Correct the “no code, no network” claim so the documentation accurately discloses all network and execution behavior.
- Add automated checks preventing installation URLs from reverting to mutable branches.
- Remove the Python download and execution instructions because
