GHSA-346h-749j-r28w: PHPECC vulnerable to multiple cryptographic side-channel attacks
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.
References
Detect and mitigate GHSA-346h-749j-r28w with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →