CVE-2024-45193

4.3 MEDIUM

📋 TL;DR

This vulnerability in Matrix libolm allows attackers to create different but valid signatures for the same message due to insufficient Ed25519 signature validation. This affects applications using libolm for cryptographic operations, particularly those implementing the Olm protocol for end-to-end encryption. Only unsupported products are affected according to maintainers.

💻 Affected Systems

Products:
  • Matrix libolm library
  • Applications using libolm for Olm protocol implementation
Versions: Through 3.2.16
Operating Systems: All platforms where libolm is used
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects unsupported products according to maintainer note; libolm is deprecated in favor of vodozemac library.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Signature malleability could enable replay attacks, message tampering, or protocol-level attacks in systems that rely on unique signatures for message validation or non-repudiation.

🟠

Likely Case

Limited practical impact in most deployments since libolm is typically used in Matrix clients where signature malleability doesn't directly compromise encryption, but could affect custom implementations with strict signature uniqueness requirements.

🟢

If Mitigated

Minimal impact if applications don't rely on signature uniqueness or have additional validation layers; Matrix protocol implementations generally handle this gracefully.

🌐 Internet-Facing: LOW
🏢 Internal Only: LOW

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: NO
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires understanding of Ed25519 signature scheme and ability to manipulate cryptographic operations; technical details published in security blog posts.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Fixed in commit 6d4b5b07887821a95b144091c8497d09d377f985

Vendor Advisory: https://gitlab.matrix.org/matrix-org/olm/

Restart Required: Yes

Instructions:

1. Update libolm to version with commit 6d4b5b07887821a95b144091c8497d09d377f985 or later. 2. Rebuild applications using libolm. 3. Restart affected services. 4. Consider migrating to vodozemac library as recommended by maintainers.

🔧 Temporary Workarounds

Implement signature validation wrapper

all

Add additional validation in application code to ensure S < n for Ed25519 signatures

Disable vulnerable functionality

all

If possible, disable or work around signature verification that relies on libolm's implementation

🧯 If You Can't Patch

  • Isolate systems using vulnerable libolm versions from untrusted networks
  • Implement additional monitoring for unusual cryptographic operations or signature validation failures

🔍 How to Verify

Check if Vulnerable:

Check libolm version: if using version 3.2.16 or earlier and commit older than 6d4b5b07887821a95b144091c8497d09d377f985

Check Version:

Check build configuration or package manager for libolm version; for source builds, examine git history for the fix commit

Verify Fix Applied:

Verify libolm includes commit 6d4b5b07887821a95b144091c8497d09d377f985 or check version is newer than 3.2.16

📡 Detection & Monitoring

Log Indicators:

  • Multiple valid signatures for same message
  • Signature validation failures
  • Unexpected cryptographic errors

Network Indicators:

  • Unusual patterns in encrypted message exchanges
  • Repeated messages with different signatures

SIEM Query:

Search for cryptographic operation errors or multiple signature validations for identical content

🔗 References

📤 Share & Export