GitHub Advisoryadvisory · Packagist

GHSA-346h-749j-r28w PHPECC vulnerable to multiple cryptographic side-channel attacks

CRITICAL Published 2024-04-25 Modified 2024-04-25 Official page ↗
Ecosystem
Packagist
Packages
mdanter/ecc
Severity
Critical
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Weaknesses
CWE-203, CWE-354
Reviewed
2024-04-25

Affected packages

• Packagist mdanter/ecc: <= 1.0.0 (no fix yet)

Description

ECDSA Canonicalization PHPECC is vulnerable to malleable ECDSA signature attacks. Constant-Time Signer When generating a new ECDSA signature, the GMPMath adapter was used. This class wraps the GNU Multiple Precision arithmetic library (GMP), which does not aim to provide constant-time implementations of algorithms. An attacker capable of triggering many signatures and studying the time it takes to perform each operation would be able to leak the secret number, `k`, and thereby learn the private key. EcDH Timing Leaks When calculating a shared secret using the `EcDH` class, the scalar-point multiplication is based on the arithmetic defined by the `Point` class. Even though the library implements a Montgomery ladder, the `add()`, `mul()`, and `getDouble()` methods on the `Point` class are not constant-time. This means that your ECDH private keys are leaking information about each bit of your private key through a timing side-channel.

Related

Weakness · CWE (2)

  • CWE-203 Observable Discrepancy weakness
  • CWE-354 Improper Validation of Integrity Check Value weakness

References