T08 · Insecure Dependencies
- Location
SKILL.md:20- Finding
Unpinned Global Installation of a Privileged External CLI
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:20-24
Additional Location:README.md:7-17
Vulnerability Type: Unpinned third-party dependency installed globally and executed with access to sensitive campus services
Risk Level: MediumVulnerable Code
From
SKILL.md:20-24:bash npm install -g szu-cliFrom
README.md:7-17:bash npm install -g szu-cli && szu-cli skill install --target codex --jsonbash szu-cli skill install --target codex --jsonTechnical Analysis
The project delegates its operational behavior to the external
szu-clinpm package, but the documented installation commands do not pin an exact reviewed version or verify package integrity or provenance. Consequently, installation resolves whichever version the npm registry serves at that time.A global npm installation can run package lifecycle scripts with the privileges of the invoking user. The chained README command also executes the newly installed CLI immediately after installation. Because the audited project does not contain the CLI implementation, its lifecycle scripts, authentication storage, network behavior, and command implementations could not be verified in this audit.
This CLI is subsequently trusted to use a persistent authenticated browser profile and access sensitive campus records and state-changing services. The issue is therefore a supply-chain trust weakness rather than evidence that the currently published package is malicious.
Attack Path
- An attacker compromises the
szu-clinpm publisher account, release pipeline, dependency graph, or package-distribution channel. - The attacker publishes or causes resolution of a malicious package version.
- A user follows the documentation and runs
npm install -g szu-cliwithout an exact version or integrity verification. - Malicious lifecycle code may execute during installation under the user's local account.
- In the README's chained command, the unverified C ...[truncated 1009 chars]
- An attacker compromises the
- Remediation
View remediation
Remediation Suggestions
-
Pin installation instructions to an exact, reviewed
szu-cliversion rather than resolving the latest mutable release:bash npm install -g szu-cli@X.Y.Z -
Publish the expected package integrity digest and provide a documented verification procedure before installation.
-
Enable and document npm package provenance, signed releases, protected publisher accounts, and a verifiable link to the canonical source repository.
-
Avoid chaining installation and immediate execution. Separate installation, integrity verification, and execution into distinct steps.
-
Prefer a project-local or isolated installation over a global installation where practical, reducing the writable and executable scope.
-
Audit the exact CLI release, including lifecycle scripts, transitive dependencies, browser-profile handling, update behavior, network destinations, and state-changing commands.
-
Keep the existing minimum-version compatibility check, but supplement it with an approved-version policy or reviewed version range; a lower bound alone does not prevent installation of a compromised future release.
-
