T08 · Insecure Dependencies
- Location
scripts/cyberdyne.sh:61- Finding
Unpinned npm Package Is Downloaded and Executed at Runtime
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill matches its stated marketplace purpose, but it handles real wallet funds and credentials while relying on unpinned npm code and a credential-bearing API endpoint override.
Review carefully before installing. Use a dedicated low-value wallet, avoid importing valuable private keys on the command line, pin and verify the `cyberdyne-mcp` package before use, keep `CYBERDYNE_API_URL` on the official HTTPS endpoint unless using separate development credentials, and manually inspect every transaction or approval before signing or funding.
scripts/cyberdyne.sh:61Unpinned npm Package Is Downloaded and Executed at Runtime
scripts/cyberdyne.sh:17Bearer Credential Can Be Forwarded to an Unrestricted API Endpoint
Referenced artifact was not completely inspected
scripts/cyberdyne.sh tasks
Referenced artifact was not completely inspected
scripts/cyberdyne.sh tasks
Referenced artifact was not completely inspected
scripts/cyberdyne.sh tasks
Referenced artifact was not completely inspected
scripts/cyberdyne.sh tasks
Referenced artifact was not completely inspected
scripts/cyberdyne.sh tasks
Referenced artifact was not completely inspected
scripts/cyberdyne.sh tasks
Referenced artifact was not completely inspected
scripts/cyberdyne.sh tasks
Referenced artifact was not completely inspected
scripts/cyberdyne.sh tasks
Referenced artifact was not completely inspected
scripts/cyberdyne.sh tasks
The skill documents shell-based setup and execution paths (npx, curl, wrapper scripts) but does not declare any permissions or allowed-tools scope. That omission increases the chance an agent may be granted overly broad execution capability by default, which is risky here because the documented commands mint wallets, store keys, and initiate on-chain funding actions.
Using npx -y cyberdyne-mcp without a pinned version causes the latest package to be fetched and executed at runtime. If the package is compromised upstream, typosquatted, or a malicious release is published, an agent could run attacker-controlled code with access to local files, credentials, wallet material, and network connectivity.
This is another instance of runtime execution of an unpinned npm package via npx -y cyberdyne-mcp. Because the skill is financial and wallet-related, compromise of the fetched package could directly lead to credential theft or unauthorized blockchain transactions.
The MCP server registration command invokes an unpinned package from npm. In this context, the package is intended to become part of an agent's toolchain, so a malicious or changed upstream release could persistently alter agent behavior and exfiltrate secrets.
This command again relies on fetching the latest cyberdyne-mcp package at execution time. Repeated unpinned examples normalize unsafe supply-chain practice, making accidental execution of an unreviewed release more likely.
The unpinned npx invocation appears in a section about posting and funding bounties. Because the command path can mint wallets, save keys, and sign/fund blockchain transactions, executing a malicious package version would have direct financial impact.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
budget — you must then authorize, which requires a signer):
curl -sS -X POST "$CYBERDYNE_API_URL/api/tasks" \
-H "Authorization: Bearer $CYB_KEY" -H "Content-Type: application/json" \
-d '{"title":"Photo-verify storefront","category":"groundtruth",
"reward_usd":0.10,"quantity":2,"duration_min":10,"difficulty":"easy",
This example instructs launch-and-fund via an unpinned npm package in a token-funding workflow. In a high-value path involving wallets and tokens, remote-package drift is particularly dangerous because it can turn routine funding into arbitrary code execution and asset theft.
The Bankr-wallet beta funding example still uses an unpinned npx package fetch. Since this flow interacts with custodial wallet APIs and signing endpoints, compromise could expose API keys or trigger unauthorized signing/funding actions.
The remediation text for stale keys instructs rerunning npx -y cyberdyne-mcp onboard, again without version pinning. Even support and recovery steps should not fetch arbitrary latest code when those steps handle wallet and identity artifacts.
The resources section promotes global installation or execution of the package without any documented version pinning strategy. That broadens supply-chain exposure because users may treat the package as trusted infrastructure while it can change independently of the reviewed skill text.
The documentation instructs users to run npx -y cyberdyne-mcp, which fetches and executes the latest package version at runtime without pinning. That creates a supply-chain risk: if the package or one of its dependencies is compromised, users may execute malicious code while onboarding wallets or handling API credentials.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -sS -X POST "$API/api/tasks" \
-H "Authorization: Bearer $CYB_KEY" -H "Content-Type: application/json" \
-d '{
"title": "Photo-verify the storefront is open",
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -sS -X POST "$API/api/tasks/$TASK_ID/authorize" \
-H "Authorization: Bearer $CYB_KEY" -H "Content-Type: application/json" \
-d '{ "signedPayment": "<base64 x402 auth-capture payload>", "fee_tx_hash": "0x…" }'
The walkthrough instructs users to execute npx -y cyberdyne-mcp without pinning an exact package version. That causes live retrieval of whatever package version is current at execution time, creating a supply-chain risk where a malicious publish, compromised maintainer account, or breaking update could run arbitrary code on the user's machine and access the generated wallet, API keys, or imported private keys.
Using unpinned npx -y cyberdyne-mcp is especially dangerous here because the same command path supports --import 0xYOUR_PRIVATE_KEY. If the fetched package is malicious or compromised, it could immediately exfiltrate the imported private key and drain on-chain assets or impersonate the user permanently.
No suspicious patterns detected.