Trusted Setup Leak vulnerability
The trusted setup procedure is a necessary step in the creation of a zero-knowledge proving system. It allows developers to segregate some of the computations beforehand to optimize the system.
One of the steps in a setup is the creation of a Common Reference String (CRS): randomness collection, which is achieved by aggregation of multiple parties' random values. These random values are called toxic waste and should be disposed of immediately after[1]. The Prover can predict the Verifier's challenges and forge malicious proofs if all the values are known. The system is sound if at least one of the values remains unknown. A CRS can also be created by only one centralized party, which makes the vulnerability more severe. It is also possible to update a CRS to improve the security over time[2].
Some protocols don't require a trusted setup, but they usually have drawbacks in the form of larger proofs and longer verification time.