T03 · Remote Payload Retrieval and Execution
Error
- Location
- README.md:37
- Finding
- Execution of Mutable Code Retrieved from an External Repository<![CDATA[ ## Vulnerability Details **File Location**: `README.md:37-42`; also present in `SKILL.md:19-21` **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: Critical ### Vulnerable Code `README.md:37-42`: ```bash # macOS / Linux git clone https://github.com/AsuraNale/daily-assistant-mcp.git && cd daily-assistant-mcp && python3 src/setup.py --auto # Windows git clone https://github.com/AsuraNale/daily-assistant-mcp.git && cd daily-assistant-mcp && py src/setup.py --auto ``` `SKILL.md:19-21`: ```bash git clone https://github.com/AsuraNale/daily-assistant-mcp.git cd daily-assistant-mcp python3 src/setup.py --auto # Windows: py src/setup.py --auto ``` ### Technical Analysis The documented installation procedure clones the current default branch of an external GitHub repository and immediately executes its installer. It does not pin an immutable commit hash, verify a cryptographic checksum, validate a release signature, or otherwise guarantee that the executed source is the same source covered by this audit. Consequently, the effective installation payload can change after review. Although the audited repository contents did not contain credential theft, exfiltration, persistence, or an embedded backdoor, a future repository update or repository compromise could replace `src/setup.py` or related imported code before a user runs the documented command. This installation behavior is not necessary for the MCP server's core task-management operations. Distribution of the already-audited files, or retrieval of a cryptographically verified immutable release, would provide the same functionality with a smaller supply-chain trust boundary. ### Attack Path 1. An attacker compromises the referenced GitHub account or repository, or malicious source is committed to its default branch. 2. The attacker modifies `src/setup.py` or another file used during installation. 3. A user or agent follows the documented clone-and-execute command. 4. ...[truncated 1088 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Distribute and execute the installer included in the reviewed Skill package instead of cloning a mutable branch. 2. If remote retrieval is required, pin the checkout to a full immutable commit hash: ```bash git clone https://github.com/AsuraNale/daily-assistant-mcp.git cd daily-assistant-mcp git checkout --detach <full-reviewed-commit-hash> ``` 3. Publish signed releases and verify the release signature before execution. 4. Publish a SHA-256 or stronger digest through a separately trusted channel and verify it before running Python. 5. Separate retrieval and execution into distinct documented steps so users can inspect the exact revision. 6. Avoid using branch names, floating tags, or unverified archive URLs as security boundaries. 7. Update both `README.md` and `SKILL.md` so neither document continues to recommend the mutable clone-and-execute workflow. ]]>
