Skip to content

Commit 55cd96b

Browse files
committed
advisory: Double Public Key Signing Function Oracle Attack on Ed25519
1 parent 484466d commit 55cd96b

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
```toml
2+
[advisory]
3+
id = "HSEC-2025-0002"
4+
cwe = []
5+
keywords = ["crypto", "historical"]
6+
related = ["GHSA-w5vr-6qhr-36cc"]
7+
8+
[[affected]]
9+
package = "cryptonite"
10+
[[affected.versions]]
11+
introduced = "0.1.0"
12+
13+
[[references]]
14+
type = "ARTICLE"
15+
url = "https://portswigger.net/daily-swig/dozens-of-cryptography-libraries-vulnerable-to-private-key-theft"
16+
[[references]]
17+
type = "ADVISORY"
18+
url = "https://github.com/advisories/GHSA-w5vr-6qhr-36cc"
19+
[[references]]
20+
type = "EVIDENCE"
21+
url = "https://hackage.haskell.org/package/cryptonite-0.30/docs/src/Crypto.PubKey.Ed25519.html#ccryptonite_ed25519_sign"
22+
23+
```
24+
25+
# Double Public Key Signing Function Oracle Attack on Ed25519
26+
27+
The standard specification of Ed25519 message signing involves providing the
28+
algorithm with a message and private key.
29+
30+
The function will use the private key to compute the public key and sign the message.
31+
Some libraries provide a variant of the message signing function that also takes
32+
the pre-computed public key as an input parameter.
33+
34+
Some libraries were allowing arbitrary public keys as inputs without checking
35+
if the input public key corresponds to the input private key.
36+
37+
This shortcoming means that an attacker could use the signing function as an
38+
Oracle, perform crypto-analysis and ultimately get at secrets.
39+
For example, an attacker who can’t access the private key but can access
40+
the signing mechanism through an API call could use several public keys and
41+
messages to gradually build up insights into private key parameters.

0 commit comments

Comments
 (0)