oxidecomputer / pki-playground

Tool for generating non-trivial X.509 certificate chains
Mozilla Public License 2.0
29 stars 2 forks source link

Update Rust crate ed25519-dalek to 2.0.0 [SECURITY] - autoclosed #43

Closed renovate[bot] closed 10 months ago

renovate[bot] commented 1 year ago

Mend Renovate

This PR contains the following updates:

Package Type Update Change
ed25519-dalek dependencies patch 2.0.0-rc.2 -> 2.0.0

GitHub Vulnerability Alerts

GHSA-w5vr-6qhr-36cc

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.


Release Notes

dalek-cryptography/ed25519-dalek (ed25519-dalek) ### [`v2.0.0`](https://togithub.com/dalek-cryptography/ed25519-dalek/blob/HEAD/CHANGELOG.md#200) ##### Breaking changes - Bump MSRV from 1.41 to 1.60.0 - Bump Rust edition - Bump `signature` dependency to 2.0 - Make `digest` an optional dependency - Make `zeroize` an optional dependency - Make `rand_core` an optional dependency - [curve25519 backends] are now automatically selected - [curve25519 backends] are now overridable via cfg instead of using additive features - Make all batch verification deterministic remove `batch_deterministic` (PR [#​256](https://togithub.com/dalek-cryptography/ed25519-dalek/pull/256)) - Rename `Keypair` → `SigningKey` and `PublicKey` → `VerifyingKey` - Remove default-public `ExpandedSecretKey` API (PR [#​205](https://togithub.com/dalek-cryptography/ed25519-dalek/pull/205)) - Make `hazmat` feature to expose `ExpandedSecretKey`, `raw_sign()`, `raw_sign_prehashed()`, `raw_verify()`, and `raw_verify_prehashed()` [curve25519 backends]: https://togithub.com/dalek-cryptography/curve25519-dalek/#backends ##### Other changes - Add `Context` type for prehashed signing - Add `VerifyingKey::{verify_prehash_strict, is_weak}` - Add `pkcs` feature to support PKCS [#​8](https://togithub.com/dalek-cryptography/ed25519-dalek/issues/8) (de)serialization of `SigningKey` and `VerifyingKey` - Add `fast` feature to include basepoint tables - Add tests for validation criteria - Impl `DigestSigner`/`DigestVerifier` for `SigningKey`/`VerifyingKey`, respectively - Impl `Hash` for `VerifyingKey` - Impl `Clone`, `Drop`, and `ZeroizeOnDrop` for `SigningKey` - Remove `rand` dependency - Improve key deserialization diagnostics ### [`v2.0.0-rc.3`](https://togithub.com/dalek-cryptography/ed25519-dalek/compare/2.0.0-rc.2...2.0.0-rc.3) [Compare Source](https://togithub.com/dalek-cryptography/ed25519-dalek/compare/2.0.0-rc.2...2.0.0-rc.3)

Configuration

📅 Schedule: Branch creation - "" in timezone America/Los_Angeles, Automerge - "after 8pm,before 6am" in timezone America/Los_Angeles.

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.



This PR has been generated by Mend Renovate. View repository job log here.