{"schema_version":"1.3.1","id":"GO-2023-2119","modified":"2024-05-20T16:03:47Z","published":"2023-10-24T20:27:47Z","aliases":["GHSA-7p92-x423-vwj6"],"summary":"Proof forgery due to insufficient randomness in github.com/consensys/gnark","details":"A a third party may derive a valid proof from a valid initial tuple {proof, public_inputs}, corresponding to the same public inputs as the initial proof. This vulnerability is due to randomness being generated using a small part of the scratch memory describing the state, allowing for degrees of freedom in the transcript. Note that the impact is limited to the PlonK verifier smart contract.","affected":[{"package":{"name":"github.com/consensys/gnark","ecosystem":"Go"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.9.1"}]}],"ecosystem_specific":{"imports":[{"path":"github.com/consensys/gnark/backend/plonk/bls12-377","symbols":["Prove","Verify"]},{"path":"github.com/consensys/gnark/backend/plonk/bls12-381","symbols":["Prove","Verify"]},{"path":"github.com/consensys/gnark/backend/plonk/bls24-315","symbols":["Prove","Verify"]},{"path":"github.com/consensys/gnark/backend/plonk/bls24-317","symbols":["Prove","Verify"]},{"path":"github.com/consensys/gnark/backend/plonk/bn254","symbols":["Prove","Verify"]},{"path":"github.com/consensys/gnark/backend/plonk/bw6-633","symbols":["Prove","Verify"]},{"path":"github.com/consensys/gnark/backend/plonk/bw6-761","symbols":["Prove","Verify"]}]}}],"references":[{"type":"ADVISORY","url":"https://github.com/Consensys/gnark/security/advisories/GHSA-7p92-x423-vwj6"},{"type":"FIX","url":"https://github.com/Consensys/gnark/commit/3421eaa7d544286abf3de8c46282b8d4da6d5da0"}],"database_specific":{"url":"https://pkg.go.dev/vuln/GO-2023-2119","review_status":"REVIEWED"}}