T08 · Insecure Dependencies
- Location
SKILL.md:157- Finding
Unpinned Third-Party CLI Is Installed Globally
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 157–162 and 350–354
Vulnerability Type: Unpinned globally installed dependency
Risk Level: MediumVulnerable Code
markdown ### Dependency Details ```bash npm install -g notion-api-toolkittext The dependency table repeats the unsafe installation instruction: ```markdown | Dependency | Type | Required | Installation | |:------|------:|:------|:------| | notion-api-toolkit CLI | Command-line tool | Yes | `npm install -g notion-api-toolkit` |Technical Analysis
The Skill requires users or agents to install and execute the
notion-api-toolkitnpm package globally without specifying an exact version, integrity hash, verified publisher, source repository, or package-provenance check. Consequently, future executions can resolve to package contents that differ from those originally reviewed.npm installation may execute package lifecycle scripts. A global installation exposes those scripts and the resulting executable to the permissions and accessible resources of the invoking user. The CLI is subsequently expected to receive
NOTION_TOOLKIT_API_KEYand operate through an OAuth-authorized Notion connection, increasing the sensitivity of a supply-chain compromise.The audit found no evidence that the package is currently malicious. The vulnerability is the unsafe and unverifiable dependency installation process.
Attack Path
- An attacker compromises the npm publisher account, package distribution channel, or a future package release.
- The attacker publishes a malicious version of
notion-api-toolkitunder the same package name. - A user or agent follows the Skill instruction and runs
npm install -g notion-api-toolkit. - npm resolves the unpinned dependency to the attacker-controlled release.
- Malicious code executes through an installation lifecycle script or when the CLI is invoked.
- The compromised process reads resources available to the invoking acc ...[truncated 931 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the dependency to a reviewed exact version rather than resolving the latest release:
bash npm install --save-exact notion-api-toolkit@<reviewed-version> - Prefer a project-local installation with a committed lockfile over a global installation.
- Verify npm provenance, publisher identity, package signatures where supported, and registry integrity metadata before installation.
- Document the authoritative source repository and release process so package contents can be compared with reviewed source.
- Run the CLI in a sandbox or container with minimal filesystem, network, and environment-variable access.
- Expose credentials only to the specific command that requires them; do not retain sensitive keys in a broad shell environment.
- Disable package lifecycle scripts during installation where operationally possible, then separately review any required setup:
bash npm install --ignore-scripts --save-exact notion-api-toolkit@<reviewed-version> - Grant the OAuth connection access only to the Notion resources required for the immediate task and rotate credentials if dependency compromise is suspected.
- Pin the dependency to a reviewed exact version rather than resolving the latest release:
