T08 · Insecure Dependencies
- Location
SKILL.md:20- Finding
Unpinned Public Package Installation in a Credential-Bearing Environment
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:20-28
Additional Locations:SKILL.md:64-66,scripts/common.sh:54-56
Vulnerability Type: Unpinned third-party dependency installation
Risk Level: MediumVulnerable Code
json "install": [ { "id": "pip-tccli", "kind": "pip", "package": "tccli", "bins": ["tccli"], "label": "Install tccli (Tencent Cloud CLI)" } ]The documentation also directs users to perform the same unpinned installation:
bash # tccli (Tencent Cloud CLI, used internally) pip3 install tccliThe runtime dependency check repeats this recommendation:
bash if [[ ${#missing[@]} -gt 0 ]]; then log_error "Missing dependency tools: ${missing[*]}" log_error "Please install first: pip3 install tccli && apt install jq" exit 1 fiTechnical Analysis
The Skill installs
tcclifrom a public Python package index without specifying an exact version or verifying artifact integrity. Consequently, the package and its transitive dependencies can change after this Skill has been reviewed.Python package installation can execute package-controlled build or installation logic. The installed CLI is subsequently invoked by
scripts/common.shwhileTENCENTCLOUD_SECRET_IDandTENCENTCLOUD_SECRET_KEYare present in the process environment. A compromised package release, publisher account, configured package index, or transitive dependency could therefore execute code locally and access those credentials.This finding represents a supply-chain exposure rather than evidence that the currently referenced package is malicious. The audited project itself contains no confirmed credential-exfiltration or malicious execution logic.
Attack Path
- An attacker compromises the
tcclipackage distribution, one of its transitive dependencies, its publisher account, or a package index used by the host. ...[truncated 1423 chars]
- An attacker compromises the
- Remediation
View remediation
Remediation Suggestions
-
Pin
tcclito a reviewed exact version in the installation metadata and documentation:json { "id": "pip-tccli", "kind": "pip", "package": "tccli==REVIEWED_VERSION", "bins": ["tccli"], "label": "Install pinned Tencent Cloud CLI" } -
Maintain a locked dependency file containing hashes for
tccliand all transitive dependencies, and install it with hash enforcement:bash python3 -m pip install --require-hashes -r requirements.lock -
Obtain packages only from an explicitly configured, trusted repository or verified vendor distribution. Document the expected publisher and artifact provenance.
-
Verify package hashes or signatures before installation. Update pinned versions only after reviewing release provenance and dependency changes.
-
Install the CLI in a dedicated virtual environment or isolated container under a nonprivileged account. Do not use root or unrestricted
sudoinstallation. -
Provide cloud credentials only at execution time, after dependency installation has completed, and use narrowly scoped, read-only IAM credentials dedicated to this Skill.
-
Replace the unpinned recommendation in
scripts/common.sh:56andSKILL.md:66with the same version-locked, integrity-verified installation procedure.
-
