Open-MMLab MMDetection Remote Code Execution Vulnerability via Unsafe Pickle Deserialization in Distributed Training API

Vulnerability

A remote code execution vulnerability exists in Open-MMLab MMDetection version 3.3.0. The issue arises from the use of the 'pickle.loads()' function in the 'all_reduce_dict()' distributed training API, which lacks proper input validation. This flaw enables an attacker to execute arbitrary code by sending a malicious payload through the distributed training network.

Impact

Exploitation of this vulnerability allows for remote code execution on the victim's machine.

Reproduction

To reproduce this vulnerability, initiate a distributed training session using PyTorch's 'torch.distributed' framework. The victim must run 'all_reduce_dict()' while acting as a receiver in the process group. An attacker can then join the same process group as a sender, broadcasting a dictionary that, when deserialized by 'all_reduce_dict()', executes the attacker's commands on the victim's machine.

Remediation

Users are advised to sanitize data before deserialization or to use more secure deserialization methods, such as 'safetensors' or 'msgpack', in place of 'pickle'.

Added: Jun 9, 2025, 7:46 PM
Updated: Jun 9, 2025, 7:46 PM

Vulnerability Rating

Custom Algorithm
spread
0.0
impact
7.5
exploitability
8.7
remediation
0.0
relevance
0.0
threat
6.4
urgency
2.9
incentive
5.8

Our algorithm analyzes dozens of metrics to generate these 8 key vulnerability categories, which are then combined to calculate the overall risk score.