T08 · Insecure Dependencies
- Location
SKILL.md:17- Finding
Unreviewed Third-Party Package Executes Globally and Handles Authentication and Payments
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 17-27
Vulnerability Type: Third-party supply-chain exposure through globally installed executable dependency
Risk Level: MediumVulnerable Code:
bash npm install -g awal@2.0.3 awal auth loginbash npx awal@2.0.3 x402 pay https://anicca-proxy-production.up.railway.app/api/x402/tone-rewriter \ -X POST \ -d '{"text":"Hey fix this ASAP","target_tone":"professional"}'Technical Analysis
The Skill instructs users to install
awal@2.0.3globally and execute it for authentication, payment, and transmission of user-provided text. Pinning the package version reduces version drift, but the Skill provides no lockfile, package-integrity hash, provenance verification, or documented security review of the dependency.A global npm installation may execute package lifecycle scripts and installs executable code outside a project-scoped environment. The subsequent
npxinvocation executes the same third-party package while it processes an external API destination, payment operation, request body, and authentication context. If the package, its transitive dependencies, or its published artifact were compromised, arbitrary code could execute with the privileges of the invoking user.The documented external API transmission and USDC charge are consistent with the stated purpose of the Skill and are not themselves evidence of malicious intent. The identified risk is the unnecessary global installation and unverified trust placed in executable third-party supply-chain code.
Attack Path
- An attacker compromises the referenced npm package, one of its transitive dependencies, or the package publication process.
- A user follows the Skill instructions and runs
npm install -g awal@2.0.3. - Malicious package installation hooks or CLI code execute locally with the invoking user's privileges.
- The user runs
awal auth login, exposin ...[truncated 1192 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove the global installation requirement and install the dependency in a project-scoped, isolated environment.
- Maintain a reviewed
package.jsonand lockfile that pin both direct and transitive dependencies. - Verify the package publisher, repository, release provenance, and npm artifact integrity before use.
- Use integrity hashes or signed provenance attestations where supported.
- Disable npm lifecycle scripts during installation unless they are explicitly required and reviewed, for example by using
--ignore-scripts. - Run the CLI with least privilege in a restricted container or sandbox with limited filesystem, environment-variable, credential, and network access.
- Avoid exposing broad wallet or payment authority to the CLI. Use a dedicated low-value wallet or narrowly scoped payment authorization.
- Obtain explicit user consent before sending text to the external service, especially where submitted content may contain confidential or personal information.
- Document the external service's ownership, data retention, privacy policy, credential handling, and incident-response process.
- Consider replacing the executable payment client with a reviewed implementation or direct API integration that minimizes trusted code and validates the destination, amount, network, and response before authorizing payment.
