T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:18- Finding
Unpinned Remote Repository and Dependency Execution
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 18-21 and 28-35
Vulnerability Type: Remote payload retrieval and insecure dependency execution
Risk Level: HighVulnerable Code:
bash git clone https://github.com/thibautrey/agent-hq.git cd agent-hq npm install npm --prefix frontend-react installbash npm --prefix frontend-react run build npm run start:agent-hqbash node scripts/jarvis-connector.jsTechnical Analysis
The Skill instructs users to clone the mutable default branch of an external Git repository and execute code obtained from it. It does not pin the repository to an immutable commit, verify a cryptographic signature or checksum, or include the referenced source code in the audited package.
The subsequent
npm installoperations may execute package lifecycle scripts and resolve third-party dependencies. The project contains no lockfile or dependency manifests that can be audited locally, because onlySKILL.mdis included. The build, server, and connector commands then execute code sourced from the external repository.This creates a time-of-check/time-of-use supply-chain risk: the code reviewed when the Skill is published can differ from the code downloaded when a user follows the instructions.
Attack Path
- An attacker compromises the external repository, a maintainer account, or one of its npm dependencies.
- The attacker adds a malicious lifecycle, build, startup, or connector script to the mutable upstream source.
- A user follows the Skill instructions and clones the current default branch.
npm installornpm --prefix frontend-react installexecutes a malicious lifecycle script, or a later build/start command executes the payload.- The payload runs with the permissions of the user performing the installation.
- The payload may read local files and credentials, modify user-accessible resources, initiate network conn ...[truncated 625 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the repository to a reviewed, immutable commit hash rather than cloning and executing the default branch.
- Publish and verify cryptographic checksums or signed release artifacts before execution.
- Include the executable implementation in the Skill package so it can be audited with the instructions.
- Commit dependency lockfiles and use
npm ciinstead of unconstrainednpm install. - Review all npm lifecycle scripts and use
npm ci --ignore-scriptswhere lifecycle execution is unnecessary. - Pin dependency versions and enable automated dependency integrity and provenance checks.
- Run installation and application processes as a dedicated, unprivileged account in an isolated environment.
- Require a separate, explicit approval before running downloaded build, startup, or automation scripts.
