T08 · Insecure Dependencies
- Location
SKILL.md:90- Finding
Unpinned Third-Party npm Dependency
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 90
Vulnerability Type: Unpinned third-party package installation
Risk Level: MediumVulnerable Code
markdown JS SDK (zero-dep, handles 402 parsing): `npm install ticktape`.Technical Analysis
The documented installation command does not specify an exact package version, lockfile, integrity hash, or reviewed source revision. Consequently,
npm install ticktaperesolves whichever package release the npm registry currently designates, rather than the version that existed when this Skill was audited.If the package, its publishing account, or the registry distribution channel is compromised, a malicious future release could execute lifecycle scripts during installation or run attacker-controlled code when imported. This risk is especially relevant because the SDK is intended to process x402 payment authorizations and prepaid bearer tokens.
The SDK is not essential to the declared read-only risk-checking functionality because
SKILL.mdalso documents direct HTTPS API calls. Installing mutable third-party code therefore introduces avoidable supply-chain privileges beyond the minimum needed to call the service.Attack Path
- An attacker compromises the
ticktapenpm package, its maintainer account, or its distribution process. - The attacker publishes a malicious release and causes it to be resolved by the unversioned installation command.
- An operator or Agent follows the Skill documentation and runs
npm install ticktape. - Malicious code executes through an npm lifecycle script or when the installed SDK is imported.
- The code accesses resources available to the installing process, potentially including environment variables, payment authorization material, prepaid TickTape bearer tokens, local files, and network access.
- Stolen information may then be transmitted to attacker-controlled infrastructure or used to perform unau ...[truncated 997 chars]
- An attacker compromises the
- Remediation
View remediation
Remediation Suggestions
- Replace the unversioned command with an exact, reviewed package version, such as
npm install --save-exact ticktape@<audited-version>. - Supply and verify a lockfile containing npm integrity metadata.
- Link the documented package version to a reviewed source repository commit and verify that the published artifact corresponds to that revision.
- Use
npm install --ignore-scriptswhere lifecycle scripts are unnecessary, and document any functionality affected by disabling them. - Prefer direct HTTPS requests to the documented API endpoints when SDK functionality is not required.
- Run dependency installation and SDK execution in a restricted environment with minimal filesystem access and only the necessary environment variables.
- Keep prepaid tokens and payment authorization data out of the installation environment. Inject them only at runtime through a narrowly scoped secret mechanism.
- Add automated dependency scanning and package provenance or signature verification to detect compromised or unexpectedly changed releases.
- Replace the unversioned command with an exact, reviewed package version, such as
