SW001critical
Missing signer check
Authority-like accounts lacking signer validation.
SW002critical
Missing owner check
Accounts without owner or address constraints.
SW003critical
Arbitrary CPI target
Raw CPI calls missing program ID verification.
SW005high
Unchecked arithmetic
Unprotected math operations on account fields.
SW006critical
Type cosplay
Deserialization without discriminator validation.
SW008high
Missing post-CPI reload
Account writes after CPI without reload().
SW009high
Missing token mint check
Mutable token accounts lacking mint constraints.
SW010high
Missing token owner check
Token accounts without authority validation.
SW011medium
AccountInfo as data account
Untyped AccountInfo where typed Account is needed.
SW012high
Missing seeds + bump on PDA
PDAs with seeds but no bump verification.
SW013high
PDA seed unvalidated account
PDA seeds referencing unconstrained accounts.
SW014medium
PDA bump not canonical
Caller-supplied bumps instead of canonical derivation.
SW016medium
init_if_needed usage
Accounts risking silent reinitialization.
SW018medium
Missing realloc::zero
Realloc operations leaving stale data in memory.
SW020medium
AccountInfo as CPI program
Untyped program accounts in CPI contexts.
SW021high
PDA seed collision risk
In a seed where two or more adjacent elements are both with no fixed-length
SW001critical
Missing signer check
Authority-like accounts lacking signer validation.
SW002critical
Missing owner check
Accounts without owner or address constraints.
SW003critical
Arbitrary CPI target
Raw CPI calls missing program ID verification.
SW005high
Unchecked arithmetic
Unprotected math operations on account fields.
SW006critical
Type cosplay
Deserialization without discriminator validation.
SW008high
Missing post-CPI reload
Account writes after CPI without reload().
SW009high
Missing token mint check
Mutable token accounts lacking mint constraints.
SW010high
Missing token owner check
Token accounts without authority validation.
SW011medium
AccountInfo as data account
Untyped AccountInfo where typed Account is needed.
SW012high
Missing seeds + bump on PDA
PDAs with seeds but no bump verification.
SW013high
PDA seed unvalidated account
PDA seeds referencing unconstrained accounts.
SW014medium
PDA bump not canonical
Caller-supplied bumps instead of canonical derivation.
SW016medium
init_if_needed usage
Accounts risking silent reinitialization.
SW018medium
Missing realloc::zero
Realloc operations leaving stale data in memory.
SW020medium
AccountInfo as CPI program
Untyped program accounts in CPI contexts.
SW021high
PDA seed collision risk
In a seed where two or more adjacent elements are both with no fixed-length
SW001critical
Missing signer check
Authority-like accounts lacking signer validation.
SW002critical
Missing owner check
Accounts without owner or address constraints.
SW003critical
Arbitrary CPI target
Raw CPI calls missing program ID verification.
SW005high
Unchecked arithmetic
Unprotected math operations on account fields.
SW006critical
Type cosplay
Deserialization without discriminator validation.
SW008high
Missing post-CPI reload
Account writes after CPI without reload().
SW009high
Missing token mint check
Mutable token accounts lacking mint constraints.
SW010high
Missing token owner check
Token accounts without authority validation.
SW011medium
AccountInfo as data account
Untyped AccountInfo where typed Account is needed.
SW012high
Missing seeds + bump on PDA
PDAs with seeds but no bump verification.
SW013high
PDA seed unvalidated account
PDA seeds referencing unconstrained accounts.
SW014medium
PDA bump not canonical
Caller-supplied bumps instead of canonical derivation.
SW016medium
init_if_needed usage
Accounts risking silent reinitialization.
SW018medium
Missing realloc::zero
Realloc operations leaving stale data in memory.
SW020medium
AccountInfo as CPI program
Untyped program accounts in CPI contexts.
SW021high
PDA seed collision risk
In a seed where two or more adjacent elements are both with no fixed-length