example-hello-world
Audited by Snyk on Jul 2, 2026
HIGH W007: Insecure credential handling detected in skill instructions.
- Insecure credential handling detected (high risk: 1.00). The prompt contains hard-coded secrets (e.g., the ALICE_SEED constant, the privateStoragePasswordProvider password literal, and Docker environment secret/password values) that the generated skill files must reproduce verbatim, which requires the LLM to output secret values directly and creates an exfiltration risk.
MEDIUM W012: Unverifiable external dependency detected (runtime URL that controls agent).
- Potentially malicious external URL detected (high risk: 0.90). The prerequisites use curl to fetch and pipe an installer to sh (https://github.com/midnightntwrk/compact/releases/latest/download/compact-installer.sh), which clearly executes remote code during setup and is a required dependency (the Compact compiler) for running the skill.
HIGH W008: Secret detected in skill content (API keys, tokens, passwords).
- Secret detected (high risk: 1.00). I scanned the skill for literal credentials that look like real, usable secrets (high-entropy API keys, passwords, or private keys). I flagged only values that are both literal and appear to provide access.
Flagged:
- src/providers.ts — privateStoragePasswordProvider returns the literal string "xK9#mQ2$pL8@nR5!vW3*". This is a concrete, non-placeholder password (strong/mixed characters, >16 chars) used to protect private state; it meets the definition of a secret and should be treated as sensitive.
Ignored (not flagged) and why:
- compose.yml: APP__INFRA__STORAGE__PASSWORD, APP__INFRA__PUB_SUB__PASSWORD, APP__INFRA__LEDGER_STATE_STORAGE__PASSWORD = "indexer" — low-security example/setup passwords, intentionally weak; treated as documentation/test values.
- compose.yml: APP__INFRA__SECRET = "3031323334353637..." — hex-encoded sequential digits (appears to decode to a repeating numeric sequence). Predictable/low entropy; looks like an example/dev secret, so ignored.
- compose.yml: SIDECHAIN_BLOCK_BENEFICIARY = "04bcf7ad..." — looks like a public key/address (not a secret), so ignored.
- src/test/hw.test.ts: ALICE_SEED = "0000...0001" — static test seed (known test vector) used for reproducible tests; per guidance test seeds / demo credentials are ignored.
No other literal high-entropy API keys, private keys (PEM blocks), or similar were found.
MEDIUM W009: Direct money access capability detected (payment gateways, crypto, banking).
- Direct money access detected (high risk: 1.00). The skill is explicitly built to create and control blockchain wallets and to build, sign/finalize, and submit transactions. It uses Midnight-specific wallet and ledger APIs (FluentWalletBuilder, WalletFacade, ZswapSecretKeys, DustSecretKey, balanceUnboundTransaction, finalizeRecipe, submitTransaction) and higher-level contract transaction helpers (deployContract, submitCallTx). These are not generic I/O tools but concrete crypto wallet/transaction functions that enable sending on-chain transactions and managing keys (including a static seed for reproducible wallet control). Therefore it grants direct crypto/blockchain financial execution capability.
Issues (4)
Insecure credential handling detected in skill instructions.
Unverifiable external dependency detected (runtime URL that controls agent).
Secret detected in skill content (API keys, tokens, passwords).
Direct money access capability detected (payment gateways, crypto, banking).