T08 · Insecure Dependencies
- Location
SKILL.md:167- Finding
Unverified repository and archive downloads through a third-party GitHub proxy
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:167-180; related implementation inscripts/diagnose.py:179-185andscripts/mirror_download.py:214-215
Vulnerability Type: Third-party supply-chain and artifact-integrity risk
Risk Level: HighVulnerable Code
bash # 使用 ghfast.top 代理(速度快) git clone https://ghfast.top/https://github.com/owner/repo.git # 下载 Release 文件 wget "https://ghfast.top/https://github.com/owner/repo/releases/download/v1.0/file.zip"bash # 直接下载 tarball(避免 .git 历史,更快) wget "https://ghfast.top/https://github.com/owner/repo/archive/refs/heads/main.tar.gz" \ -O repo.tar.gz tar xzf repo.tar.gzThe executable implementation also automatically adds the proxy as a clone candidate:
python if check_host("ghfast.top"): candidates.append(f"https://ghfast.top/https://github.com/{repo_path}.git")Technical Analysis
The Skill treats
ghfast.topas a trusted intermediary whenever a basic connectivity check succeeds. A successful HTTPS connection only authenticates the proxy endpoint; it does not prove that the returned repository or artifact is identical to content published by GitHub.No publisher signature, SHA-256 digest, immutable Git commit identifier, release attestation, or repository identity check is performed. The documentation also immediately extracts downloaded archives. This creates a supply-chain boundary in which the effective downloaded content can be changed by the proxy or by an attacker who compromises it.
The Skill does not automatically execute the downloaded repository or archive, so direct remote code execution is not established solely by this behavior. Exploitation requires a later workflow to install, import, build, or execute the substituted content.
Attack Path
- A user asks the Skill to retrieve a GitHub repository, release, or source archive.
- GitHub is unavailable or the third-party proxy is selected ...[truncated 985 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove the third-party proxy from the automatic fallback list, or require explicit informed user approval before routing downloads through it.
- Prefer downloads directly from the original publisher endpoint.
- Pin repositories to immutable commit hashes rather than mutable branches such as
main. - Require publisher-provided SHA-256 or stronger digests for release files and archives.
- Verify signed Git commits, signed tags, release signatures, or supply-chain attestations where available.
- Perform verification before extracting, importing, building, or executing downloaded content.
- Extract archives into a dedicated destination after validating archive paths and content.
- Do not treat endpoint reachability as evidence of artifact provenance or integrity.
