T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:219- Finding
Unpinned Remote Repository Installed as a Global Executable Package
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:219
Vulnerability Type: Remote payload retrieval from a mutable source
Risk Level: MediumComplete Code Snippet:
bash bun install -g https://github.com/tobi/qmdTechnical Analysis
The Skill recommends installing a third-party package globally and directly from a GitHub repository without pinning a reviewed commit, immutable release, checksum, or cryptographic signature. Because the repository URL resolves to mutable upstream content, the code retrieved when a user runs this command may differ from the code available when the Skill was audited.
Installation may execute package lifecycle logic and install executable components. The use of
-gincreases exposure by making the resulting tools globally available to the invoking user rather than isolating them within a specific project. The documentation also indicates that the component downloads GGUF models during its first search, adding another runtime artifact whose integrity is not documented.This behavior is optional and related to the Skill's experimental QMD search functionality, but fetching mutable executable content is not necessary when an immutable, verified release or commit could be used instead.
Attack Path
- An attacker compromises the upstream repository, a maintainer account, or a transitive dependency used by the package.
- The attacker modifies the repository's default revision or installation lifecycle code.
- A user follows the Skill's documented
bun install -gcommand. - Bun retrieves the current attacker-controlled content from the mutable repository URL.
- Installation logic executes with the invoking user's privileges and installs the compromised tooling globally.
- The malicious component can subsequently run when the user or agent invokes QMD-related functionality.
Impact Assessment
Successful exploitation could execute arbitrary code with the pr ...[truncated 437 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace the mutable repository URL with a reviewed, immutable commit hash or signed release tag.
- Publish and verify cryptographic checksums or signatures for downloaded packages and model artifacts.
- Prefer a project-local installation over
-gto reduce scope and avoid globally exposing executables. - Run the component in a sandbox or container with restricted filesystem and network access.
- Disable or carefully review package lifecycle scripts during installation where supported.
- Document the expected package version, source revision, dependency lockfile, and GGUF model hashes.
- Re-audit the pinned source and its transitive dependencies before recommending installation.
