T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:34- Finding
Mutable Remote Python Payload Download in Skill Installation Instructions
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:34
Vulnerability Type: Remote payload retrieval from an unpinned source
Risk Level: MediumVulnerable Code
bash curl -O https://raw.githubusercontent.com/itsPremkumar/ascii-video/main/ascii_video.pyThe subsequent quick-start instructions execute the downloaded file:
bash python ascii_video.py self-test python ascii_video.py convert --help python ascii_video.py frame --help python ascii_video.py image --helpTechnical Analysis
The installation instructions retrieve executable Python code from the mutable
mainbranch of a repository controlled by a personal GitHub account. The URL is not pinned to an immutable commit or release artifact, and the instructions do not verify a checksum or cryptographic signature.As a result, the effective code executed by users can differ from the code reviewed in this Skill package. This remote retrieval is also unnecessary for the declared functionality because
ascii_video.pyis already included in the package.The download itself does not automatically execute the payload, but the documented quick-start commands instruct users to run the downloaded file. This creates a direct remote-payload execution path if the upstream repository, maintainer account, DNS/TLS trust chain, or release process is compromised.
Attack Path
- An attacker compromises the upstream repository or the maintainer's GitHub account, or otherwise gains permission to modify the
mainbranch. - The attacker replaces
ascii_video.pywith a malicious Python payload. - A user follows the installation command in
SKILL.md. curldownloads the current attacker-controlled version without integrity verification.- The user follows the quick-start instructions and runs
python ascii_video.py .... - The payload executes with the same operating-system privileges and environment access as the invoking user.
...[truncated 584 chars]
- An attacker compromises the upstream repository or the maintainer's GitHub account, or otherwise gains permission to modify the
- Remediation
View remediation
Remediation Suggestions
- Remove the remote download command and instruct users to execute the bundled
ascii_video.pyfile. - If remote installation must remain supported, pin the URL to an immutable Git commit rather than
main. - Publish an expected SHA-256 digest through a separately trusted release channel and verify it before execution.
- Prefer signed release artifacts and document signature verification.
- Avoid commands that immediately execute newly downloaded code.
- Correct the installation documentation to disclose the Pillow and
ffmpegdependencies rather than describing the program as fully self-contained.
- Remove the remote download command and instruct users to execute the bundled
