T08 · Insecure Dependencies
- Location
SKILL.md:6- Finding
Execution of an Unpinned Third-Party npm Package in a Wallet Context
- Content
View full analysis
[--chain ] [--json] ``` ### Technical Analysis The skill invokes the third-party `awal` npm package through `npx` using the mutable `@latest` tag. It does not pin an audited version, specify an integrity hash, provide a lockfile, vendor the dependency, or require verification of the downloaded artifact. Consequently, the effective code executed by the skill can change after the skill itself has been reviewed. Each invocation may download and execute whichever package release the npm registry currently identifies as `latest`. This creates a supply-chain trust boundary that is not controlled by the reviewed project. This issue is particularly sensitive because the package is executed in a cryptocurrency-wallet workflow. A compromised package release, compromised publisher account, or registry-level substitution could run attacker-controlled npm lifecycle or command code with the local permissions of the agent process. No evidence in the reviewed file proves that the current `awal` package is malicious. The vulnerability is the unsafe execution of a mutable, externally maintained dependency without version or integrity controls. ### Attack Path 1. An attacker compromises the npm package publisher, package repository, release process, or another relevant distribution component. 2. The attacker publishes a malicious release and causes it to become the package version referenced by `awal@latest`. 3. A user invokes the skill to inspect ...[truncated 1459 chars]- Remediation
View remediation
status npx awal@ send ... npx awal@ balance ``` 2. Update the `allowed-tools` configuration to permit only the pinned package version rather than the mutable `@latest` tag. 3. Use a lockfile and verify npm package integrity metadata. For stronger assurance, download and inspect the package in a controlled build process, then execute only the approved artifact. 4. Configure npm to use an approved registry and apply package provenance or signature verification where supported. 5. Disable or tightly control dependency lifecycle scripts during installation unless they are explicitly required and reviewed. 6. Run the wallet command in a restricted environment with: - Minimal filesystem access. - No unrelated environment variables or credentials. - Restricted network access. - A dedicated, low-privilege operating-system account. 7. Require explicit user confirmation of the resolved recipient address, amount, chain, and fees through a trusted interface immediately before transaction authorization. 8. Review each dependency update before changing the pinned version, and repeat the security audit whenever the approved package artifact changes. ]]>
