T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:9
- Finding
- Unpinned and Unauditable Third-Party Package Installation## Vulnerability Details **File Location**: `SKILL.md`, lines 9–10 **Vulnerability Type**: Unpinned third-party dependency and supply-chain exposure **Risk Level**: Medium ```yaml install: - "pip install feeless402" ``` ### Technical Analysis The skill instructs the environment to install `feeless402` from PyPI without specifying an exact version or verifying an integrity hash. Consequently, installation resolves to whichever package release the repository serves at that time. The installed package provides the `nano-pay` executable and is expected to process wallet seeds, cryptocurrency payments, swap API credentials, network requests, and merchant-server operations. The project contains only `SKILL.md`; the dependency's source code is not included. Its implementation and claimed protections therefore could not be reviewed as part of this audit. An unreviewed future release, compromised maintainer account, or compromised package-distribution path could introduce arbitrary executable code after this skill has already been approved. ### Attack Path 1. An attacker compromises the `feeless402` package, its maintainer account, or a future package release. 2. The attacker publishes a modified release containing malicious installation-time or runtime code. 3. A user or agent follows the skill metadata and runs `pip install feeless402`. 4. Because no version or hash is enforced, the package manager retrieves the attacker-controlled release. 5. The malicious code executes with the privileges of the account performing installation or invoking `nano-pay`. 6. It can access data available to that account, potentially including Nano wallet files, environment variables such as `NANSWAP_API_KEY`, payment data, and other readable local files. ### Impact Assessment Successful exploitation could provide arbitrary code execution under the installing user's privileges. The accessible scope may include: - Theft of wallet seeds and c ...[truncated 676 chars]
- Remediation
- ## Remediation Suggestions 1. Pin the dependency to an explicitly reviewed version, for example: ```yaml install: - "pip install feeless402==<reviewed-version>" ``` 2. Use a hash-locked requirements file and require hash verification during installation: ```bash python3 -m pip install --require-hashes -r requirements.txt ``` 3. Record the expected package artifact hash and verify it through CI before publishing the skill. 4. Include the dependency's reviewed source code in the audited repository, or reference an immutable source commit and provide reproducible build instructions. 5. Install and execute the package in an isolated virtual environment or container under a dedicated, unprivileged account. 6. Restrict filesystem and environment-variable access so the process can reach only the wallet and credentials required for the current operation. 7. Keep minimal working capital in the wallet and avoid exposing unrelated credentials to the process. 8. Review every dependency update before changing the pinned version, including transitive dependencies and installation hooks.
