GO-2022-0187

Source
https://pkg.go.dev/vuln/GO-2022-0187
Import Source
https://vuln.go.dev/ID/GO-2022-0187.json
JSON Data
https://api.osv.dev/v1/vulns/GO-2022-0187
Aliases
Published
2022-07-01T20:11:15Z
Modified
2024-05-20T16:03:47Z
Summary
Incorrect computation for P-256 curves in crypto/elliptic
Details

The ScalarMult implementation of curve P-256 for amd64 architectures generates incorrect results for certain specific input points. An adaptive attack can progressively extract the scalar input to ScalarMult by submitting crafted points and observing failures to derive correct output. This leads to a full key recovery attack against static ECDH, as used in popular JWT libraries.

References
Credits
    • Vlad Krasnov
    • Filippo Valsorda at Cloudflare

Affected packages

Go / stdlib

Package

Affected ranges

Type
SEMVER
Events
Introduced
1.6.0-0
Fixed
1.7.6
Introduced
1.8.0-0
Fixed
1.8.2

Ecosystem specific

{
    "imports": [
        {
            "path": "crypto/elliptic",
            "goarch": [
                "amd64"
            ],
            "symbols": [
                "p256SubInternal"
            ]
        }
    ]
}