brainblast v0.7.1 — Anchor/Rust security checkers
Pillar 2: Anchor/Rust Security Checkers — three new static checker kinds for Solana programs written with the Anchor framework, plus 6 fixtures and full test coverage.
New rules
-
anchor-signer-constraint-missing(CRITICAL) — authority-named account fields (authority,admin,owner,payer, …) typed asAccountInfo<'info>without asignerconstraint orSigner<'info>type. Anchor performs no signing check onAccountInfo— any key can be passed as the authority and privileged instructions execute without signature validation. Fix: useSigner<'info>or add#[account(signer)]. -
anchor-unchecked-account-type(HIGH) —UncheckedAccount<'info>fields in instruction handlers. Anchor requires a/// CHECK:comment but performs zero runtime validation — ownership, signer status, and data layout are unchecked. Fix: replace withAccount<'info, T>,Signer<'info>, orSystemAccount<'info>. -
anchor-pda-find-program-address(HIGH) —Pubkey::find_program_addresscalls inside handler bodies. Expensive (up to 255 SHA256 hashes/call) and unsafe (may silently use a non-canonical bump). Fix: use#[account(seeds=[...], bump=state.bump)]— Anchor re-derives and verifies at zero cost. -
Updated logo:
assets/brainblast.pngreplacesassets/brainblast.jpg. -
348/348 tests green.
Install/upgrade the npm CLI:
npx brainblast@0.7.1
The brainblast CLI publishes to npm automatically via the brainblast-v0.7.1 tag (publish-cli workflow).