Trust Assessment
soroban-trader received a trust score of 25/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: 1 critical, 3 high, 2 medium, and 1 low severity. Key findings include Unsafe deserialization / dynamic eval, 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 48/100, indicating areas for improvement.
Last analyzed on February 12, 2026 (commit 5acc5677). 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 | Hardcoded encryption salt for private key storage The `encrypt` and `decrypt` functions use a hardcoded string `'salt'` for `crypto.scryptSync`. This significantly weakens the key derivation function, making the encrypted private key vulnerable to offline attacks if the `wallet.json` file is compromised. Each encryption should ideally use a unique, randomly generated salt stored alongside the IV. Replace the hardcoded `'salt'` with a randomly generated salt for each encryption. Store this salt alongside the IV (e.g., `salt:iv:encrypted_data`) in the `wallet.json` file to ensure proper key derivation security. | LLM | index.js:20 | |
| HIGH | Unsafe deserialization / dynamic eval Decryption followed by code execution Remove obfuscated code execution patterns. Legitimate code does not need base64-encoded payloads executed via eval, encrypted-then-executed blobs, or dynamic attribute resolution to call system functions. | Manifest | skills/kaankacar/soroban-trader-skill/index.js:30 | |
| HIGH | Unsafe deserialization / dynamic eval Decryption followed by code execution Remove obfuscated code execution patterns. Legitimate code does not need base64-encoded payloads executed via eval, encrypted-then-executed blobs, or dynamic attribute resolution to call system functions. | Manifest | skills/kaankacar/soroban-trader-skill/index.js:40 | |
| HIGH | Direct handling of raw private key in memory The `setKey` function receives the `privateKey` directly as an argument and stores it in a plain object in memory before it is encrypted and saved to disk. This increases the window of exposure for the raw private key, making it vulnerable to memory inspection or logging if the agent environment is compromised or misconfigured. Minimize the time the raw private key exists in memory. If possible, encrypt the key at the earliest point of input or ensure the `privateKey` variable is immediately cleared from memory (e.g., by setting it to `null` or an empty string) after its initial use for keypair derivation and before storage. | LLM | index.js:59 | |
| MEDIUM | Unpinned npm dependency version Dependency '@stellar/stellar-sdk' is not pinned to an exact version ('^14.5.0'). Pin dependencies to exact versions to reduce drift and supply-chain risk. | Dependencies | skills/kaankacar/soroban-trader-skill/package.json | |
| MEDIUM | Unpinned major dependency version The `@stellar/stellar-sdk` dependency is specified with a caret (`^14.5.0`), allowing automatic updates to any `14.x.x` version. This introduces a supply chain risk, as new minor or patch versions could potentially introduce vulnerabilities or unexpected behavior without explicit review by the skill developer. Pin the dependency to an exact version (e.g., `"14.5.0"`) or use a lockfile (`package-lock.json` or `yarn.lock`) to ensure deterministic builds. Regularly review and manually update dependencies to mitigate supply chain risks. | LLM | package.json:19 | |
| 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/kaankacar/soroban-trader-skill/package.json |
Scan History
Embed Code
[](https://skillshield.io/report/013b0e795066504d)
Powered by SkillShield