T08 · Insecure Dependencies
- Location
SKILL.md:73- Finding
Downloaded qshell Executable Is Run Without Integrity Verification
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 73–81
Vulnerability Type: Unverified third-party executable download
Risk Level: Mediumbash curl -L \ -H "Referer: https://developer.qiniu.com/kodo/1302/qshell" \ -H "User-Agent: Mozilla/5.0" \ "https://kodo-toolbox-new.qiniu.com/qshell-v2.18.0-linux-amd64.tar.gz?ref=developer.qiniu.com&s_path=%2Fkodo%2F1302%2Fqshell" \ -o qshell-v2.18.0-linux-amd64.tar.gz tar -xzf qshell-v2.18.0-linux-amd64.tar.gz chmod +x qshell ./qshell -vTechnical Analysis
The documented workflow downloads a precompiled executable archive from an external service, extracts it, makes the resulting binary executable, and runs it without first verifying a pinned cryptographic digest or a trusted digital signature.
HTTPS protects the artifact while in transit under normal conditions, but it does not independently establish release integrity if the distribution endpoint, publishing account, certificate trust chain, or hosted artifact is compromised. The extraction step also occurs without validating archive member paths or extracting into an isolated directory.
Attack Path
- An attacker compromises the external distribution endpoint, its publishing process, or the hosted release artifact.
- The attacker replaces the expected archive with one containing a malicious
qshellexecutable or unsafe archive entries. - The documented
curlcommand downloads the substituted archive successfully because no expected hash or signature is checked. - The archive is extracted into the current working directory without prior archive-path validation.
- The downloaded
qshellfile receives execute permission and is run. - The malicious executable operates with the privileges of the user or Agent running the workflow.
Impact Assessment
Successful exploitation permits arbitrary code execution with the privileges of the invoking user. Depending on that user's access, the malicious executable could rea ...[truncated 440 chars]
- Remediation
View remediation
Remediation Suggestions
- Obtain an official SHA-256 or stronger digest through a separately trusted channel and pin it in the Skill.
- Verify the archive before extraction and terminate on mismatch:
bash EXPECTED_SHA256="PINNED_OFFICIAL_DIGEST" printf '%s %s\n' \ "$EXPECTED_SHA256" \ "qshell-v2.18.0-linux-amd64.tar.gz" | sha256sum --check -- Prefer a digitally signed release and verify its signature against a pinned, trusted vendor key.
- Download to a newly created private temporary directory rather than the current working directory.
- List and validate archive members before extraction; reject absolute paths and entries containing parent-directory traversal components.
- Extract only after validation, using restrictive permissions and an isolated destination.
- Execute the binary as an unprivileged user with only the filesystem and network access required for the requested Qiniu operation.
- Avoid exposing unrelated environment variables or credentials to the downloaded process, and use narrowly scoped, short-lived Qiniu credentials where supported.
- Update the pinned version and digest through an explicit review process rather than automatically following an unpinned latest release.
