Back to skill

Security audit

foundry-solidity

Security checks across malware telemetry and agentic risk

Overview

This Foundry/Solidity skill is coherent, but needs review because it includes live transaction and private-key examples that could move funds if copied without added safeguards.

Before installing, treat this as a powerful blockchain development reference: use local or testnet keys, never paste production seed phrases or private keys into shell commands, dry-run before any --broadcast or cast send, and manually verify chain, account, recipient, value, and CI approvals before allowing deployment guidance to run.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (8)

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The skill includes examples that perform real on-chain actions such as `forge create ... --broadcast`, `forge script ... --broadcast --verify`, and `cast send ... --private-key $KEY` without an adjacent, explicit warning that these commands can spend funds, publish transactions, and interact with live networks. In a developer skill that may be followed verbatim, this creates a meaningful risk of accidental mainnet/testnet broadcasts, financial loss, or unintended state changes, especially when environment variables like private keys and RPC URLs are already configured.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The documentation includes commands for generating wallets, deriving private keys from mnemonics, importing raw private keys, and signing with `--private-key` or plaintext mnemonic input, but it provides no safety guidance about secret exposure in shell history, process lists, screenshots, logs, or shared terminals. In a developer-facing skill, this can normalize unsafe credential handling and lead users to paste production secrets directly into commands, resulting in wallet compromise and irreversible asset loss.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The `cast send` examples demonstrate live state-changing transactions, including token transfers and ETH-value sends to `mainnet`, without warning that these actions can spend real funds and are irreversible once broadcast. Users may copy-paste the commands assuming they are read-only examples, especially in a reference document that otherwise mixes harmless inspection commands with write operations.

Missing User Warnings

Low
Confidence
91% confidence
Finding
The documentation includes examples that connect Chisel to a third-party RPC endpoint and query live on-chain data without any caution about privacy, metadata leakage, or the trust implications of using external infrastructure. While the examples are normal for a Foundry/solidity workflow, users may unknowingly send wallet-, project-, or IP-linked query activity to external providers, especially if they substitute real API keys or internal RPC URLs.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The deployment example shows a production `forge script` invocation with `--broadcast` and a private key, which can cause irreversible on-chain transactions if copied blindly by users. Although it uses placeholders for secrets rather than hardcoded credentials, the example lacks an explicit warning, dry-run guidance, or safer gating measures, increasing the chance of accidental mainnet deployment in CI.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The guide shows `forge script ... --broadcast` usage that sends real transactions, but the surrounding documentation does not clearly warn that this causes irreversible on-chain state changes and can spend real funds. In a deployment-focused skill, users may copy-paste commands directly; without explicit safety callouts, this creates a meaningful risk of accidental mainnet/testnet transactions, incorrect network targeting, or unintended contract execution.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The guide recommends `unchecked` arithmetic for gas savings and says it is safe when bounded, but it does not explicitly instruct readers to prove and document overflow safety before applying the pattern. In Solidity, misuse of `unchecked` can silently reintroduce overflow/underflow bugs, especially when developers cargo-cult loop or arithmetic optimizations into less obviously bounded code.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The guide advises storing transient data in events instead of contract storage, but does not warn that events are not accessible to on-chain contracts and cannot serve as authoritative state. Readers may incorrectly remove required state persistence, breaking contract logic, access control assumptions, or integrations that depend on on-chain readability rather than off-chain indexing.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Static analysis

Detected: suspicious.exposed_secret_literal, suspicious.generated_source_template_injection

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
references/cicd.md:238

User-controlled placeholder is embedded directly into generated source code.

Critical
Code
suspicious.generated_source_template_injection
Location
references/configuration.md:210

User-controlled placeholder is embedded directly into generated source code.

Critical
Code
suspicious.generated_source_template_injection
Location
references/deployment.md:368

User-controlled placeholder is embedded directly into generated source code.

Critical
Code
suspicious.generated_source_template_injection
Location
references/testing.md:417

User-controlled placeholder is embedded directly into generated source code.

Critical
Code
suspicious.generated_source_template_injection
Location
SKILL.md:284