CVE-2022-23806

Curve.IsOnCurve in crypto/elliptic in Go before 1.16.14 and 1.17.x before 1.17.7 can incorrectly return true in situations with a big.Int value that is not a…

published February 11, 2022

CVSS
—
EPSS
3%
Percentile
87.6
In the wild
Unconfirmed
What it is

⚠️ A sneaky mishap in Go's elliptic curve library lets Curve.IsOnCurve call a non-field element valid — like a clerk accepting an expired coupon! Imagine trying to pay your bill with a coupon that's long expired. The cashier might say it’s fine, but really, it’s not worth anything. Similarly, the function in Go mistakenly verifies a non-valid field element as valid, which could lead to incorrect cryptographic operations. If exploited, this could lead to cryptographic inconsistencies, potentially affecting the integrity of operations relying on those validations. While not currently known to be exploited, the impact could be crucial in security-sensitive applications where validation is key.

Put simply

Imagine trying to pay your bill with a coupon that's long expired. The cashier might say it’s fine, but really, it’s not worth anything. Similarly, the function in Go mistakenly verifies a non-valid field element as valid, which could lead to incorrect cryptographic operations. This vulnerability in Go's crypto/elliptic library allows Curve.IsOnCurve to incorrectly return true for certain big.Int values that shouldn't be considered valid field elements. This flaw could affect cryptographic processes relying on accurate curve operations.

What to do

If exploited, this could lead to cryptographic inconsistencies, potentially affecting the integrity of operations relying on those validations. While not currently known to be exploited, the impact could be crucial in security-sensitive applications where validation is key. To remediate this issue, upgrade to Go version 1.16.14 or 1.17.7 or later. It's essential to audit any applications using these versions to ensure they rely on accurate curve validation. Don't forget to keep your libraries up to date for future security enhancements! You've got this! Keep those cryptographic functions sharp and secure! 🛡️

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.03073 · 87.6th percentile
Published
2022-02-11T00:00Z
EPSS history
Timeline
  • 11 FEB 00:00Z
    Curve.IsOnCurve in crypto/elliptic in Go before 1.16.14 and 1.17.x before 1.17.7 can incorrectly return true in situations with a big.Int value that is not a…
    cvelistv5