HSEC-2025-0002
Double Public Key Signing Function Oracle Attack on Ed25519
Double Public Key Signing Function Oracle Attack on Ed25519
The standard specification of Ed25519 message signing involves providing the algorithm with a message and private key.
The function will use the private key to compute the public key and sign the message. Some libraries provide a variant of the message signing function that also takes the pre-computed public key as an input parameter.
Libraries that allow arbitrary public keys as inputs without checking if the input public key corresponds to the input private key are vulnerable to the following attack.
By using several public keys and messages, a malicious user with access to the signing mechanism may build up insights into the private key parameters resulting in access to the private key.
This shortcoming means that an attacker could use the signing function as an Oracle, perform crypto-analysis and ultimately get at secrets. For example, an attacker who can’t access the private key but can access the signing mechanism through an API call could use several public keys and messages to gradually build up insights into private key parameters.
What each source reports
OSV No score
Double Public Key Signing Function Oracle Attack on Ed25519
Double Public Key Signing Function Oracle Attack on Ed25519
The standard specification of Ed25519 message signing involves providing the algorithm with a message and private key.
The function will use the private key to compute the public key and sign the message. Some libraries provide a variant of the message signing function that also takes the pre-computed public key as an input parameter.
Libraries that allow arbitrary public keys as inputs without checking if the input public key corresponds to the input private key are vulnerable to the following attack.
By using several public keys and messages, a malicious user with access to the signing mechanism may build up insights into the private key parameters resulting in access to the private key.
This shortcoming means that an attacker could use the signing function as an Oracle, perform crypto-analysis and ultimately get at secrets. For example, an attacker who can’t access the private key but can access the signing mechanism through an API call could use several public keys and messages to gradually build up insights into private key parameters.
- Record
HSEC-2025-0002- Updated
- 2026-11-02
Affected packages
| Package | Affected | Fixed |
|---|---|---|
cryptoniteHackage |
0.1 and later, plus listed versions 0.100.110.120.130.14 Show 25 moreShow less0.150.15.10.160.170.180.190.20.200.210.220.230.240.250.260.270.280.290.30.300.40.50.60.70.80.9 |
None known |
cryptonHackage |
0.31 up to 1.0.3, plus listed versions 0.320.330.341.0.01.0.11.0.2 |
1.0.3 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
HSEC-2025-0002 is a vulnerability with no CVSS score yet in cryptonite, published November 14, 2025. No source lists public exploit code. Fixed in crypton 1.0.3.
References
web.archive.org/web/20250917120037/https://portswigger.net/daily-swig/dozens-of-cryptography-libraries-vulnerable-to-private-key-theft
github.com/MystenLabs/ed25519-unsafe-libs
github.com/advisories/GHSA-w5vr-6qhr-36cc
hackage.haskell.org/package/cryptonite-0.30/docs/src/Crypto.PubKey.Ed25519.html
github.com/haskell-crypto/cryptonite/blob/cryptonite-v0.30/cbits/ed25519/ed25519.c
github.com/kazu-yamamoto/crypton/blob/48fb9df2de5ee752196724b081f4d3cdb57576ed/cbits/ed25519/ed25519.c
github.com/kazu-yamamoto/crypton/pull/47