{"id":"CVE-2024-1544","state":"PUBLISHED","title":"ECDSA nonce bias caused by truncation","description":"Generating the ECDSA nonce k samples a random number r and then \ntruncates this randomness with a modular reduction mod n where n is the \norder of the elliptic curve. Meaning k = r mod n. The division used \nduring the reduction estimates a factor q_e by dividing the upper two \ndigits (a digit having e.g. a size of 8 byte) of r by the upper digit of \nn and then decrements q_e in a loop until it has the correct size. \nObserving the number of times q_e is decremented through a control-flow \nrevealing side-channel reveals a bias in the most significant bits of \nk. Depending on the curve this is either a negligible bias or a \nsignificant bias large enough to reconstruct k with lattice reduction \nmethods. For SECP160R1, e.g., we find a bias of 15 bits.","publishedAt":"2024-08-27T18:44:52.770Z","updatedAt":"2026-01-27T21:58:42.146Z","severity":{"score":4.1,"label":"Medium","version":"3.1","vector":"CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:H/I:N/A:N","source":"wolfSSL"},"assigner":"wolfSSL","products":["wolfSSL wolfSSL"],"affected":[{"vendor":"wolfSSL","product":"wolfSSL","defaultStatus":"unknown","versions":[{"version":"0","status":"affected","lessThanOrEqual":"5.6.4","versionType":"Release"}],"programFiles":["wolfcrypt/src/ecc.c"]}],"references":["https://github.com/wolfSSL/wolfssl/releases/tag/v5.7.2-stable","https://github.com/wolfSSL/wolfssl/pull/7020"],"weaknesses":["CWE-203"],"ingestedAt":"2026-10-29T20:06:59.846Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2024/1xxx/CVE-2024-1544.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2024-1544","state":"PUBLISHED","datePublished":"2024-08-27T18:44:52.770Z","dateUpdated":"2026-01-27T21:58:42.146Z","assignerShortName":"wolfSSL","assignerOrgId":"50d2cd11-d01a-48ed-9441-5bfce9d63b27","dateReserved":"2024-02-15T17:38:16.603Z"},"containers":{"cna":{"title":"ECDSA nonce bias caused by truncation","descriptions":[{"lang":"en","value":"Generating the ECDSA nonce k samples a random number r and then \ntruncates this randomness with a modular reduction mod n where n is the \norder of the elliptic curve. Meaning k = r mod n. The division used \nduring the reduction estimates a factor q_e by dividing the upper two \ndigits (a digit having e.g. a size of 8 byte) of r by the upper digit of \nn and then decrements q_e in a loop until it has the correct size. \nObserving the number of times q_e is decremented through a control-flow \nrevealing side-channel reveals a bias in the most significant bits of \nk. Depending on the curve this is either a negligible bias or a \nsignificant bias large enough to reconstruct k with lattice reduction \nmethods. For SECP160R1, e.g., we find a bias of 15 bits."}],"affected":[{"vendor":"wolfSSL","product":"wolfSSL","defaultStatus":"unknown","versions":[{"version":"0","status":"affected","lessThanOrEqual":"5.6.4","versionType":"Release"}],"programFiles":["wolfcrypt/src/ecc.c"]}],"references":[{"url":"https://github.com/wolfSSL/wolfssl/releases/tag/v5.7.2-stable"},{"url":"https://github.com/wolfSSL/wolfssl/pull/7020"}],"metrics":[{"cvssV3_1":{"attackComplexity":"HIGH","attackVector":"LOCAL","availabilityImpact":"NONE","baseScore":4.1,"baseSeverity":"MEDIUM","confidentialityImpact":"HIGH","integrityImpact":"NONE","privilegesRequired":"HIGH","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:H/I:N/A:N","version":"3.1"},"format":"CVSS","scenarios":[{"lang":"en","value":"GENERAL"}]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-203","description":"CWE-203 Observable Discrepancy","lang":"en","type":"CWE"}]}],"providerMetadata":{"shortName":"wolfSSL","orgId":"50d2cd11-d01a-48ed-9441-5bfce9d63b27","dateUpdated":"2026-01-27T21:58:42.146Z"},"credits":[{"lang":"en","type":"finder","user":"00000000-0000-4000-9000-000000000000","value":"Florian Sieck, Luca Wilke and Thomas Eisenbarth from Universität zu Lübeck"}],"datePublic":"2024-07-08T17:30:00.000Z","impacts":[{"descriptions":[{"lang":"en","value":"Information Disclosure"}]}],"source":{"discovery":"EXTERNAL"},"x_generator":{"engine":"Vulnogram 0.1.0-dev"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2024-08-27T19:14:00.889289Z","id":"CVE-2024-1544","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2024-08-27T19:14:35.190Z"}}]}}}