T08 · Insecure Dependencies
Error
- Location
- SKILL.md:15
- Finding
- Unpinned Third-Party Executable Receives Financial Credentials<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:15-21, 56-60`; execution occurs at `scripts/kraken.sh:11-14` and `scripts/kraken.py:23` **Vulnerability Type**: T08: Insecure Dependencies **Risk Level**: High ### Vulnerable Code ```yaml "install": [ { "id": "cargo", "kind": "cargo", "package": "tentactl", "bins": ["tentactl"], "label": "Install tentactl via cargo (source: https://github.com/askbeka/tentactl)", }, ], ``` ```bash cargo install tentactl ``` The installed executable is subsequently located and launched: ```bash export KRAKEN_MCP_BINARY="${KRAKEN_MCP_BINARY:-$(command -v tentactl 2>/dev/null || echo "")}" [[ -z "$KRAKEN_MCP_BINARY" && -x "$HOME/.cargo/bin/tentactl" ]] && export KRAKEN_MCP_BINARY="$HOME/.cargo/bin/tentactl" [[ -z "$KRAKEN_MCP_BINARY" ]] && { echo "Error: tentactl not found. Install: cargo install tentactl" >&2; exit 1; } exec python3 "$SCRIPT_DIR/kraken.py" "$@" ``` ```python proc = subprocess.Popen([binary], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL, text=True) ``` ### Technical Analysis The installation command retrieves the current `tentactl` package from the Cargo registry without pinning an exact version, using a lockfile, or verifying an artifact checksum or signature. The GitHub source reference in the documentation does not establish that the installed registry artifact corresponds to a reviewed and immutable source revision. The wrapper loads Kraken credentials into its environment before launching `tentactl`. The child process therefore inherits financial API credentials and is trusted to communicate with Kraken and perform sensitive operations. The documented tool set includes order placement, transfers, earn allocation, account changes, and withdrawals. Consequently, compromise of the dependency or its distribution channel would directly expose a high-value execution and credential boundary. This finding does not establish th ...[truncated 1816 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin `tentactl` to an exact audited version: ```bash cargo install tentactl --version '=X.Y.Z' --locked ``` 2. Record the expected source revision and verify that the registry package corresponds to that revision. 3. Prefer signed release artifacts or reproducible source builds, and verify a publisher-provided SHA-256 checksum or cryptographic signature before execution. 4. Maintain a dependency review and update process rather than automatically consuming the latest version. 5. Use separate API keys for read-only, trading, futures, and other privileged operations. 6. Disable withdrawal, transfer, master-account, and key-management permissions unless a specific workflow requires them. 7. Run the dependency with a restricted environment and pass only the credentials required for the requested operation. 8. Consider sandboxing the executable with restricted filesystem and network access, allowing only documented Kraken endpoints. 9. Surface the exact dependency version and artifact digest in installation and diagnostic output so users can verify what is running. ]]>
