One line per vector. Click to see the full multi-step verification procedure.
Every row carries a Load when (markers) cell: the grep/prescan markers that make the vector worth loading for a given codebase. This is a token-efficiency layer, not a scope gate — the completeness guarantee (OUTPUT-RULES Rule 0: every in-scope vector gets a verdict) is unchanged.
- Feature markers (e.g.
pyth·switchboard,token_2022·transfer_hook,invoke·CpiContext) mean the vector is feature-specific. When every marker is provably absent — an empty prescan array (seereferences/orchestration/pre-scan.md) or zero grep hits across the in-scope tree — the vector is skip-deferred and renders[N/A — feature absent: <marker>]. This is an evidence-backed verdict, and it reopens on demand: the instant a manual read surfaces the feature, load the vector and evaluate it. always (<phase>)means the vector is universally applicable within that phase/domain and is NEVER skipped (private-key leak, secrets, supply-chain, access control, and other baseline vectors). A marker cell must never make a vector unreachable — when in doubt a vector is tagged to its phase (always-load for that scope), not a narrow feature.
- Create a new file:
NNN-short-name.md(next available number) - Follow the existing format: YAML frontmatter +
### N — Title+ severity + real-world example + verification procedure with numbered steps - Add your entry to this index (include the Load when (markers) cell — default to
always (<phase>)unless the vector is provably feature-specific) - Submit a PR
| # | Vector | Severity | Load when (markers) |
|---|---|---|---|
| 1 | Private Key Leak | 10 | always (crypto) |
| 2 | Flash Loan Price Manipulation | 10 | flash · flashloan · oracle-priced deposit/withdraw · pyth · switchboard |
| 3 | Reentrancy (CPI) | 10 | invoke · invoke_signed · CpiContext |
| 4 | Missing Access Control | 10 | always (crypto) |
| 5 | Oracle Manipulation | 9 | pyth · switchboard · oracle · PriceUpdate · get_price |
| 6 | First Depositor / Share Inflation | 9 | shares · mint_to · deposit · vault · total_supply |
| 7 | MEV Sandwich Attack | 7 | swap · slippage · min_amount_out · route |
| 8 | Rug Pull / Admin Backdoor | 10 | always (crypto) |
| 9 | Unchecked CPI Target | 9 | invoke · invoke_signed · CpiContext · program_id |
| 10 | PDA Confusion / Type Cosplay | 8 | seeds · find_program_address · AccountInfo · try_deserialize |
| 11 | Integer Overflow / Underflow | 9 | arithmetic_sites · + - * / · checked_ |
| 12 | Arithmetic Rounding Exploit | 7 | arithmetic_sites · / · div · mul_div · shares |
| 13 | Missing Signer Check | 10 | always (crypto) |
| 14 | Account Reinitialization | 8 | init · init_if_needed · is_initialized |
| 15 | Unchecked Account Owner | 9 | always (crypto) |
| 16 | Token Account Mismatch | 8 | TokenAccount · token::mint · token::authority · spl_token |
| 17 | Vault Donation Attack | 7 | vault · get_token_account_balance · .amount · shares |
| 18 | Fee-on-Transfer Token Exploit | 7 | token_2022 · TransferFee · transfer_hook · get_extension |
| 19 | Freeze Authority Griefing | 6 | freeze_authority · FreezeAccount · mint |
| 20 | Program Upgrade Hijack | 10 | always (crypto) |
| 21 | Governance Attack (Vote Buying) | 8 | realm · proposal · spl-governance · vote_record · voter_weight |
| 22 | Bridge Exploit (Fake Proof) | 10 | guardian · vaa · emitter · verify_signatures · attestation |
| 23 | Token-2022 Transfer Hook Attack | 7 | token_2022 · transfer_hook · TransferHook · get_extension |
| 24 | Stale/Missing Account Close | 5 | close · lamports · realloc |
| 25 | Compute Budget Exhaustion DoS | 6 | loops · remaining_accounts · Vec · panic_sites |
| 26 | PDA Seed Collision | 8 | seeds · find_program_address · create_program_address |
| 27 | Missing Discriminator Check | 8 | try_deserialize · AccountInfo · remaining_accounts · discriminator |
| 28 | Front-Running Transaction | 6 | swap · claim · commit · slippage · price-sensitive ix |
| 29 | Withdraw-Before-Update Race | 8 | withdraw · invoke · state-mutation-after-CPI · reload |
| 30 | Infinite Mint / Uncapped Supply | 10 | mint_to · supply · mint_authority · max_supply |
| # | Vector | Severity | Load when (markers) |
|---|---|---|---|
| 31 | NoSQL Injection (MongoDB) | 8 | mongo · mongoose · $where · find( · dynamodb |
| 32 | SQL Injection | 9 | sql · query( · SELECT · prisma · sequelize · knex |
| 33 | Mass Assignment (Vibe Coding) | 7 | req.body · Object.assign · create( · update( · spread-into-model |
| 34 | BaaS Auth Bypass (Supabase/Firebase) | 9 | supabase · firebase · firestore · RLS · service_role |
| 35 | JWT Algorithm Confusion | 8 | jwt · jsonwebtoken · alg · verify( · none |
| 36 | SSRF (Server-Side Request Forgery) | 8 | fetch( · axios · request( · user-supplied URL · http.get |
| 37 | CORS Misconfiguration | 7 | cors · Access-Control-Allow-Origin · origin: |
| 38 | IDOR (Insecure Direct Object Reference) | 7 | req.params · findById · :id route · ownership check |
| 39 | Rate Limiting Bypass | 6 | always (backend) |
| 40 | Command Injection | 9 | exec( · spawn( · child_process · os.system · eval( |
| 41 | Path Traversal / LFI | 8 | readFile · path.join · fs. · ../ · sendFile |
| 42 | XML External Entity (XXE) | 7 | xml · libxml · SAXParser · DOCTYPE · parseString |
| 43 | Prototype Pollution | 7 | __proto__ · merge( · lodash · Object.assign · deep-clone |
| 44 | Server-Side Template Injection | 8 | template · ejs · pug · handlebars · render( · ${ |
| 45 | Webhook Forgery | 7 | webhook · signature · hmac · X-Signature · helius |
| 46 | GraphQL Introspection / Depth Attack | 6 | graphql · apollo · __schema · resolver |
| 47 | WebSocket Hijacking | 7 | websocket · ws · socket.io · upgrade |
| 48 | ReDoS (Regex Denial of Service) | 6 | RegExp · .match( · .test( · complex regex · user input to regex |
| 49 | HTTP Response Splitting | 6 | setHeader · res.header · redirect( · user input in headers |
| 50 | Session Fixation | 7 | session · express-session · cookie · req.session |
| 51 | Account Enumeration | 5 | login · register · reset-password · error-message differences |
| 52 | Unbounded Request Body DoS | 6 | body-parser · express.json · limit · multer · upload |
| 53 | Missing Wallet Signature Verification | 9 | signMessage · nacl · verify · PublicKey · wallet auth |
| 54 | Default Credentials in Production | 8 | always (backend) |
| 55 | Exposed Debug/Admin Endpoints | 7 | always (backend) |
| # | Vector | Severity | Load when (markers) |
|---|---|---|---|
| 56 | XSS via SVG / Image Injection | 7 | svg · dangerouslySetInnerHTML · innerHTML · file upload |
| 57 | Stored XSS (User Content) | 8 | dangerouslySetInnerHTML · innerHTML · user content render |
| 58 | DOM-Based XSS | 7 | innerHTML · document.write · location.hash · eval( |
| 59 | Clickjacking | 6 | always (frontend) |
| 60 | OAuth State Forgery (CSRF via OAuth) | 7 | oauth · state= · redirect_uri · callback |
| 61 | Sensitive Data in URL Parameters | 5 | searchParams · query · ?token= · useRouter |
| 62 | Client-Side Auth Bypass | 7 | always (frontend) |
| 63 | PostMessage Origin Bypass | 6 | postMessage · addEventListener('message' · event.origin |
| 64 | LocalStorage Token Theft | 6 | localStorage · sessionStorage · token · jwt |
| 65 | Clipboard Hijacking (Crypto Address) | 7 | clipboard · navigator.clipboard · copy · wallet address |
| 66 | CSS Exfiltration | 5 | user-supplied CSS · style injection · <style> |
| 67 | Wallet Blind Signing Exploit | 8 | signTransaction · signAllTransactions · sendTransaction · wallet-adapter |
| 68 | Subresource Integrity Bypass | 6 | <script src · CDN · integrity= |
| 69 | Third-Party Script Compromise | 7 | <script src · analytics · third-party embed |
| 70 | Open Redirect | 5 | redirect( · window.location · returnUrl · next= |
| 71 | Missing CSP (Content Security Policy) | 6 | always (frontend) |
| 72 | API Key Exposure in Client Bundle | 7 | always (frontend) |
| 73 | Dangling DNS / Subdomain Takeover | 7 | always (frontend) |
| 74 | Insecure External Link (no rel) | 3 | target="_blank" · <a href · external link |
| 75 | Console Data Leak in Production | 4 | console.log · console.debug · console.error |
| # | Vector | Severity | Load when (markers) |
|---|---|---|---|
| 76 | Dependency Confusion (Substitution Attack) | 9 | always (devops) |
| 77 | Malicious npm Package (Typosquatting) | 8 | always (devops) |
| 78 | Secrets in Git History | 10 | always (devops) |
| 79 | .env File Committed to Repo | 9 | always (devops) |
| 80 | CI/CD Pipeline Injection | 9 | .github/ · gitlab-ci · Jenkinsfile · ${{ · workflow |
| 81 | Insecure Docker Configuration | 7 | Dockerfile · docker-compose · FROM · container |
| 82 | Exposed Admin / Debug Endpoints in Production | 8 | always (devops) |
| 83 | Missing Rate Limiting on Critical Endpoints | 7 | always (devops) |
| 84 | Prototype Pollution | 7 | __proto__ · merge( · lodash · Object.assign |
| 85 | Server-Side Request Forgery (SSRF) | 8 | fetch( · axios · request( · user-supplied URL |
| 86 | Insecure Deserialization | 8 | pickle · yaml.load · JSON.parse · unserialize · Marshal |
| 87 | Insufficient Logging & Monitoring | 6 | always (devops) |
| 88 | Insecure CORS Configuration | 7 | cors · Access-Control-Allow-Origin · origin: |
| 89 | Unpatched Server Dependencies | 7 | always (devops) |
| 90 | Missing HTTPS / TLS Misconfiguration | 8 | http:// · tls · ssl · rejectUnauthorized · certificate |
| 91 | Upgrade Authority Not Secured | 10 | always (devops) |
| 92 | DNS Hijacking / Domain Takeover | 9 | always (devops) |
| 93 | Improper Error Handling (Error Leak) | 5 | catch · stack · err.message · error response |
| 94 | Missing Input Length Limits | 6 | always (devops) |
| 95 | Insecure Randomness | 7 | Math.random · rand() · random · token/nonce generation |
| 96 | Missing Security Headers | 5 | helmet · setHeader · X-Frame-Options · CSP |
| 97 | Stale / Leaked Development Credentials | 8 | always (devops) |
| 98 | Broken Access Control on API Endpoints | 8 | always (devops) |
| 99 | Insecure WebSocket Connections | 6 | websocket · ws:// · socket.io · wss |
| 100 | Insufficient Backup / Disaster Recovery | 7 | always (devops) |
Added in v4.4. Focus: sysvars, precompiles, lookup tables, PDA bump canonicalization, Token-2022 extensions, account revival, ATA assumptions, token decimals, and native/Pinocchio (p-token) programs.
| # | Vector | Severity | Load when (markers) |
|---|---|---|---|
| 101 | Sysvar Spoofing & Instructions-Sysvar Introspection | 8 | sysvar · instructions_sysvar · load_instruction_at · get_instruction_relative |
| 102 | Precompile Signature Verification Bypass (Ed25519/Secp256k1) | 9 | ed25519 · secp256k1 · precompile · instructions_sysvar · signature-verify ix |
| 103 | Address Lookup Table (ALT) Manipulation | 7 | address_lookup_table · AddressLookupTable · lookup_table · versioned tx |
| 104 | Non-Canonical Bump / PDA Derivation Confusion | 7 | seeds · bump · create_program_address · find_program_address |
| 105 | Token-2022 Extension Abuse (permanent delegate / frozen-default / fee / confidential / mint-close) | 8 | token_2022 · get_extension · PermanentDelegate · ConfidentialTransfer · TransferFee |
| 106 | Account Revival / Zombie After Close | 8 | close · lamports · realloc · is_initialized · reopen |
| 107 | Fake / Non-Canonical Associated Token Account (ATA) | 8 | associated_token · get_associated_token_address · ATA · token::authority |
| 108 | Token Decimals & Cross-Mint Amount Confusion | 7 | decimals · amount · multi-mint · transfer_checked · mint.decimals |
| 109 | Pinocchio / p-token — Missing Manual Validation in Zero-Copy Native Programs | 8 | pinocchio · p-token · no_std · AccountInfo · manual-validation (native, no Anchor) |
| # | Vector | Severity | Load when (markers) |
|---|---|---|---|
| 110 | Agent Wallet Key Custody & Missing Spend Caps | 9 | always (ai-agent) |
| 111 | BPF Stack Frame Overflow DoS | 6 | large stack arrays · [u8; N] · deep recursion · panic_sites (on-chain) |
| 112 | In-Memory Secret Non-Zeroization (Off-Chain Rust) | 6 | Keypair · secret · zeroize · .rs off-chain · in-memory key |
| 113 | Autonomous Agent Blind Signing | 8 | signTransaction · agent · autonomous · sendTransaction · LLM-driven sign |
| 114 | MCP Tool Poisoning | 8 | .mcp.json · mcp · tool-definition · agent SDK |
| 115 | On-Chain Data Prompt Injection | 8 | prompt · llm · on-chain data → model · completion · inference |
| 116 | AI Coding Agent in CI Holds Deploy / Upgrade Keys | 9 | .github/ + agent · CI + deploy key · anthropic/openai in workflow |
| 117 | Agent Delegation Scope Creep | 7 | delegate · agent · scope · permission · approve |
| # | Vector | Severity | Load when (markers) |
|---|---|---|---|
| 118 | Stake Account Authority Hijack | 8 | stake · StakeProgram · authorized · staker · withdrawer |
| 119 | Durable-Nonce Pre-Signed Governance Abuse | 9 | nonce · durable_nonce · advance_nonce · realm · proposal · governance |
| 120 | On-Chain Randomness Predictability & VRF Misbinding | 7 | random · vrf · switchboard · Clock · slot_hashes · blockhash |
| # | Vector | Severity | Load when (markers) |
|---|---|---|---|
| 121 | cNFT / Account-Compression Merkle Proof Abuse | 7 | spl-account-compression · bubblegum · merkle · cNFT · proof |
| 122 | Inner-Instruction / Event-Log Spoofing | 7 | emit_cpi · invoke · inner-instruction · event parsing off-chain · sol_log |
| 123 | Lamport-Donation Account Bricking (King-of-the-SOL) | 6 | lamports · rent-exempt check · try_borrow_lamports · balance-equality assumption |
| 124 | Custodial Cleartext Key Export / Recoverable Signing Material | 8 | always (custody) |
| 125 | Bonding-Curve Launchpad Graduation & Migration Abuse | 7 | bonding_curve · graduate · virtual_reserves · migrate · curve |
| 126 | Session Token as Custody | 7 | session · session_token · delegated-signing · spending_limit |
| # | Vector | Severity | Load when (markers) |
|---|---|---|---|
| 127 | ATA / Account Pre-Creation DoS (Init Front-Running) | 6 | init · create_associated_token_account · init_if_needed · pre-creation |
| 128 | On-Chain Floating-Point Financial Math | 5 | f32 · f64 · as f64 · .sqrt() · .powi( · float in value math |
| 129 | Keeper Request→Execute Front-Running & Reordering | 7 | keeper · request · execute · two-step · crank · settlement |
| 130 | CLMM/DLMM Tick-Boundary & Liquidity Math | 7 | tick · sqrt_price · liquidity_net · bin_array · fee_growth |
| 131 | Write-Lock Account Contention DoS (Hot Shared Writable) | 6 | shared writable account · global mut state · single hot PDA · #[account(mut)] global |
| # | Vector | Severity | Load when (markers) |
|---|---|---|---|
| 132 | Canonical-Asset / Token-List Spoofing & Primary-Variant Hijack | 8 | tokenlist · token list · assetId · canonical · getTokenBySymbol · coingeckoId · tokens.xyz · primaryVariant · strict / verified list |
| 133 | Token Risk-Score / Trust-Tier Metric Farming | 6 | riskScore · risk_score · grade · trustTier · liquidityTier · isVerified · rugcheck · webacy · goplus |
| 134 | Token ACL (SRFC-37) Gate-Program Bypass & Permissionless-Freeze Griefing | 7 | token_acl · TACLkU6 · MINT_CFG · gating_program · thaw_permissionless · can_thaw_permissionless · DefaultAccountState + delegated freeze authority |
The off-chain set (1-100) contains six near-duplicate pairs (same root cause catalogued under two categories). They are intentionally retained so both the "Backend" and "DevOps" reading paths stay complete, but an auditor should evaluate each pair once and cross-reference the verdict — do not double-count them as independent coverage. Severities are aligned to the higher of the pair.
| Canonical | Duplicate of | Topic | Aligned Severity |
|---|---|---|---|
| 036 | 085 | SSRF | 8 |
| 037 | 088 | CORS misconfiguration | 7 |
| 043 | 084 | Prototype pollution | 7 |
| 055 | 082 | Exposed admin/debug endpoints | 8 |
| 039 | 083 | Rate limiting (bypass / missing) | 7 |
| 047 | 099 | WebSocket security | 7 |
Distinct concepts: 128 (134 files − 6 duplicate pairs).
Total vector files: 134 (100 original + 9 in v4.4 + 8 in v5.0 + 3 in v5.1 + 6 in v6.0 + 3 in v6.1 + 2 in v6.2 + 3 in v7.2) Distinct concepts: 128 (after consolidating 6 duplicate pairs) Categories: 6 (crypto, backend, frontend, devops, ai-agent, off-chain-rust) Severity range: 3-10