T08 · Insecure Dependencies
- Location
SKILL.md:9- Finding
Unpinned and Unauditable Third-Party Package Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 9–10
Vulnerability Type: Unpinned third-party dependency and supply-chain exposure
Risk Level: Mediumyaml install: - "pip install feeless402"Technical Analysis
The skill instructs the environment to install
feeless402from 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 thenano-payexecutable 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
- An attacker compromises the
feeless402package, its maintainer account, or a future package release. - The attacker publishes a modified release containing malicious installation-time or runtime code.
- A user or agent follows the skill metadata and runs
pip install feeless402. - Because no version or hash is enforced, the package manager retrieves the attacker-controlled release.
- The malicious code executes with the privileges of the account performing installation or invoking
nano-pay. - 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]
- An attacker compromises the
- Remediation
View remediation
Remediation Suggestions
- Pin the dependency to an explicitly reviewed version, for example:
yaml install: - "pip install feeless402==<reviewed-version>" - Use a hash-locked requirements file and require hash verification during installation:
bash python3 -m pip install --require-hashes -r requirements.txt - Record the expected package artifact hash and verify it through CI before publishing the skill.
- Include the dependency's reviewed source code in the audited repository, or reference an immutable source commit and provide reproducible build instructions.
- Install and execute the package in an isolated virtual environment or container under a dedicated, unprivileged account.
- Restrict filesystem and environment-variable access so the process can reach only the wallet and credentials required for the current operation.
- Keep minimal working capital in the wallet and avoid exposing unrelated credentials to the process.
- Review every dependency update before changing the pinned version, including transitive dependencies and installation hooks.
- Pin the dependency to an explicitly reviewed version, for example:
