-
Notifications
You must be signed in to change notification settings - Fork 118
Expand file tree
/
Copy pathrule-metadata.yaml
More file actions
156 lines (140 loc) · 5.17 KB
/
Copy pathrule-metadata.yaml
File metadata and controls
156 lines (140 loc) · 5.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
rules:
- id: SANC001
name: Unsafe External Call
shortDescription: Detects unsafe external calls
helpUri: https://docs.sanctifier.dev/rules/SANC001
defaultSeverity: high
tags:
- security
- reentrancy
- id: SANC002
name: Missing Access Control
shortDescription: Detects missing auth checks
helpUri: https://docs.sanctifier.dev/rules/SANC002
defaultSeverity: critical
tags:
- auth
- access-control
# ── ZK / Zero-Knowledge rules (Z001-Z014) ────────────────────────────────
- id: Z001
name: Missing Nullifier / Double-Spend Check
shortDescription: Detects proof-based claim flows that consume a verified proof without recording a nullifier, enabling double-spend
helpUri: https://docs.sanctifier.dev/rules/Z001
defaultSeverity: critical
tags:
- zk
- nullifier
- double-spend
- id: Z002
name: Insecure or Predictable Randomness as Circuit Input
shortDescription: Detects on-chain pseudo-randomness (ledger timestamp, sequence) used as entropy for a circuit input
helpUri: https://docs.sanctifier.dev/rules/Z002
defaultSeverity: high
tags:
- zk
- randomness
- id: Z003
name: Missing Public-Input Binding (Proof Malleability)
shortDescription: Detects verifier calls whose public inputs omit a security-relevant value used after verification, letting a valid proof be paired with attacker-chosen inputs
helpUri: https://docs.sanctifier.dev/rules/Z003
defaultSeverity: critical
tags:
- zk
- malleability
- proof-integrity
- id: Z004
name: Unverified Trusted-Setup Parameters
shortDescription: Detects hardcoded verifying-key material with no adjacent reference to an auditable ceremony transcript
helpUri: https://docs.sanctifier.dev/rules/Z004
defaultSeverity: critical
tags:
- zk
- trusted-setup
- id: Z005
name: Missing Verifying-Key Integrity Check
shortDescription: Detects verifier calls using a storage-loaded verifying key without checking it against a known-good hash
helpUri: https://docs.sanctifier.dev/rules/Z005
defaultSeverity: high
tags:
- zk
- trusted-setup
- verifying-key
- id: Z006
name: Missing Proof Nonce / Uniqueness Enforcement
shortDescription: Detects verifiers that accept previously-used proofs without a nonce or domain-separating context binding
helpUri: https://docs.sanctifier.dev/rules/Z006
defaultSeverity: high
tags:
- zk
- replay
- id: Z007
name: Under-Constrained Circuit Inputs
shortDescription: Detects circuit inputs that are never range-checked against the scalar field modulus, allowing arbitrary witness assignment
helpUri: https://docs.sanctifier.dev/rules/Z007
defaultSeverity: critical
tags:
- zk
- soundness
- circom
- id: Z008
name: Curve / Field Mismatch
shortDescription: Detects an on-chain verifier whose curve or field parameters do not match the off-chain circuit
helpUri: https://docs.sanctifier.dev/rules/Z008
defaultSeverity: critical
tags:
- zk
- soundness
- verifying-key
- id: Z009
name: Unbounded Proof-Verification Loop
shortDescription: Detects proof-verification loops over caller-supplied unbounded collections, enabling DoS
helpUri: https://docs.sanctifier.dev/rules/Z009
defaultSeverity: high
tags:
- zk
- dos
- resource-exhaustion
- id: Z010
name: Verifying-Key Rotation Without Access Control
shortDescription: Detects VK-rotation functions callable by any account, allowing an attacker to swap the verifying key
helpUri: https://docs.sanctifier.dev/rules/Z010
defaultSeverity: critical
tags:
- zk
- access-control
- verifying-key
- id: Z011
name: Commitment Reuse Without Domain Separation
shortDescription: Detects a commitment scheme reused across distinct domains without a separating tag, allowing cross-domain confusion
helpUri: https://docs.sanctifier.dev/rules/Z011
defaultSeverity: high
tags:
- zk
- cryptography
- domain-separation
- id: Z012
name: ZK Property Leak via Public-Output Over-Exposure
shortDescription: Detects shielded contracts that publish more on-chain data than their stated privacy model allows
helpUri: https://docs.sanctifier.dev/rules/Z012
defaultSeverity: medium
tags:
- zk
- privacy
- id: Z013
name: Insufficient Batch-Validation in ZK-Rollup Transitions
shortDescription: Detects rollup-style batch state transitions that are applied without validating every proof in the batch
helpUri: https://docs.sanctifier.dev/rules/Z013
defaultSeverity: critical
tags:
- zk
- rollup
- proof-integrity
- id: Z014
name: Missing Merkle-Root Inclusion-Proof Verification
shortDescription: Detects membership claims accepted without verifying the Merkle inclusion proof against the contract's committed root
helpUri: https://docs.sanctifier.dev/rules/Z014
defaultSeverity: critical
tags:
- zk
- merkle
- proof-integrity