chore(deps): Downgrade rollup ts plugin #1
Security advisories found
1 advisory(ies), 1 unmaintained
Details
Vulnerabilities
RUSTSEC-2024-0344
Timing variability in
curve25519-dalek
'sScalar29::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:
- 32-bit (see L106): <https://godbolt.org/z/zvaWxzvqv>
- 64-bit (see L48): <https://godbolt.org/z/PczYj7Pda>
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:
- 32-bit: <https://godbolt.org/z/jc9j7eb8E>
- 64-bit: <https://godbolt.org/z/x8d46Yfah>
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-2024-0370
proc-macro-error is unmaintained
Details | |
---|---|
Status | unmaintained |
Package | proc-macro-error |
Version | 1.0.4 |
URL | https://gitlab.com/CreepySkeleton/proc-macro-error/-/issues/20 |
Date | 2024-09-01 |
proc-macro-error's maintainer seems to be unreachable, with no commits for 2 years, no releases pushed for 4 years, and no activity on the GitLab repo or response to email.
proc-macro-error also depends on syn 1.x
, which may be bringing duplicate dependencies into dependant build trees.