-
Notifications
You must be signed in to change notification settings - Fork 284
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reporting Multiple Vulnerabilities in MP-SPDZ Detected via Active Adversary Simulation #1382
Comments
Thank you for your efforts. You should find that that 6ce15d4 fixes 1, 2, and 4-7. However, I'm not sure what to make of 3 as it's unclear where it happens. It might be Names::setup_names() where party 0 sends the hostnames of all parties as part of the setup procedure. If this is true, I don't think it can be fixed. One could set a limit on the number of parties but the result would be an abort either way. |
Thank you for your response. Upon a careful examination of the MP-SPDZ code, I suppose that vulnerability 3 might originate from the octetStream::resize_precise(size_t l) function in MP-SPDZ/Tools/octetStream.h. It appears that the parameter l could be manipulated by an active adversary. Here's a potential call sequence: |
|
Sorry, I made a mistake. |
I don't think that that's the case either. |
Hello, Keller.
During a security review conducted through the simulation of an active adversary, I identified seven critical vulnerabilities in spdz2k-party.x (commit version a4f08e6). Given MP-SPDZ's extensive use in both academic and industrial spheres, addressing these vulnerabilities should be crucial for maintaining the integrity of applications built on this framework.
Below are the details of the identified vulnerabilities:
1. stack-buffer-overflow in octetStream.cpp
Description
stack-buffer-overflow MP-SPDZ/Tools/octetStream.cpp:147:3 in octetStream::get_bytes
Replay
Please refer to Vulnerabilities-in-MPC-Framework and stack-buffer-overflow in octetStream.cpp.
ASAN
2. stack-buffer-overflow in OTExtensionWithMatrix.cpp
Description
stack-buffer-overflow MP-SPDZ/OT/OTExtensionWithMatrix.cpp:134:5 in OTExtensionWithMatrix::extend
Replay
Please refer to Vulnerabilities-in-MPC-Framework and stack-buffer-overflow-OTExtensionWithMatrix.
ASAN
3. Requested allocation size exceeds maximum supported size
Description
requested allocation size 0x12a0000000000040 (0x12a0000000001040 after adjustments for alignment, red zones etc.) exceeds the maximum supported size of 0x10000000000
While the AddressSanitizer does not specify a precise location for this vulnerability, it appears that an active adversary can manipulate the memory allocation size of the parties, leading to potential security risks.
Replay
Please refer to Vulnerabilities-in-MPC-Framework and requested-allocation-size.
ASAN
4-7. SEGV in SilentPprf.cpp
Description
Vulnerabilities 4-7 are identified within the deps/libOTe/libOTe/Tools/SilentPprf.cpp file. I am not sure whether it is possible to address these vulnerabilities directly within MP-SPDZ, since It appears these issues are inherently related to the libOTe library. I will reproduce these vulnerabilities by only using libOTe and also report them to the libOTe developers.
Replay
Please refer to Vulnerabilities-in-MPC-Framework and
-SEGV-SlientPprf
-SEGV-SlientPprf-2
-SEGV-SlientPprf-3
-SEGV-SlientPprf-4
ASAN
Credit
Guopeng Lin (Fudan University)
The text was updated successfully, but these errors were encountered: