Description
Parsec is a cloud-based application for cryptographically secure file sharing. In versions on the 3.x branch prior to 3.6.0, `libparsec_crypto`, a component of the Parsec application, does not check for weak order point of Curve25519 when compiled with its RustCrypto backend. In practice this means an attacker in a man-in-the-middle position would be able to provide weak order points to both parties in the Diffie-Hellman exchange, resulting in a high probability to for both parties to obtain the same shared key (hence leading to a successful SAS code exchange, misleading both parties into thinking no MITM has occurred) which is also known by the attacker. Note only Parsec web is impacted (as Parsec desktop uses `libparsec_crypto` with the libsodium backend). Version 3.6.0 of Parsec patches the issue.
Problem types
CWE-327: Use of a Broken or Risky Cryptographic Algorithm
CWE-1240: Use of a Cryptographic Primitive with a Risky Implementation
Product status
References
github.com/...-cloud/security/advisories/GHSA-hrc9-gm58-pgj9
github.com/...ommit/197bb6387b49fec872b5e4a04dcdb82b3d2995b2
github.com/...parsec/crates/crypto/src/rustcrypto/private.rs
github.com/...6e49b390e7a/curve25519-dalek/src/montgomery.rs
github.com/...9437e3576e49b390e7a/x25519-dalek/src/x25519.rs