Trust Assessment
cardano-wallet received a trust score of 48/100, placing it in the Untrusted category. This skill has significant security findings that require attention before use in production.
SkillShield's automated analysis identified 7 findings: 3 critical, 0 high, 2 medium, and 2 low severity. Key findings include Potential hardcoded secret (high entropy), Unpinned npm dependency version, Node lockfile missing.
The analysis covered 4 layers: Manifest Analysis, Static Code Analysis, Dependency Graph, LLM Behavioral Safety. The LLM Behavioral Safety layer scored lowest at 8/100, indicating areas for improvement.
Last analyzed on February 12, 2026 (commit 13146e6a). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings7
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | Mnemonic phrase exfiltration via tool output The `cardano_generate_wallet` and `cardano_restore_wallet` tools return the plaintext 24-word mnemonic phrase directly in their output. This directly contradicts the skill's security warning 'Never share your mnemonic' and creates a critical data exfiltration vulnerability. An AI agent using this skill could easily be prompted to output the tool's return value, thereby exposing the user's wallet mnemonic and granting full access to their funds. Remove the `mnemonic` field from the return objects of `cardano_generate_wallet` and `cardano_restore_wallet`. The mnemonic should only be stored encrypted and never exposed in plaintext via tool outputs. If the agent needs to confirm wallet generation/restoration, the address and vkey are sufficient. | LLM | src/tools/index.ts:45 | |
| CRITICAL | Mnemonic phrase exfiltration via tool output (restore wallet) The `cardano_restore_wallet` tool returns the plaintext 24-word mnemonic phrase directly in its output. This directly contradicts the skill's security warning 'Never share your mnemonic' and creates a critical data exfiltration vulnerability. An AI agent using this skill could easily be prompted to output the tool's return value, thereby exposing the user's wallet mnemonic and granting full access to their funds. Remove the `mnemonic` field from the return objects of `cardano_generate_wallet` and `cardano_restore_wallet`. The mnemonic should only be stored encrypted and never exposed in plaintext via tool outputs. If the agent needs to confirm wallet generation/restoration, the address and vkey are sufficient. | LLM | src/tools/index.ts:105 | |
| CRITICAL | Hardcoded default encryption key for sensitive data The `getEncryptionKey` function uses a hardcoded default encryption key ('default-encryption-key-change-me-in-production') if the `MASUMI_ENCRYPTION_KEY` environment variable is not set. This is a critical vulnerability because any attacker who knows this default key can decrypt all stored wallet mnemonics and other credentials, compromising all wallets managed by the skill if the environment variable is not properly configured. The `console.warn` is insufficient to prevent this security flaw in a production environment. Modify `getEncryptionKey` to throw an error and exit if `MASUMI_ENCRYPTION_KEY` is not set, instead of falling back to a hardcoded default. This forces the user to provide a secure, unique encryption key. Alternatively, if a default is absolutely necessary for development, it should be generated dynamically and securely, and never hardcoded. | LLM | src/utils/encryption.ts:28 | |
| MEDIUM | Potential hardcoded secret (high entropy) A high-entropy string (entropy=4.60) was found in a credential-like context. Verify this is not a hardcoded secret. Use environment variables for sensitive values. | Static | skills/sarthib7/cardano-wallet/src/tools/index.ts:235 | |
| MEDIUM | Unpinned npm dependency version Dependency '@meshsdk/core' is not pinned to an exact version ('^1.7.9'). Pin dependencies to exact versions to reduce drift and supply-chain risk. | Dependencies | skills/sarthib7/cardano-wallet/package.json | |
| LOW | Node lockfile missing package.json is present but no lockfile was found (package-lock.json, pnpm-lock.yaml, or yarn.lock). Commit a lockfile for deterministic dependency resolution. | Dependencies | skills/sarthib7/cardano-wallet/package.json | |
| LOW | Unpinned dependencies in package.json The `package.json` uses caret (`^`) ranges for dependencies (e.g., `^1.7.9`). While common, this allows for automatic updates to minor and patch versions, which could introduce breaking changes or, in a security-sensitive context, unexpected behavior or vulnerabilities if a dependency's new version contains malicious code or a flaw. For critical components, exact version pinning is generally recommended to ensure deterministic builds and prevent supply chain attacks. Consider pinning all dependencies to exact versions (e.g., `"@meshsdk/core": "1.7.9"`) to ensure deterministic builds and reduce the risk of unexpected changes from upstream packages. Use a dependency lock file (like `package-lock.json` or `yarn.lock`) and regularly audit dependencies for known vulnerabilities. | LLM | package.json:19 |
Scan History
Embed Code
[](https://skillshield.io/report/1504b25a9b82d1eb)
Powered by SkillShield