CVE-2024-33783

6.5 MEDIUM

📋 TL;DR

CVE-2024-33783 is a buffer overflow vulnerability in MP-SPDZ v0.3.8's SilentPprf.cpp that allows attackers to trigger a segmentation fault via crafted messages, causing Denial of Service. This affects systems running MP-SPDZ v0.3.8 for secure multi-party computation operations. The vulnerability is exploitable by anyone who can send messages to the vulnerable component.

💻 Affected Systems

Products:
  • MP-SPDZ
Versions: v0.3.8
Operating Systems: Linux, macOS, Windows
Default Config Vulnerable: ⚠️ Yes
Notes: All installations of MP-SPDZ v0.3.8 are vulnerable regardless of configuration. The vulnerability is in the core library code.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete service disruption of MP-SPDZ processes, potentially affecting dependent applications and services that rely on secure multi-party computation.

🟠

Likely Case

Targeted DoS attacks against MP-SPDZ instances, causing service interruptions and requiring process restarts.

🟢

If Mitigated

Limited impact with proper network segmentation and input validation, though DoS could still affect isolated components.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Proof-of-concept available in the referenced GitHub repository. Exploitation requires sending crafted messages to the vulnerable function.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: v0.3.9 or later

Vendor Advisory: https://github.com/data61/MP-SPDZ

Restart Required: Yes

Instructions:

1. Update MP-SPDZ to v0.3.9 or later using git pull or downloading latest release. 2. Recompile the software. 3. Restart all MP-SPDZ processes.

🔧 Temporary Workarounds

Input Validation Wrapper

all

Implement message validation before passing to osuCrypto::SilentMultiPprfReceiver::expand function

# Custom wrapper function to validate input size and format before calling expand()

Process Isolation

linux

Run MP-SPDZ in isolated containers with resource limits to contain DoS impact

docker run --memory=512m --cpus=1 -it mp-spdz-container

🧯 If You Can't Patch

  • Implement network-level filtering to block suspicious messages to MP-SPDZ services
  • Deploy monitoring with automatic restart for crashed MP-SPDZ processes

🔍 How to Verify

Check if Vulnerable:

Check if MP-SPDZ version is exactly 0.3.8 by examining the source code or build configuration

Check Version:

grep 'VERSION' MP-SPDZ/configure.ac | head -1

Verify Fix Applied:

Verify version is 0.3.9 or later and test with the provided PoC to confirm no segmentation fault occurs

📡 Detection & Monitoring

Log Indicators:

  • Segmentation fault errors in system logs
  • MP-SPDZ process crashes with signal 11 (SIGSEGV)
  • Abnormal termination of SilentPprf-related processes

Network Indicators:

  • Unusually formatted messages to MP-SPDZ services
  • Burst of connection attempts followed by service unavailability

SIEM Query:

process_name:"MP-SPDZ" AND (event_id:"1000" OR signal:"11" OR error:"segmentation fault")

🔗 References

📤 Share & Export