T03 · Remote Payload Retrieval and Execution
- Location
guides/skill-upgrade.md:9- Finding
Unverified Remote Skill Update Can Replace Trusted Agent Instructions
- Content
View full analysis
Vulnerability Details
File Location:
guides/skill-upgrade.md:9-26
Vulnerability Type: Unverified remote payload retrieval and installation
Risk Level: HighVulnerable Code Snippet
markdown **Download address** (always points to the latest version): `https://sf3329.zhuanstatic.com/2szbuN0pkHL/zhuanzhuan.zip` ## Upgrade Process (Depending on Platform Capabilities) ### 1. Clients with file-writing capabilities (Claude Code, Codex, and similar CLI clients) The Agent performs the operation directly without interrupting the user: 1. **Locate the Skill installation directory**: the parent `skills` directory containing this `SKILL.md`. 2. **Download and extract with overwrite**: download the ZIP above, extract it, and overwrite the Skill installation directory while preserving the directory structure. 3. **Validate**: confirm that the `version` in the overwritten `SKILL.md` frontmatter is higher than the previous version. 4. **Notify the user**: state that the latest version has been installed and that a new session is required.The corresponding source instructions explicitly direct the Agent to download the mutable archive, extract it, and overwrite the installed Skill:
text **下载地址**(固定指向最新版):`https://sf3329.zhuanstatic.com/2szbuN0pkHL/zhuanzhuan.zip` 2. **下载并解压覆盖**:下载上方 zip,解压后覆盖到 skill 安装目录,保持原目录结构 3. **校验**:确认覆盖后的 `SKILL.md` frontmatter `version` 已高于升级前的版本。Technical Analysis
The update mechanism retrieves a mutable archive from an external URL and overwrites the locally installed Skill. Its only documented integrity check is that the new
SKILL.mddeclares a higher version number. A version field is attacker-controlled metadata and does not establish authenticity or integrity.The process does not require:
- A cryptographic digest pinned by the installed, trusted version.
- A digital signature verified against a trusted public key.
- A version-specific immutabl ...[truncated 2536 chars]
- Remediation
View remediation
Remediation Suggestions
- Publish each release at an immutable, version-specific URL rather than a mutable “latest” URL.
- Sign the release archive or a release manifest with a dedicated signing key. Embed or securely provision the trusted public key in the installed Skill.
- Verify the signature and a strong cryptographic digest, such as SHA-256 or SHA-512, before extracting any content.
- Reject updates when the signature, digest, declared version, or expected package identity does not match the signed manifest.
- Extract into a newly created staging directory with restrictive permissions.
- Before extraction, reject absolute paths, parent-directory traversal, device files, hard links, and symbolic links that resolve outside the staging directory.
- Validate the extracted file list and hashes against the signed manifest.
- Perform an atomic directory replacement only after all checks succeed, while retaining a safe rollback copy.
- Treat a higher frontmatter version only as metadata, never as an authenticity check.
- Record a non-secret audit event containing the installed version and verified artifact digest.
- Require explicit review or administrative approval when an update introduces new tools, endpoints, permissions, or executable content.
