Skip to content

Latest commit

 

History

History
230 lines (196 loc) · 23.3 KB

File metadata and controls

230 lines (196 loc) · 23.3 KB

Known Attack Vectors — Index

One line per vector. Click to see the full multi-step verification procedure.

Load-when (markers) column — advisory gating

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 (see references/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.

How to Contribute

  1. Create a new file: NNN-short-name.md (next available number)
  2. Follow the existing format: YAML frontmatter + ### N — Title + severity + real-world example + verification procedure with numbered steps
  3. Add your entry to this index (include the Load when (markers) cell — default to always (<phase>) unless the vector is provably feature-specific)
  4. Submit a PR

Crypto / On-Chain (1-30)

# 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

Backend / API (31-55)

# 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)

Frontend / Client-Side (56-75)

# 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

DevOps / Supply Chain (76-100)

# 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)

On-Chain — Modern Surface (101-109)

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)

Solana × AI + Off-Chain Rust (110-117)

# 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

On-Chain — Governance & Randomness (118-120)

# 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

Modern On-Chain, Custody & Off-Chain Consumers (121-126)

# 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

DoS, Float Math, Keeper Lifecycle & CLMM Math (127-131)

# 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

Token Registries, Risk Signals & Permissioned Tokens (132-134)

# 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

Known Duplicates & Consolidation Map

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