T08 · Insecure Dependencies
- Location
README.md:10- Finding
Unpinned npx Installers Allow Mutable Third-Party Code Execution
- Content
View full analysis
Vulnerability Details
File Location:
README.md:10-22
Vulnerability Type: Supply-chain exposure through unpinned executable packages
Risk Level: MediumVulnerable Code
bash npx skills add ykforerlang/awesome-skills --skill data-charts-visualizationbash npx skills add ykforerlang/awesome-skills --skill data-charts-visualization -g --copy -ybash npx clawhub@latest install data-charts-visualizationTechnical Analysis
The documented installation process invokes executable npm packages through
npxwithout pinning an exact reviewed version. Theclawhub@latestcommand explicitly selects a mutable release, whilenpx skillsimplicitly resolves whichever package version satisfies npm's current default resolution.Unlike downloading inert data,
npxcan retrieve and immediately execute package code. Therefore, the effective installer code may differ from the version that was available when this Skill was audited. The global unattended variant further increases exposure:-ginstalls into a global location.--copycauses files to be copied into the destination.-ysuppresses interactive confirmation.
No malicious installer behavior was observed in the audited project itself. The vulnerability is the mutable, externally controlled code-execution path created by the documented commands.
Attack Path
- An attacker compromises the npm account, publication pipeline, or package used by
skillsorclawhub. - The attacker publishes a malicious package version under the expected package name.
- A user follows the installation command in
README.md. npxresolves and downloads the compromised version.- The package executes with the privileges of the invoking user.
- With the global unattended command, the malicious installer can also modify global Skill files or other user-writable global locations without an additional confirmation prompt.
Impact Assessment
Successful exploitation per ...[truncated 646 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin every executable installer to an exact reviewed version:
bash npx skills@<reviewed-version> add ykforerlang/awesome-skills --skill data-charts-visualization npx clawhub@<reviewed-version> install data-charts-visualization- Remove
@latestfrom security-sensitive installation instructions. - Prefer project-local installation over global installation.
- Do not use
-yin the default documented workflow; retain an explicit user confirmation step. - Publish expected package versions, registry sources, and integrity hashes in the installation documentation.
- Recommend installation from a restricted, non-privileged account.
- Where feasible, vendor or locally verify the installer before execution rather than combining retrieval and execution in one
npxcommand. - Add a release process that tests and approves installer-version updates before changing the documented pin.
