CVE-2022-50237
`ed25519-dalek` Double Public Key Signing Function Oracle Attack
The ed25519-dalek crate before 2 for Rust allows a double public key signing function oracle attack. The Keypair implementation leads to a simple computation for extracting a private key.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- High
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
5.9
The ed25519-dalek crate before 2 for Rust allows a double public key signing function oracle attack. The Keypair implementation leads to a simple computation for extracting a private key.
- Record
CVE-2022-50237- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N - Weakness
- CWE-497
- Updated
- 2026-11-02
EUVDEUVD-2022-55212
5.9
The ed25519-dalek crate before 2 for Rust allows a double public key signing function oracle attack. The Keypair implementation leads to a simple computation for extracting a private key.
- Record
EUVD-2022-55212- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-w5vr-6qhr-36cc
5.9
`ed25519-dalek` Double Public Key Signing Function Oracle Attack
Versions of ed25519-dalek prior to v2.0 model private and public keys as separate types which can be assembled into a Keypair, and also provide APIs for serializing and deserializing 64-byte private/public keypairs.
Such APIs and serializations are inherently unsafe as the public key is one of the inputs used in the deterministic computation of the S part of the signature, but not in the R value. An adversary could somehow use the signing function as an oracle that allows arbitrary public keys as input can obtain two signatures for the same message sharing the same R and only differ on the S part.
Unfortunately, when this happens, one can easily extract the private key.
Revised public APIs in v2.0 of ed25519-dalek do NOT allow a decoupled private/public keypair as signing input, except as part of specially labeled "hazmat" APIs which are clearly labeled as being dangerous if misused.
- Record
GHSA-w5vr-6qhr-36cc- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N - Weakness
- CWE-497
- Updated
- 2026-11-02
NVD
5.9
The ed25519-dalek crate before 2 for Rust allows a double public key signing function oracle attack. The Keypair implementation leads to a simple computation for extracting a private key.
- Record
CVE-2022-50237- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N - Weakness
- CWE-497
- Updated
- 2026-11-02
OSVGHSA-w5vr-6qhr-36cc
5.9
`ed25519-dalek` Double Public Key Signing Function Oracle Attack
Versions of ed25519-dalek prior to v2.0 model private and public keys as separate types which can be assembled into a Keypair, and also provide APIs for serializing and deserializing 64-byte private/public keypairs.
Such APIs and serializations are inherently unsafe as the public key is one of the inputs used in the deterministic computation of the S part of the signature, but not in the R value. An adversary could somehow use the signing function as an oracle that allows arbitrary public keys as input can obtain two signatures for the same message sharing the same R and only differ on the S part.
Unfortunately, when this happens, one can easily extract the private key.
Revised public APIs in v2.0 of ed25519-dalek do NOT allow a decoupled private/public keypair as signing input, except as part of specially labeled "hazmat" APIs which are clearly labeled as being dangerous if misused.
- Record
GHSA-w5vr-6qhr-36cc- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N - Weakness
- CWE-497
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2022-50237
5.9
The ed25519-dalek crate before 2 for Rust allows a double public key signing function oracle attack. The Keypair implementation leads to a simple computation for extracting a private key.
- Record
UBUNTU-CVE-2022-50237- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N - Updated
- 2026-11-02
OSVopenSUSE-SU-2026:11838-1 No score
pijul-1.0.0~beta.23-1.1 on GA media
These are all security issues fixed in the pijul-1.0.0~beta.23-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11838-1- Updated
- 2026-11-02
OSVRUSTSEC-2022-0093 No score
Double Public Key Signing Function Oracle Attack on `ed25519-dalek`
Versions of ed25519-dalek prior to v2.0 model private and public keys as
separate types which can be assembled into a Keypair, and also provide APIs
for serializing and deserializing 64-byte private/public keypairs.
Such APIs and serializations are inherently unsafe as the public key is one of
the inputs used in the deterministic computation of the S part of the signature,
but not in the R value. An adversary could somehow use the signing function as
an oracle that allows arbitrary public keys as input can obtain two signatures
for the same message sharing the same R and only differ on the S part.
Unfortunately, when this happens, one can easily extract the private key.
Revised public APIs in v2.0 of ed25519-dalek do NOT allow a decoupled
private/public keypair as signing input, except as part of specially labeled
"hazmat" APIs which are clearly labeled as being dangerous if misused.
- Record
RUSTSEC-2022-0093- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
ed25519-dalekcrates.io |
before 2.0.0 | 2.0.0 |
ed25519-dalekcrates.io |
0.0.0-0 up to 2.0.0 | 2.0.0 |
rust-curve25519-dalekUbuntu:25.10 |
All versions, plus listed versions 4.1.3+20240618+dfsg-9 |
None known |
rust-curve25519-dalekUbuntu:26.10 |
All versions, plus listed versions 4.2.0+dfsg-1build14.2.0+dfsg-45.0.0+dfsg-1 |
None known |
rust-curve25519-dalekUbuntu:26.04:LTS |
All versions, plus listed versions 4.1.3+20240618+dfsg-94.2.0+dfsg-14.2.0+dfsg-1build1 |
None known |
pijulopenSUSE:Tumbleweed From an advisory covering 3 CVEs |
before 1.0.0~beta.23-1.1 | 1.0.0~beta.23-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2022-50237 is a medium vulnerability (CVSS 5.9) in Dalek-cryptography Ed25519-dalek, published June 11, 2022. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.22%, the 12th percentile. Fixed in ed25519-dalek 2.0.0.