CVE-2021-38194
Calculation error in ark-r1cs-std
An issue was discovered in the ark-r1cs-std crate before 0.3.1 for Rust. It does not enforce any constraints in the FieldVar::mul_by_inverse method. Thus, a prover can produce a proof that is unsound but is nonetheless verified.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
NVD Score used
9.8
An issue was discovered in the ark-r1cs-std crate before 0.3.1 for Rust. It does not enforce any constraints in the FieldVar::mul_by_inverse method. Thus, a prover can produce a proof that is unsound but is nonetheless verified.
- Record
CVE-2021-38194- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - CVSS 2.0
- 7.5 High
AV:N/AC:L/Au:N/C:P/I:P/A:P - Updated
- 2026-11-02
CVE List No score
An issue was discovered in the ark-r1cs-std crate before 0.3.1 for Rust. It does not enforce any constraints in the FieldVar::mul_by_inverse method. Thus, a prover can produce a proof that is unsound but is nonetheless verified.
- Record
CVE-2021-38194- Updated
- 2026-11-02
EUVDEUVD-2021-1846 No score
An issue was discovered in the ark-r1cs-std crate before 0.3.1 for Rust. It does not enforce any constraints in the FieldVar::mul_by_inverse method. Thus, a prover can produce a proof that is unsound but is nonetheless verified.
- Record
EUVD-2021-1846- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-qj3v-q2vj-4c8h
9.8
Calculation error in ark-r1cs-std
An issue was discovered in the ark-r1cs-std crate before 0.3.1 for Rust. It does not enforce any constraints in the FieldVar::mul_by_inverse method. Thus, a prover can produce a proof that is unsound but is nonetheless verified.
- Record
GHSA-qj3v-q2vj-4c8h- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-682
- Updated
- 2026-11-02
OSVGHSA-qj3v-q2vj-4c8h
9.8
Calculation error in ark-r1cs-std
An issue was discovered in the ark-r1cs-std crate before 0.3.1 for Rust. It does not enforce any constraints in the FieldVar::mul_by_inverse method. Thus, a prover can produce a proof that is unsound but is nonetheless verified.
- Record
GHSA-qj3v-q2vj-4c8h- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-682
- Updated
- 2026-11-02
OSVRUSTSEC-2021-0075 No score
Flaw in `FieldVar::mul_by_inverse` allows unsound R1CS constraint systems
Versions 0.2.0 to 0.3.0 of ark-r1cs-std did not enforce any constraints in the FieldVar::mul_by_inverse method, allowing a malicious prover to produce an unsound proof that passes all verifier checks.
This method was used primarily in scalar multiplication for short_weierstrass::ProjectiveVar.
This bug was fixed in commit 47ddbaa, and was released as part of version 0.3.1 on crates.io.
- Record
RUSTSEC-2021-0075- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
ark-r1cs-stdcrates.io |
0.2.0 up to 0.3.1 | 0.3.1 |
ark-r1cs-stdcrates.io |
0.0.0-0 up to 0.3.1 | 0.3.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2021-38194 is a critical vulnerability (CVSS 9.8) in Arcworks Ark-r1cs-std, published July 8, 2021. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.27%, the 70th percentile. Fixed in ark-r1cs-std 0.3.1.
References
rustsec.org/advisories/RUSTSEC-2021-0075.html
raw.githubusercontent.com/rustsec/advisory-db/main/crates/ark-r1cs-std/RUSTSEC-2021-0075.md
nvd.nist.gov/vuln/detail/CVE-2021-38194
github.com/arkworks-rs/r1cs-std/pull/70
github.com/arkworks-rs/r1cs-std/commit/47ddbaa411afe7c499311a248a38135e5a192b67
github.com/advisories/GHSA-qj3v-q2vj-4c8h
github.com/arkworks-rs/r1cs-std
crates.io/crates/ark-r1cs-std