Verichains discovered a critical proof forgery vulnerability in Polygon zkEVM's zkProver component stemming from field incompatibilities between STARK (F_p^3) and SNARK (F_q) operations, combined with improper constraints in Merkle root computation and arithmetic gates, allowing generation of counterfeit proofs that could manipulate network state. The vulnerability was patched in December 2023 through constraint additions and operational segregation in the pil-stark library.
A low-severity bug in the TypedMemView library's isValid function was caused by incorrect use of the bitwise NOT instruction instead of the ISZERO instruction in Yul assembly, causing the function to always return true regardless of whether memory bounds were valid. The bug was responsibly disclosed to Nomad, patched by replacing 'not' with 'iszero', and publicly documented.