Cloudanix VulnDB

CVE-2024-1544

Medium · 4.1

CVSS

4.1

EPSS

0.3%

Published

Aug 27, 2024

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A flaw in certain cryptographic libraries can leak enough information about the secret numbers used to create digital signatures that a skilled attacker with local access might recover the private keys protecting data or identities.

Chainable
Exploitation
Local Privilege
Attacker needs
High Privilege
Complexity
High
Impact
Data Exposure
Component
Library
Class
Cryptographic Weakness
Remediation
Patch
Effort
Medium
Patch risk
Low

What it actually does

ECDSA nonce generation truncates randomness via modular reduction whose loop iteration count leaks MSB bias in k through control-flow side channel; for curves with sufficient bias this enables lattice recovery of the private key from observed signatures.

Why it matters to the business

Attackers with local high-privileged access could recover long-term signing keys on affected Android devices or wolfSSL deployments, undermining cryptographic authentication, code signing, or TLS sessions; prevalence in mobile and embedded ecosystems amplifies exposure though exploit maturity remains none and urgency is low.

How an attack unfolds

An attacker with the ability to trigger repeated ECDSA operations and observe control-flow timing or branch behavior collects the biased most-significant bits of multiple nonces k; lattice-reduction techniques then recover the private key for curves such as SECP160R1 where the bias reaches 15 bits.

How to fix it

Upgrade Android platform/frameworks/base to the 2023-05-01 monthly patches for versions 11, 12, 12L, 13 and 13-next; update wolfSSL to commit 00e42151ca061463ba6a95adb2290f678cbca472 or later releases that eliminate the biased reduction path.

How to confirm the fix worked

Verify installed Android security patch level includes the May 2023 fixes for frameworks/base; confirm wolfSSL binary or source matches or exceeds commit 00e42151ca061463ba6a95adb2290f678cbca472; run targeted unit tests exercising ECDSA nonce generation for the affected curves.

Typical attack path

  1. Locate process or library performing ECDSA signing with the vulnerable reduction routine
  2. Trigger a large number of signature operations under attacker-controlled input
  3. Measure the number of loop decrements in the modular reduction step via cache, branch, or timing side channel
  4. Collect biased MSB information across many nonces
  5. Feed collected data into lattice-reduction solver to extract the private scalar

How to detect it

Exploitation leaves no direct network or file artifacts; look for anomalous volumes of ECDSA signature operations from the same process, unexpected private-key usage after signature events, or post-compromise indicators such as unauthorized certificate or key rotation in application logs.

What your security team should do

  • Inventory all Android devices and applications linking wolfSSL and schedule upgrades to the listed fixed versions
  • Prioritize systems handling high-value signing keys or using SECP160R1 and similar curves
  • Review logging and monitoring coverage for local side-channel indicators even though public exploitation is not observed
  • Re-issue any long-term ECDSA keys that may have been generated on vulnerable builds

The record

Generating the ECDSA nonce k samples a random number r and then truncates this randomness with a modular reduction mod n where n is the order of the elliptic curve. Meaning k = r mod n. The division used during the reduction estimates a factor q_e by dividing the upper two digits (a digit having e.g. a size of 8 byte) of r by the upper digit of n and then decrements q_e in a loop until it has the correct size. Observing the number of times q_e is decremented through a control-flow revealing side-channel reveals a bias in the most significant bits of k. Depending on the curve this is either a negligible bias or a significant bias large enough to reconstruct k with lattice reduction methods. For SECP160R1, e.g., we find a bias of 15 bits.

Affected packages

Ecosystem Package Introduced Fixed
Debian:11 wolfssl 0 No fix
Debian:12 wolfssl 0 No fix
Debian:13 wolfssl 0 5.7.2-0.1
Ubuntu:16.04:LTS wolfssl 0 No fix
Ubuntu:18.04:LTS wolfssl 0 No fix
Ubuntu:20.04:LTS wolfssl 0 No fix
Ubuntu:22.04:LTS wolfssl 0 No fix
Ubuntu:24.04:LTS wolfssl 0 No fix
Ubuntu:24.10 wolfssl 0 No fix
Ubuntu:25.04 wolfssl 0 No fix
Ubuntu:25.10 wolfssl 0 No fix
Ubuntu:Pro:16.04:LTS wolfssl 0 No fix
Ubuntu:Pro:18.04:LTS wolfssl 0 No fix
Ubuntu:Pro:20.04:LTS wolfssl 0 No fix

Related vulnerabilities