T03 · Remote Payload Retrieval and Execution
- Location
INSTALL.md:6- Finding
Unverified Remote Payload Retrieval and Execution
- Content
View full analysis
Vulnerability Details
File Location:
INSTALL.md:6-13,INSTALL.md:113-116,INSTALL.md:174-181; equivalent instructions also appear inGITHUB_INSTALL_GUIDE.md:42andGITHUB_INSTALL_GUIDE.md:191
Vulnerability Type: Remote payload retrieval and execution without integrity verification
Risk Level: HighVulnerable Code
bash # 1. Download the release archive wget https://github.com/xiamuciqing/lunar-birthday-reminder/releases/download/v0.9.0/lunar-birthday-reminder-v0.9.0.tar.gz # 2. Extract it tar -xzf lunar-birthday-reminder-v0.9.0.tar.gz cd lunar-birthday-reminder # 3. Run the installation script ./install.shThe troubleshooting instructions also recommend downloading and executing another remote script:
bash # Install pip curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python3 get-pip.pyThe upgrade procedure repeats the unverified release installation pattern:
bash cd /tmp wget https://github.com/xiamuciqing/lunar-birthday-reminder/releases/download/v1.0.0/lunar-birthday-reminder-v1.0.0.tar.gz tar -xzf lunar-birthday-reminder-v1.0.0.tar.gz # Install the new version cd lunar-birthday-reminder ./install.shTechnical Analysis
The recommended installation and upgrade procedures download archives from a personal GitHub repository, extract their contents, and execute the included
install.shwithout checking a cryptographic hash or digital signature. The reviewed local repository indicates what its generated installer is intended to do, but it cannot guarantee that a remotely hosted release asset will always contain the same content.A release asset can effectively change after review if the hosting account is compromised or an asset is deleted and replaced. The
get-pip.pyprocedure similarly downloads a Python program and executes it without integrity validation.These remote execution steps are not necessary for the Skill's norm ...[truncated 1227 chars]
- Remediation
View remediation
Remediation Suggestions
- Publish a SHA-256 or stronger digest for every release artifact through an independently protected channel.
- Require verification before extraction:
bash echo "<expected-sha256> lunar-birthday-reminder-v0.9.0.tar.gz" | sha256sum --check - Sign release tags and artifacts with Sigstore, GPG, or another verifiable release-signing mechanism.
- Pin installation instructions to a reviewed commit or immutable artifact digest.
- Replace the
get-pip.pyprocedure with the operating system's package manager or Python's supported environment-management process. - Instruct users to inspect
install.shbefore execution and install as an unprivileged user. - Use a dedicated virtual environment rather than modifying a system-wide Python installation.
- Add the same integrity controls to both
INSTALL.mdandGITHUB_INSTALL_GUIDE.md.
