An issue was discovered in fastecdsa before 2.1.2. When using the NIST P-256 curve in the ECDSA implementation, the point at infinity is mishandled. This means that for an extreme value in k and s^-1, the signature verification fails even if the signature is correct. This behavior is not solely a usability problem. There are some threat models where an attacker can benefit by successfully guessing users for whom signature verification will fail.
[
{
"signature_type": "Function",
"id": "CVE-2020-12607-66ce0194",
"target": {
"function": "pointZZ_pDouble",
"file": "src/curveMath.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://github.com/antonkueltz/fastecdsa/commit/e592f106edd5acf6dacedfab2ad16fe6c735c9d1",
"digest": {
"function_hash": "93520763919975657384232032081005663602",
"length": 830.0
}
},
{
"signature_type": "Function",
"id": "CVE-2020-12607-765a86e6",
"target": {
"function": "pointZZ_pMul",
"file": "src/curveMath.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://github.com/antonkueltz/fastecdsa/commit/e592f106edd5acf6dacedfab2ad16fe6c735c9d1",
"digest": {
"function_hash": "114807553560984464700912165694170755712",
"length": 1007.0
}
},
{
"signature_type": "Function",
"id": "CVE-2020-12607-9ebef2d1",
"target": {
"function": "pointZZ_pAdd",
"file": "src/curveMath.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://github.com/antonkueltz/fastecdsa/commit/e592f106edd5acf6dacedfab2ad16fe6c735c9d1",
"digest": {
"function_hash": "237713034721248222028732838030589999764",
"length": 794.0
}
},
{
"signature_type": "Line",
"id": "CVE-2020-12607-adb032bc",
"target": {
"file": "src/curveMath.c"
},
"signature_version": "v1",
"deprecated": false,
"source": "https://github.com/antonkueltz/fastecdsa/commit/e592f106edd5acf6dacedfab2ad16fe6c735c9d1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"295440111576572506065665976290646547187",
"196854035119909962313773951870531590818",
"317871309843992884374969037078204491522",
"104375746076562032098332227659040301528",
"65416599458374717787017732325794096570",
"177423792026663125093054846541122329542",
"218619352812740939546316886251052461695",
"40930251885493100673819922373020214212",
"243540426651314462511606196020035304659",
"273798193599705150604646108665496793181",
"170054887755278315323162088544007563571",
"197353946011006447932649302589988372905",
"234408837222518631626031317531483544714",
"74221276442437195587473428445690813998"
]
}
}
]