ABCDEFGHIJKLMNOPQRSTUVWXYZ
1
IDNameProjectSource CategorySource Link
ZK Framework (Circuit only)
Application Language (Application only)
Source CodeFixLayerVulnerabilityRoot CauseImpact
2
1Non-Committing Encryption Used in InputID::PrivateAleo snarkVMAudit Report
https://www.zksecurity.xyz/blog/2023-aleo-synthesizer.pdf
Varunahttps://github.com/AleoHQ/snarkVM/blob/9f5246d8c28afc0aef769b723eeaa4ec4a402b9c/circuit/program/src/request/verify.rs#L182ApplicationProof Composition ErrorApplication/Application Design ErrorSoundness
3
2Non-Committing Encryption Used in OutputID::PrivateAleo snarkVMAudit Report
https://www.zksecurity.xyz/blog/2023-aleo-synthesizer.pdf
Varunahttps://github.com/AleoHQ/snarkVM/blob/9f5246d8c28afc0aef769b723eeaa4ec4a402b9c/circuit/program/src/response/from_outputs.rs#L79ApplicationProof Composition ErrorApplication/Application Design ErrorSoundness
4
3Incorrect Fiat-Shamir Transform in Circuit CertificationAleo snarkVMAudit Report
https://www.zksecurity.xyz/blog/2023-aleo-synthesizer.pdf
BackendProver ErrorFramework/Incorrect Fiat-Shamir TransformationSoundness
5
4Proof Delegation Is Subject To TruncationAleo snarkVMAudit Report
https://www.zksecurity.xyz/blog/2023-aleo-synthesizer.pdf
VarunaApplicationProof Delegation ErrorApplication/Application Design ErrorSoundness
6
7
Hashing to G2 Exposes a Discrete Log Relation to the Generator
Aleo snarkVMAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Aleo/LeastAuthority_Aleo_Trusted_Setup_Phase_1_Final_Audit_Report.pdf
BackendSetup ErrorFramework/Informational LeakageSoundness
7
8Unsound Addition GadgetReclaim ChaCha20Audit Report
https://www.zksecurity.xyz/blog/2023-reclaim-chacha20.pdf
Circom
https://github.com/reclaimprotocol/circom-chacha20/commit/4551ca64c9fe536b7b9b7498a1feb1ecdc847474
CircuitUnder-ConstrainedCircuit/Wrong translation of logic into constraintsSoundness
8
9Unsound Left Rotation GadgetReclaim ChaCha20Audit Report
https://www.zksecurity.xyz/blog/2023-reclaim-chacha20.pdf
Circom
https://github.com/reclaimprotocol/circom-chacha20/commit/e5e756375fc1fc8dc48667b00cdf38c79a0fdf50
CircuitUnder-ConstrainedCircuit/Wrong translation of logic into constraintsSoundness
9
10Unsound XOR gadgetReclaim ChaCha20Audit Report
https://www.zksecurity.xyz/blog/2023-reclaim-chacha20.pdf
Circom
https://github.com/reclaimprotocol/circom-chacha20/commit/ef9f5a5ad899d852740a26b30eabe5765673c71f
CircuitUnder-ConstrainedCircuit/Wrong translation of logic into constraintsSoundness
10
11Potentially Easy-to-Misuse InterfaceReclaim ChaCha20Audit Report
https://www.zksecurity.xyz/blog/2023-reclaim-chacha20.pdf
Circom
https://github.com/reclaimprotocol/circom-chacha20/commit/959fa1557225aed748a5d5ed468222c110faaef9
CircuitUnder-ConstrainedCircuit/Missing Input ConstraintsSoundness
11
12Missing range checks in BigModCircom-ECDSAAudit Report
https://f8t2x8b2.rocketcdn.me/wp-content/uploads/2023/02/VAR-circom-bigint.pdf
Circom
https://github.com/0xPARC/circom-ecdsa/commit/d3edd7503f48f98a71b6013c248ef3ad55e19703
CircuitUnder-ConstrainedCircuit/Arithmetic Field ErrorsSoundness
12
13Decoder accepting bogus output signalCircomlibAudit Report
https://f8t2x8b2.rocketcdn.me/wp-content/uploads/2023/02/VAR-circom-bigint.pdf
Circomhttps://github.com/iden3/circomlib/blob/cff5ab6288b55ef23602221694a6a38a0239dcc0/circuits/multiplexer.circom#L78CircuitUnder-ConstrainedCircuit/Wrong translation of logic into constraintsSoundness
13
14
Underconstrained points in Edwards2Montgomery
CircomlibAudit Report
https://f8t2x8b2.rocketcdn.me/wp-content/uploads/2023/02/VAR-circom-bigint.pdf
Circomhttps://github.com/iden3/circomlib/blob/cff5ab6288b55ef23602221694a6a38a0239dcc0/circuits/montgomery.circom#L30CircuitUnder-ConstrainedCircuit/Missing Input ConstraintsSoundness
14
15
Underconstrained points in Montgomery2Edwards
CircomlibAudit Report
https://f8t2x8b2.rocketcdn.me/wp-content/uploads/2023/02/VAR-circom-bigint.pdf
Circomhttps://github.com/iden3/circomlib/blob/cff5ab6288b55ef23602221694a6a38a0239dcc0/circuits/montgomery.circom#L49CircuitUnder-ConstrainedCircuit/Missing Input ConstraintsSoundness
15
16Underconstrained points in MontgomeryAddCircomlibAudit Report
https://f8t2x8b2.rocketcdn.me/wp-content/uploads/2023/02/VAR-circom-bigint.pdf
Circomhttps://github.com/iden3/circomlib/blob/cff5ab6288b55ef23602221694a6a38a0239dcc0/circuits/montgomery.circom#L89CircuitUnder-ConstrainedCircuit/Missing Input ConstraintsSoundness
16
17
Underconstrained points in MontgomeryDouble
CircomlibAudit Report
https://f8t2x8b2.rocketcdn.me/wp-content/uploads/2023/02/VAR-circom-bigint.pdf
Circomhttps://github.com/iden3/circomlib/blob/cff5ab6288b55ef23602221694a6a38a0239dcc0/circuits/montgomery.circom#L122CircuitUnder-ConstrainedCircuit/Missing Input ConstraintsSoundness
17
18
Underconstrained outputs in BitElementMulAny
CircomlibAudit Report
https://f8t2x8b2.rocketcdn.me/wp-content/uploads/2023/02/VAR-circom-bigint.pdf
Circomhttps://github.com/iden3/circomlib/blob/cff5ab6288b55ef23602221694a6a38a0239dcc0/circuits/escalarmulany.circom#L34CircuitUnder-ConstrainedCircuit/Unsafe Reuse of CircuitSoundness
18
19Underconstrained outputs in Window4CircomlibAudit Report
https://f8t2x8b2.rocketcdn.me/wp-content/uploads/2023/02/VAR-circom-bigint.pdf
Circomhttps://github.com/iden3/circomlib/blob/cff5ab6288b55ef23602221694a6a38a0239dcc0/circuits/pedersen.circom#L25CircuitUnder-ConstrainedCircuit/Unsafe Reuse of CircuitSoundness
19
20Underconstrained outputs in WindowMulFixCircomlibAudit Report
https://f8t2x8b2.rocketcdn.me/wp-content/uploads/2023/02/VAR-circom-bigint.pdf
Circomhttps://github.com/iden3/circomlib/blob/cff5ab6288b55ef23602221694a6a38a0239dcc0/circuits/escalarmulfix.circom#L48CircuitUnder-ConstrainedCircuit/Unsafe Reuse of CircuitSoundness
20
22Initial Conditions Are Not Properly EnforcedMACIAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/MACI/20210922%20Hashcloak%20audit%20report.pdf
Circom
https://github.com/privacy-scaling-explorations/maci/pull/277/files
CircuitUnder-ConstrainedCircuit/Wrong translation of logic into constraintsSoundness
21
23
CVF-1 Missing range checks for negative values
HerodotusAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Herodotus/ABDK_Herodotus_Herodotus_v_3_0.pdf
Cairo
https://github.com/HerodotusDev/offchain-evm-headers-processor/pull/11/commits/eb30c321f41880b35a7af069f7f52fd98d584616
CircuitUnder-ConstrainedCircuit/Arithmetic Field ErrorsSoundness
22
24
CVF-3 Function doesn’t ensure that “y” is a power of two.
HerodotusAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Herodotus/ABDK_Herodotus_Herodotus_v_3_0.pdf
Cairo
https://github.com/HerodotusDev/offchain-evm-headers-processor/pull/11/commits/af97dae8be5cca025f42da9334596de50762c855
CircuitUnder-ConstrainedCircuit/Missing Input ConstraintsSoundness
23
25CVF-4 Implicitly requires “value” to fit into 128+32=160 bits.HerodotusAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Herodotus/ABDK_Herodotus_Herodotus_v_3_0.pdf
Cairo
https://github.com/HerodotusDev/offchain-evm-headers-processor/pull/11/commits/af97dae8be5cca025f42da9334596de50762c855
CircuitUnder-ConstrainedCircuit/Missing Input ConstraintsSoundness
24
26
CVF-10 Behaviour is undefined if mmr_len is not range checked.
HerodotusAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Herodotus/ABDK_Herodotus_Herodotus_v_3_0.pdf
Cairo
https://github.com/HerodotusDev/offchain-evm-headers-processor/pull/11/commits/af97dae8be5cca025f42da9334596de50762c855
CircuitUnder-ConstrainedCircuit/Missing Input ConstraintsSoundness
25
27
CVF-11 Behaviour is undefined if mmr_offset is not range checked.
HerodotusAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Herodotus/ABDK_Herodotus_Herodotus_v_3_0.pdf
Cairo
https://github.com/HerodotusDev/offchain-evm-headers-processor/pull/11/commits/af97dae8be5cca025f42da9334596de50762c855
CircuitUnder-ConstrainedCircuit/Missing Input ConstraintsSoundness
26
28
CVF-12 Behaviour is undefined if position is not range checked.
HerodotusAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Herodotus/ABDK_Herodotus_Herodotus_v_3_0.pdf
Cairo
https://github.com/HerodotusDev/offchain-evm-headers-processor/pull/11/commits/af97dae8be5cca025f42da9334596de50762c855
CircuitUnder-ConstrainedCircuit/Missing Input ConstraintsSoundness
27
29
CVF-13 Behaviour is undefined if peaks_len is not range checked.
HerodotusAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Herodotus/ABDK_Herodotus_Herodotus_v_3_0.pdf
Cairo
https://github.com/HerodotusDev/offchain-evm-headers-processor/pull/11/commits/af97dae8be5cca025f42da9334596de50762c855
CircuitUnder-ConstrainedCircuit/Missing Input ConstraintsSoundness
28
30Data are not fully verified during state updateMACIAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/MACI/202220930_Hashcloak_audit_report.pdf
Circom
https://github.com/privacy-scaling-explorations/maci/pull/522/commits/6df6a4054da926b07f35c5befab4f1f8af33dcc6
CircuitUnder-ConstrainedCircuit/Wrong translation of logic into constraintsSoundness
29
32
Integer overflow problem & improper bit length restrictions
MACIAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/MACI/202220930_Hashcloak_audit_report.pdf
Solidity
https://github.com/privacy-scaling-explorations/maci/pull/523/commits/c8eb37ad593ee671652f11458909df2a95db3581
ApplicationPassing Unchecked DataApplication/Missing Validation InputSoundness
30
33MessageQueue in PollFactory is uninitializedMACIAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/MACI/202220930_Hashcloak_audit_report.pdf
Solidity
https://github.com/privacy-scaling-explorations/maci/pull/522/commits/04f21b358b9efc17cffb8732c96f338ec56462d3
ApplicationPassing Unchecked DataApplication/Missing Validation InputCompleteness
31
34
Invalid Comparisons on Fixed-Point Values are Accepted by the Circuit Verifier
PenumbraAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Penumbra/NCC_Group_PenumbraLabs_E008695_Report_2023-08-18_v1.0.pdf
Arkworkshttps://github.com/penumbra-zone/penumbra/blob/a43b5944dfac702fd76fee6aab81de05f97de898/crates/core/num/src/fixpoint.rs#L428-L459
https://github.com/penumbra-zone/penumbra/pull/2911/files#diff-954b3b2e678075baf1e06279ea41bb2823e540c76ddb80ba44b52476dfd3f55f
CircuitUnder-ConstrainedCircuit/Wrong translation of logic into constraintsSoundness
32
35
Double-voting due to lack of duplicate nullifiers check
PenumbraAudit Report
https://penumbra.zone/pdfs/zksecurity_penumbra_2023.pdf
https://github.com/penumbra-zone/penumbra/commit/4574c1acc26b8f83f264ec46be1ee48fb4ab4010#diff-95f89980636c07de4c1ac6308aed8f0db161b726cc53a031e7369a828864ab68
ApplicationZKP Complementary Logic ErrorApplication/Missing Validation InputSoundness
33
36
Double spending due to incoming viewing key (ivk) derivation not constrained
PenumbraAudit Report
https://penumbra.zone/pdfs/zksecurity_penumbra_2023.pdf
Arkworks
https://github.com/penumbra-zone/penumbra/commit/e019839939968012ed2d24cf65bdd86d239b50e9
CircuitUnder-ConstrainedCircuit/Out-of-Circuit Computation Not Being ConstrainedSoundness
34
37Unsound fixed-point additionPenumbraAudit Report
https://penumbra.zone/pdfs/zksecurity_penumbra_2023.pdf
Arkworks
https://github.com/penumbra-zone/penumbra/commit/ddab070acff5567f23eb36a4a877358f2c062d9b
CircuitComputational ErrorCircuit/Wrong translation of logic into constraintsSoundness
35
38Unsound fixed-point multiplicationPenumbraAudit Report
https://penumbra.zone/pdfs/zksecurity_penumbra_2023.pdf
Arkworks
https://github.com/penumbra-zone/penumbra/commit/1fdbe1ea10a270180c035aeb8bb7f4a3ff25d99e
CircuitComputational ErrorCircuit/Wrong translation of logic into constraintsSoundness
36
39
Input signal s is not constrained in eff_ecdsa.circom
Spartan-ECDSAAudit Report
https://github.com/zBlock-1/spartan-ecdsa-audit-report
Circomhttps://github.com/personaelabs/spartan-ecdsa/blob/3386b30d9b5b62d8a60735cbeab42bfe42e80429/packages/circuits/eff_ecdsa_membership/eff_ecdsa.circom#L11CircuitUnder-ConstrainedCircuit/Missing Input ConstraintsSoundness
37
40
Knowledge of any member signature allow to generate proof of membership
Spartan-ECDSAAudit Report
https://github.com/zBlock-1/spartan-ecdsa-audit-report
Circomhttps://github.com/personaelabs/spartan-ecdsa/blob/3386b30d9b5b62d8a60735cbeab42bfe42e80429/packages/circuits/eff_ecdsa_membership/eff_ecdsa.circomCircuitUnder-ConstrainedCircuit/Circuit Design ErrorsSoundness
38
43
CVF-9 There must be range check and field check for the amount and field element
RailgunAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Railgun/ABDK_Railgun_CircomSolidity_v_2_0.pdf
Solidityhttps://github.com/Railgun-Privacy/contract/blob/6281cb0dac6a6e0da743e3ba56c437803657872d/contracts/logic/RailgunLogic.sol#L228
https://github.com/Railgun-Privacy/contract/commit/ee203f9865b17a69b232c6b61b9b9822277efcaf#diff-5927624b674e4cb54530a97fa06431c2e9279c84d5cf69062fa3e02a51b4a1bfR244
ApplicationPassing Unchecked DataApplication/Missing Validation InputSoundness
39
44
CVF-21 Check that these parameters are valid field elements
RailgunAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Railgun/ABDK_Railgun_CircomSolidity_v_2_0.pdf
Solidityhttps://github.com/Railgun-Privacy/contract/blob/6281cb0dac6a6e0da743e3ba56c437803657872d/contracts/logic/Verifier.sol#L277
https://github.com/Railgun-Privacy/contract/commit/ee203f9865b17a69b232c6b61b9b9822277efcaf#diff-1e1d28adcf374653075f7eba18e89d4f95ed96ba1c542d2b6a0a5539b529e9e7R306
ApplicationPassing Unchecked DataApplication/Missing Validation InputSoundness
40
46
CVF-2 This function cannot handle the case when n_risk_factor_segments is zero.
StarkwareAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/StarkWare/ABDK_StarkWare_Perpetual__V3_2_v_1_0.pdf
Cairo
https://github.com/starkware-libs/stark-perpetual/commit/3eb3a26366f412cf8d0643f65e33d8b2eb5904fc#diff-46c339368cad1ecf4fe1706202e777540962872f3f18dc45519fd8ea49c79d41
CircuitUnder-ConstrainedCircuit/Missing Input ConstraintsSoundness
41
47
Prover can lock user funds by including ill-formed BigInts in public key commitment (Rotate Function)
SuccinctAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Succinct/2023-02-succinct-securityreview.pdf
Circom
https://github.com/succinctlabs/telepathy-circuits/commit/b0c839cef30c3c25ef41d1ad3000081784766934#diff-7db11ff1faea3f19f0b35882d9719c3e5ee31d108a8eb611ba6d7c225046042d
CircuitUnder-ConstrainedCircuit/Unsafe Reuse of CircuitCompleteness
42
48
Prover can lock user funds by supplying non-reduced Y values to G1BigIntToSignFlag (Rotate)
SuccinctAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Succinct/2023-02-succinct-securityreview.pdf
Circom
https://github.com/succinctlabs/telepathy-circuits/commit/b0c839cef30c3c25ef41d1ad3000081784766934#diff-7db11ff1faea3f19f0b35882d9719c3e5ee31d108a8eb611ba6d7c225046042d
CircuitUnder-ConstrainedCircuit/Unsafe Reuse of CircuitCompleteness
43
49
Incorrect handling of point doubling can allow signature forgery
SuccinctAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Succinct/2023-02-succinct-securityreview.pdf
Circom
https://github.com/succinctlabs/telepathy-circuits/commit/d5c77710b8c3bf0e91fe81c0ca97ec88cb4c3f81#diff-f3d82d89d6fd63924b2eb1427dd947f9ff49a2c2d19b0fdee4b841a8510ad199
CircuitUnder-ConstrainedCircuit/Unsafe Reuse of CircuitSoundness
44
50ArrayXOR is under constrainedSuccinctAudit Report
https://f8t2x8b2.rocketcdn.me/wp-content/uploads/2023/04/VAR-Succinct.pdf
Circomhttps://github.com/succinctlabs/telepathy-circuits/commit/9c84fb0f38531718296d9b611f8bd6107f61a9b8#diff-607de500fc785017151611cff09fc7313b26ac62f29a1a627ecfec4647306c84R226CircuitUnder-ConstrainedCircuit/Assigned but UnconstrainedSoundness
45
51
Zero Padding for Sha256 in ExpandMessageXMD is vulnerable to an overflow
SuccinctAudit Report
https://f8t2x8b2.rocketcdn.me/wp-content/uploads/2023/04/VAR-Succinct.pdf
Circom
https://github.com/succinctlabs/telepathy-circuits/commit/9c84fb0f38531718296d9b611f8bd6107f61a9b8#diff-607de500fc785017151611cff09fc7313b26ac62f29a1a627ecfec4647306c84R138
CircuitUnder-ConstrainedCircuit/Arithmetic Field ErrorsSoundness
46
52
Underflow is possible during subtraction in Verifier.sol
Term Structure LabsAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Term%20Structure%20Labs/ABDK_TermStructure_TermStructurePartII_v_1_0.pdf
SolidityBackendUnsafe VerifierFramework/Programming ErrorSoundness
47
53
Underflow is possible during subtraction in EvacuVerifier.sol
Term Structure LabsAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Term%20Structure%20Labs/ABDK_TermStructure_TermStructurePartII_v_1_0.pdf
SolidityBackendUnsafe VerifierFramework/Programming ErrorSoundness
48
54
Underconstrained Circuit allows Invalid Comparison
UnirepAudit Report
https://f8t2x8b2.rocketcdn.me/wp-content/uploads/2023/08/VAR-Unirep.pdf
Circom
https://github.com/Unirep/Unirep/commit/3348caa362d5d632d29c532ffa88023d55628eab#diff-3ea3a21c0a56b33e02719a3394b589e4e8b183d7705c48830ef86ee419656d55
CircuitUnder-ConstrainedCircuit/Arithmetic Field ErrorsSoundness
49
55Missing Range Checks on Comparison CircuitsUnirepAudit Report
https://f8t2x8b2.rocketcdn.me/wp-content/uploads/2023/08/VAR-Unirep.pdf
Circom
https://github.com/Unirep/Unirep/commit/3348caa362d5d632d29c532ffa88023d55628eab#diff-d1bd5150dd2d2884d8328e647bc95262d91066c21f98af65eeff5bac8cd51e72
CircuitUnder-ConstrainedCircuit/Unsafe Reuse of CircuitSoundness
50
57
CVF-1 This code does nothing. Should enforce constraint
zkLinkAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/ZKlink/ABDK_zkLink_CircuitsSmartContracts_v_6_0.pdf
BellmanCircuitUnder-ConstrainedCircuit/Assigned but UnconstrainedSoundness
51
58
CVF-4 This may overflow if the nonce has been just taken from the updated order, which is not checked for non-overflow.
zkLinkAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/ZKlink/ABDK_zkLink_CircuitsSmartContracts_v_6_0.pdf
BellmanCircuitUnder-ConstrainedCircuit/Arithmetic Field ErrorsSoundness
52
60
Previously Correct Ownership Proof Disabled via Code Changes
ZKorpuAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/ZKopru/LeastAuthority_Ethereum_Foundation_Zkopru_zk-SNARK_Circuits_Smart_Contracts_Final_Audit_Report.pdf
Circomhttps://github.com/zkopru-network/zkopru/blob/13942ebd95c4a2da220ad4ea7014707fe57083b6/packages/circuits/lib/ownership_proof.circom#L10CircuitUnder-ConstrainedCircuit/Other Programming ErrorsSoundness
53
61
Circuit Does Not Check the ERC-20 Sum Correctly
ZKorpuAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/ZKopru/LeastAuthority_Ethereum_Foundation_Zkopru_zk-SNARK_Circuits_Smart_Contracts_Final_Audit_Report.pdf
Circom
https://github.com/zkopru-network/zkopru/commit/30a19913ce1a018ce26a34d3d6621fcd38579171
CircuitUnder-ConstrainedCircuit/Circuit Design ErrorsSoundness
54
62
CIRCUIT NOT PROPERLY WORKING WHEN USING SHARD ID > 0
zkSync EraAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/ZKsync/MatterLabs_zkSync_Era_Circuits_Zero_Knowledge_Security_Audit_Report_Halborn_Final..pdf
BellmanCircuitComputational ErrorCircuit/Other Programming ErrorsCompleteness
55
63
MISSING CONSTRAINT IN PIL LEADING TO PROVING FAKE INCLUSION IN THE SMT
Polygon zkEVMAudit Report
https://github.com/0xPolygonHermez/zkevm-rom/blob/main/audits/Hexens_Polygon_zkEVM_PUBLIC_27.02.23.pdf
PIL
https://github.com/0xPolygonHermez/zkevm-proverjs/commit/40d1846b50aa6b9e006a85fde99261a8c5c7b8f2
CircuitUnder-ConstrainedCircuit/Missing Input ConstraintsSoundness
56
66
MISSING CONSTRAINT IN PIL LEADING TO EXECUTION FLOW HIJACK
Polygon zkEVMAudit Report
https://github.com/0xPolygonHermez/zkevm-rom/blob/main/audits/Hexens_Polygon_zkEVM_PUBLIC_27.02.23.pdf
PIL
https://github.com/0xPolygonHermez/zkevm-proverjs/commit/9d6a8948636c05d508694a90d192a0713562ce29
CircuitUnder-ConstrainedCircuit/Missing Input ConstraintsSoundness
57
79Batch Proof Verification BypassgignerAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Zendoo/NCC_Group_ZenBlockchainFoundation_E001741_Report_2021-11-29_v1.2.pdf
https://github.com/HorizenOfficial/ginger-lib/pull/112/commits/69acc7b324afae6f16c906ebf3153d6a7a3d1373
BackendUnsafe VerifierFramework/Programming ErrorSoundness
58
80Incorrect Random Polynomial GenerationgignerAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Zendoo/NCC_Group_ZenBlockchainFoundation_E001741_Report_2021-11-29_v1.2.pdf
https://github.com/HorizenOfficial/ginger-lib/pull/112/commits/56bed012e24e1c63627b017491ff5431d31a5358
BackendProver ErrorFramework/Bad RandmonessZero-Knowledge
59
84
Missing overflow check of a nullifier (~ unique ID of a shielded payment)
SemaphoreBug Tracker
https://github.com/semaphore-protocol/semaphore/issues/16
Solidity
https://github.com/semaphore-protocol/semaphore/pull/19/files
ApplicationPassing Unchecked DataApplication/Missing Validation InputSoundness
60
85
Missing checks to ensure zk proof inputs are less than SNARK_SCALAR_FIELD
SemaphoreBug Tracker
https://github.com/semaphore-protocol/semaphore/issues/90
Solidity
https://github.com/semaphore-protocol/semaphore/pull/91/files
ApplicationPassing Unchecked DataApplication/Missing Validation InputCompleteness
61
86
Missing checks to ensure 'zero' is less than SNARK_SCALAR_FIELD
zk-kitBug Tracker
https://github.com/privacy-scaling-explorations/zk-kit/issues/23
Solidity
https://github.com/privacy-scaling-explorations/zk-kit/pull/24/files
ApplicationPassing Unchecked DataApplication/Missing Validation InputSoundness
62
87
Vulnerability if not checking proof security level
WinterfellDisclosure
https://github.com/facebook/winterfell/issues/160
https://github.com/facebook/winterfell/pull/219
BackendUnsafe VerifierFramework/Programming ErrorSoundness
63
88
Missing check that Merkle proofs have the proper length and leaf size
Plonky2Bug Tracker
https://github.com/0xPolygonZero/plonky2/pull/709
https://github.com/0xPolygonZero/plonky2/pull/723
BackendUnsafe VerifierFramework/Programming ErrorSoundness
64
89Add missing public input for replica-idFilecoinDisclosure
https://trapdoortech.medium.com/filecoin-one-porep-vulnerability-found-by-trapdoor-tech-7fc7beb4557b
Bellperson
https://github.com/filecoin-project/rust-fil-proofs/pull/1088/files#diff-a4c25bedaaa3099e89770d704ba3bee2cbec87c3fd7e4f5fabbcb1bce7aa9fceL13
CircuitUnder-ConstrainedCircuit/Circuit Design ErrorsSoundness
65
90a16z ZkDrops: Missing Nullifier Range CheckzkDropBug Tracker
https://github.com/a16z/zkdrops/pull/2
Solidity
https://github.com/a16z/zkdrops/pull/2
ApplicationPassing Unchecked DataApplication/Missing Validation InputSoundness
66
91
ProcessMessages circuit to prevent message censorship by the coordinator
MACIBug Tracker
https://github.com/privacy-scaling-explorations/maci/issues/320
Circom
https://github.com/privacy-scaling-explorations/maci/pull/329/files
CircuitUnder-ConstrainedCircuit/Circuit Design ErrorsCompleteness
67
92MiMC Hash: Assigned but not ConstrainedCircomlibDisclosure
https://tornado-cash.medium.com/tornado-cash-got-hacked-by-us-b1e012a3c9a8
Circom
https://github.com/iden3/circomlib/pull/22/files
CircuitUnder-ConstrainedCircuit/Assigned but UnconstrainedSoundness
68
93Arkworks: enforce mul_by_inversearkworksBug Tracker
https://github.com/arkworks-rs/r1cs-std/pull/70
https://github.com/arkworks-rs/r1cs-std/pull/70
CircuitUnder-ConstrainedCircuit/Wrong translation of logic into constraintsSoundness
69
94
Ensures public inputs are less than the scalar field size
snarkjsBug Tracker
https://github.com/semaphore-protocol/semaphore/issues/16
https://github.com/iden3/snarkjs/pull/26/files
BackendUnsafe VerifierFramework/Programming ErrorSoundness
70
95
Missing overflow check (of a public circuit input)
OasisBug Tracker
https://github.com/eea-oasis/baseline/issues/34
Solidity
https://github.com/eea-oasis/baseline/pull/43/files
BackendUnsafe VerifierFramework/Programming ErrorSoundness
71
96Constant assignment to check bugSummaBug Tracker
https://github.com/summa-dev/summa-solvency/issues/32
Halo2
https://github.com/summa-dev/summa-solvency/pull/40/files
CircuitUnder-ConstrainedCircuit/Assigned but UnconstrainedSoundness
72
97Dusk Network: Missing Blinding FactorsDuskBug Tracker
https://github.com/dusk-network/plonk/issues/650
https://github.com/dusk-network/plonk/pull/651/files
BackendProver ErrorFramework/Programming ErrorZero-Knowledge
73
98
Lack of range constraints for the tree_index variable
AztecDisclosure
https://hackmd.io/@aztec-network/disclosure-of-recent-vulnerabilities
Aztec-circuitsCircuitUnder-ConstrainedCircuit/Missing Input ConstraintsSoundness
74
99
Insufficient range checks while emulating non-native field operations
AztecDisclosure
https://hackmd.io/@aztec-network/disclosure-of-recent-vulnerabilities
Aztec-circuitsCircuitUnder-ConstrainedCircuit/Arithmetic Field ErrorsSoundness
75
100Aztec Plonk Verifier: 0 BugAztecDisclosure
https://github.com/cryptosubtlety/00/blob/main/00.pdf
BackendUnsafe VerifierFramework/Programming ErrorSoundness
76
101Pedersen hash input checksAztecDisclosure
https://medium.com/aztec-protocol/vulnerabilities-found-in-aztec-2-0-9b80c8bf416c
Aztec-circuitsCircuitUnder-ConstrainedCircuit/Missing Input ConstraintsSoundness
77
102Merkle root position checkAztecDisclosure
https://medium.com/aztec-protocol/vulnerabilities-found-in-aztec-2-0-9b80c8bf416c
Aztec-circuitsCircuitUnder-ConstrainedCircuit/Assigned but UnconstrainedSoundness
78
103Generating randomnessAztecDisclosure
https://medium.com/aztec-protocol/vulnerabilities-found-in-aztec-2-0-9b80c8bf416c
BackendProver ErrorFramework/Bad RandmonessZero-Knowledge
79
105
Not checking decrypted note details match insertion to tree
AztecDisclosure
https://medium.com/aztec-protocol/vulnerabilities-found-in-aztec-2-0-9b80c8bf416c
ApplicationPassing Unchecked DataApplication/Missing Validation InputSoundness
80
106
S-LRK-01:[circuits]Soundness failure due to 0 value not enforced
LurkAudit Report
https://blog.lurk-lang.org/posts/alpha-audit/inference-security-assessment-3-2023.pdf
Bellperson
https://github.com/lurk-lab/lurk-rs/pull/168/files
CircuitUnder-ConstrainedCircuit/Assigned but UnconstrainedSoundness
81
107
S-LRK-02:[circuits]Soundness failure due toaccumulator 1 initial value not enforced
LurkAudit Report
https://blog.lurk-lang.org/posts/alpha-audit/inference-security-assessment-3-2023.pdf
Bellperson
https://github.com/lurk-lab/lurk-rs/pull/168/files
CircuitUnder-ConstrainedCircuit/Assigned but UnconstrainedSoundness
82
108
S-LRK-03:[circuits]Vectors not constrained to be of the same size
LurkAudit Report
https://blog.lurk-lang.org/posts/alpha-audit/inference-security-assessment-3-2023.pdf
Bellperson
https://github.com/lurk-lab/lurk-rs/commit/d2c7c69efec6b36dfcb55a0586c21df88f0a00b6
CircuitUnder-ConstrainedCircuit/Wrong translation of logic into constraintsSoundness
83
109
S-LRK-04:[circuits]Multicase number of defaults not enforced
LurkAudit Report
https://blog.lurk-lang.org/posts/alpha-audit/inference-security-assessment-3-2023.pdf
Bellperson
https://github.com/lurk-lab/lurk-rs/commit/edcda9760a66088db78f64994513fa19d67caa79#diff-7afbe1a682416c0bc156ad4957f239403a3795a4fee30b3a025528c63b094e9b
CircuitUnder-ConstrainedCircuit/Wrong translation of logic into constraintsSoundness
84
110
S-LRK-05:[circuit]Under-constrained outputs in reduce_sym
LurkAudit Report
https://blog.lurk-lang.org/posts/alpha-audit/inference-security-assessment-3-2023.pdf
Bellperson
https://github.com/lurk-lab/lurk-rs/pull/213/commits/7236df555c2cfc7c37d290666d7d5167b3447032
CircuitUnder-ConstrainedCircuit/Wrong translation of logic into constraintsSoundness
85
111
S-LRK-06:[neptune]Zero padding not enforced
LurkAudit Report
https://blog.lurk-lang.org/posts/alpha-audit/inference-security-assessment-3-2023.pdf
Bellperson
https://github.com/lurk-lab/neptune/pull/169/commits/2415d641dcbdab17b3264d2254705a382c86ce73
CircuitUnder-ConstrainedCircuit/Assigned but UnconstrainedSoundness
86
114
ModGadget is underconstrained and allows incorrect MULMOD operations to be proven
ScrollAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Scroll/2023-04-scroll-zkEVM-wave1-securityreview.pdf
Halo2
https://github.com/scroll-tech/zkevm-circuits/pull/512/files#diff-069477d3efd1b4fb19640ff1d9dcd4fb3e3c9e5f3adc646e1bfc7ad0f07a0162
CircuitUnder-ConstrainedCircuit/Wrong translation of logic into constraintsSoundness
87
115
The RlpU64Gadget is underconstrained when is_lt_128 is false
ScrollAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Scroll/2023-04-scroll-zkEVM-wave1-securityreview.pdf
Halo2
https://github.com/scroll-tech/zkevm-circuits/commit/2a69a55562336a54ce2b1a13748db7cf807c8e2a
CircuitUnder-ConstrainedCircuit/Wrong translation of logic into constraintsSoundness
88
116
The BLOCKHASH opcode is underconstrained and allows the hash of any block to be computed
ScrollAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Scroll/2023-04-scroll-zkEVM-wave1-securityreview.pdf
Halo2CircuitUnder-ConstrainedCircuit/Assigned but UnconstrainedSoundness
89
117
Underconstrained warm status on CALL opcodes allows gas cost forgery
ScrollAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Scroll/2023-04-scroll-zkEVM-wave1-securityreview.pdf
Halo2
https://github.com/scroll-tech/zkevm-circuits/pull/512/files#diff-e72a6a818cbda6c14cb551573432e59fe61ce109345dd4c088508a60c27979af
CircuitUnder-ConstrainedCircuit/Assigned but UnconstrainedSoundness
90
118
The CREATE and CREATE2 opcodes can be called within a static context
ScrollAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Scroll/2023-04-scroll-zkEVM-wave1-securityreview.pdf
Halo2
https://github.com/scroll-tech/zkevm-circuits/pull/512/files#diff-66e8458ad6b55447e17de7f715e4395be943d682483be4a945b51f98a4cc50ae
CircuitUnder-ConstrainedCircuit/Wrong translation of logic into constraintsSoundness
91
119
The gas cost for the CALL opcode is underconstrained
ScrollAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Scroll/2023-04-scroll-zkEVM-wave1-securityreview.pdf
Halo2CircuitUnder-ConstrainedCircuit/Missing Input ConstraintsSoundness
92
120
Unconstrained opcodes allow nondeterministic execution
ScrollAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Scroll/2023-04-scroll-zkEVM-wave1-securityreview.pdf
Halo2CircuitUnder-ConstrainedCircuit/Wrong translation of logic into constraintsSoundness
93
121
Nondeterministic execution of ReturnDataCopyGadget and ErrorReturnDataOutOfBoundGadget
ScrollAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Scroll/2023-04-scroll-zkEVM-wave1-securityreview.pdf
Halo2
https://github.com/scroll-tech/zkevm-circuits/commit/48172be100d36c89256fd55337997a56ba26d711#diff-514fb5b574f54a3e4f3f53db1bf98c703ede97b64475975b8c18bc1d329f1711
CircuitUnder-ConstrainedCircuit/Wrong translation of logic into constraintsSoundness
94
122
The NonceChanged configuration circuit does not constrain the new value nonce value
ScrollAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Scroll/2023-08-scroll-zkEVM-wave2-securityreview.pdf
Halo2https://github.com/scroll-tech/mpt-circuit/blob/7b56d0b323e92ac11e54213520f6e7db41941cd0/src/gadgets/mpt_update.rs#L1224CircuitUnder-ConstrainedCircuit/Wrong translation of logic into constraintsSoundness
95
123
The “invalid creation” error handling circuit is unconstrained
ScrollAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Scroll/2023-08-scroll-zkEVM-wave2-securityreview.pdf
Halo2
https://github.com/scroll-tech/zkevm-circuits/commit/799450ce1434270c27e98916817935586369d8c8
CircuitUnder-ConstrainedCircuit/Wrong translation of logic into constraintsSoundness
96
124
The OneHot primitive allows more than one value at once
ScrollAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Scroll/2023-08-scroll-zkEVM-wave2-securityreview.pdf
Halo2
https://github.com/scroll-tech/mpt-circuit/commit/34af759e94f4b342507778145e7ae364a6d5566e
CircuitUnder-ConstrainedCircuit/Missing Input ConstraintsSoundness
97
125
Incorrect state transitions can be proven for any chunk by manipulating padding flags
ScrollAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Scroll/2023-09-scroll-zkEVM-wave3-securityreview.pdf
Halo2
https://github.com/scroll-tech/zkevm-circuits/commit/138b7a3d7381932d02caef4462e47f7990c72b82
CircuitUnder-ConstrainedCircuit/Wrong translation of logic into constraintsSoundness
98
126
mpt_only being true leads to overconstrained circuits
ScrollAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Scroll/Scroll_zkEVM_-_Audit_Report.pdf
Halo2
https://github.com/scroll-tech/poseidon-circuit/commit/912f5ed2c6cacd64a0006e868e3cb4b624acc019
CircuitOver-ConstrainedCircuit/Other Programming ErrorsCompleteness
99
127
padding_shift is underconstrained in the bytecode circuit
ScrollAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Scroll/Scroll_zkEVM_-_Audit_Report.pdf
Halo2
https://github.com/scroll-tech/zkevm-circuits/commit/e8aecb68ccd87759dc4ea46e2cec9649a0803f5b
CircuitUnder-ConstrainedCircuit/Wrong translation of logic into constraintsSoundness
100
128Missing range checks in MulAdd chipScrollAudit Report
https://github.com/nullity00/zk-security-reviews/blob/main/Scroll/Scroll_zkEVM_-_Audit_Report.pdf
Halo2
https://github.com/scroll-tech/zkevm-circuits/commit/b20bed27e0a1b1345c125a2975875be555d2dff9#diff-842476c9d0fbe7d993552c2efefeb36950f742c1f930311c9569fe012857b30c
CircuitUnder-ConstrainedCircuit/Arithmetic Field ErrorsSoundness