{"cve":"CVE-2023-44378","nvd":{"published":"2023-10-09T14:15:10.873","modified":"2026-06-17T06:27:31.403","status":"Modified","description":"gnark is a zk-SNARK library that offers a high-level API to design circuits. Prior to version 0.9.0, for some in-circuit values, it is possible to construct two valid decomposition to bits. In addition to the canonical decomposition of `a`, for small values there exists a second decomposition for `a+r` (where `r` is the modulus the values are being reduced by). The second decomposition was possible due to overflowing the field where the values are defined. Upgrading to version 0.9.0 should fix the issue without needing to change the calls to value comparison methods.","cvss_v4":null,"cvss_v3":{"version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N","score":5.5},"cwes":["CWE-191","CWE-697"],"references":["https://github.com/Consensys/gnark/commit/59a4087261a6c73f13e80d695c17b398c3d0934f","https://github.com/Consensys/gnark/security/advisories/GHSA-498w-5j49-vqjg","https://github.com/zkopru-network/zkopru/issues/116","https://github.com/Consensys/gnark/commit/59a4087261a6c73f13e80d695c17b398c3d0934f","https://github.com/Consensys/gnark/security/advisories/GHSA-498w-5j49-vqjg"],"products":["consensys:gnark"],"source":"nvd","synced_at":"2026-10-19T21:39:34.467980132+00:00"},"epss":{"cve":"CVE-2023-44378","score":0.00234,"percentile":0.14359,"date":"2026-10-31"},"kev":null,"osv":[{"id":"GHSA-498w-5j49-vqjg","url":"https://osv.dev/vulnerability/GHSA-498w-5j49-vqjg","summary":"gnark unsoundness in variable comparison / non-unique binary decomposition","modified":"2026-09-10T03:49:24.650234486Z","packages":[{"ecosystem":"Go","name":"github.com/consensys/gnark","purl":"pkg:golang/github.com/consensys/gnark","ranges":["<0.9.0"],"fixed":["0.9.0"]}]},{"id":"GO-2023-2098","url":"https://osv.dev/vulnerability/GO-2023-2098","summary":"Unsoundness in variable comparison / non-unique binary decomposition in github.com/consensys/gnark","modified":"2024-05-20T16:03:47Z","packages":[{"ecosystem":"Go","name":"github.com/consensys/gnark","purl":"pkg:golang/github.com/consensys/gnark","ranges":["<0.9.0"],"fixed":["0.9.0"]}]}],"attribution":["This product uses the NVD API but is not endorsed or certified by the NVD.","EPSS scores: FIRST Exploit Prediction Scoring System, https://www.first.org/epss","Known exploited vulnerabilities: CISA Known Exploited Vulnerabilities Catalog, https://www.cisa.gov/known-exploited-vulnerabilities-catalog","Package advisories: OSV (https://osv.dev), from the GitHub Advisory Database, PyPA, Go, RustSec and other ecosystem databases, under CC-BY 4.0 or CC0","CVE records: the CVE Program's CVE List (https://www.cve.org), under its terms of use (https://www.cve.org/Legal/TermsOfUse). CVE is a registered trademark of The MITRE Corporation; this product is not affiliated with the CVE Program."]}