August 14th, 2024

Security Issues in Matrix's Olm Library

The Matrix's Olm library has critical cryptographic vulnerabilities, including cache-timing attacks and malleable signatures. The security team will not address these issues, advising users to switch to the vodozemac library.

Read original articleLink Icon
Security Issues in Matrix's Olm Library

The Matrix's Olm library has been found to contain several cryptographic vulnerabilities, as disclosed by a researcher who identified these issues with minimal effort. The vulnerabilities include a cache-timing attack in the AES implementation, malleability in Ed25519 signatures, and timing leakage in base64 decoding of private key material. The researcher reported these findings to the Matrix security team, which confirmed receipt but ultimately decided not to address the issues due to the library's deprecation. The AES vulnerability allows attackers to infer sensitive values based on timing differences, while the malleability of Ed25519 signatures could potentially lead to issues in specific use cases, particularly in cryptocurrency contexts. The base64 decoding flaw similarly exposes sensitive data through timing attacks. The Matrix team has recommended that clients transition to a new library, vodozemac, instead of fixing the existing issues in libolm. The researcher emphasizes that clients still using libolm should consider these vulnerabilities as critical until they transition to a more secure alternative.

- Matrix's Olm library has multiple cryptographic vulnerabilities.

- Vulnerabilities include cache-timing attacks, malleable signatures, and timing leakage.

- The Matrix security team will not fix these issues due to the library's deprecation.

- Users are advised to transition to the vodozemac library for improved security.

- The researcher highlights the importance of addressing these vulnerabilities promptly.

Link Icon 4 comments
By @Kye - 8 months
>> "3 of the 16 clients surveyed use the new vodozemac library. 10 still use libolm, and 3 don’t appear to implement end-to-end encryption at all."

This soesn't bode well for it as an option for secure messaging. Wouldn't be a problem if I didn't see people suggesting it as one.

By @201984 - 8 months
In general, can timing attacks on a vulnerable implementation be prevented if sonething else guarantees the operation takes constant time?

For example, if I add a sleep after a non-constant-time operation to ensure it always takes 1s, would that prevent timing attacks? At least with this you can use a faster algorithm, and let the OS do useful work with the rest of the time.

By @sixthDot - 8 months
Might be slightly OT, but let's go. I think that this highly relates to how translations units are organized in a software project. At some point I think that mutual dependency is not a problem as long as the units form a unique "package".
By @pluto_modadic - 8 months
oh. ohhh damn. matrix... well then.