GO-2023-2119

Source
https://pkg.go.dev/vuln/GO-2023-2119
Import Source
https://vuln.go.dev/ID/GO-2023-2119.json
JSON Data
https://api.test.osv.dev/v1/vulns/GO-2023-2119
Aliases
Published
2023-10-24T20:27:47Z
Modified
2024-05-20T16:03:47Z
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.

Database specific
{
    "review_status": "REVIEWED",
    "url": "https://pkg.go.dev/vuln/GO-2023-2119"
}
References

Affected packages

Go / github.com/consensys/gnark

Package

Name
github.com/consensys/gnark
View open source insights on deps.dev
Purl
pkg:golang/github.com/consensys/gnark

Affected ranges

Type
SEMVER
Events
Introduced
0Unknown introduced version / All previous versions are affected
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"
            ]
        }
    ]
}