Skip to content

Hotfix wasm-v1.3.1 (#1389) #5

Hotfix wasm-v1.3.1 (#1389)

Hotfix wasm-v1.3.1 (#1389) #5

GitHub Actions / Security audit failed Jul 8, 2024 in 0s

Security advisories found

1 advisory(ies), 3 unmaintained, 1 other

Details

Vulnerabilities

RUSTSEC-2024-0344

Timing variability in curve25519-dalek's Scalar29::sub/Scalar52::sub

Details
Package curve25519-dalek
Version 3.2.0
URL dalek-cryptography/curve25519-dalek#659
Date 2024-06-18
Patched versions >=4.1.3

Timing variability of any kind is problematic when working with potentially secret values such as
elliptic curve scalars, and such issues can potentially leak private keys and other secrets. Such a
problem was recently discovered in curve25519-dalek.

The Scalar29::sub (32-bit) and Scalar52::sub (64-bit) functions contained usage of a mask value
inside a loop where LLVM saw an opportunity to insert a branch instruction (jns on x86) to
conditionally bypass this code section when the mask value is set to zero as can be seen in godbolt:

A similar problem was recently discovered in the Kyber reference implementation:

<https://groups.google.com/a/list.nist.gov/g/pqc-forum/c/hqbtIGFKIpU/m/cnE3pbueBgAJ>

As discussed on that thread, one portable solution, which is also used in this PR, is to introduce a
volatile read as an optimization barrier, which prevents the compiler from optimizing it away.

The fix can be validated in godbolt here:

The problem was discovered and the solution independently verified by
Alexander Wagner <[email protected]> and Lea Themint <[email protected]> using
their DATA tool:

<https://github.com/Fraunhofer-AISEC/DATA>

Warnings

RUSTSEC-2021-0139

ansi_term is Unmaintained

Details
Status unmaintained
Package ansi_term
Version 0.12.1
URL ogham/rust-ansi-term#72
Date 2021-08-18

The maintainer has advised that this crate is deprecated and will not receive any maintenance.

The crate does not seem to have much dependencies and may or may not be ok to use as-is.

Last release seems to have been three years ago.

Possible Alternative(s)

The below list has not been vetted in any way and may or may not contain alternatives;

Dependency Specific Migration(s)

RUSTSEC-2021-0065

anymap is unmaintained.

Details
Status unmaintained
Package anymap
Version 0.12.1
URL chris-morgan/anymap#37
Date 2021-05-07

The anymap crate does not appear to be maintained, and the most recent
published version 0.12.1 includes a soundness bug. This has been
fixed a few years ago, but
was never released.

RUSTSEC-2021-0141

dotenv is Unmaintained

Details
Status unmaintained
Package dotenv
Version 0.15.0
URL dotenv-rs/dotenv#74
Date 2021-12-24

dotenv by description is meant to be used in development or testing only.

Using this in production may or may not be advisable.

Alternatives

The below may or may not be feasible alternative(s):