Unsafe deserialization in Cleanlab Datalab allows arbitrary code execution
A vulnerability in Cleanlab Datalab versions 2.4.0 and newer allows arbitrary code execution through unsafe deserialization of pickle files. An attacker could exploit this by delivering a maliciously crafted directory to a victim user.
What happened
A vulnerability exists in Cleanlab versions v2.4.0 or newer in the deserialize function of the _Serializer class in cleanlab/datalab/internal/serialize.py. The vulnerability allows unsafe deserialization of untrusted data through use of pickle.load().
An attacker could exploit this by creating a directory with a maliciously crafted datalabs.pkl file and sending it to a victim. When the victim loads the directory using Datalab.load(), the vulnerable code instantiates the _Serializer class and calls the deserialize function, which deserializes the malicious pickle file.
Reported impact
The vulnerability has a CVSS score of 7.8 and could allow arbitrary code execution. The impact includes high confidentiality, integrity, and availability impact.
Index analysis
The vulnerability is categorized as CWE-502: Deserialization of Untrusted Data.
Classification
Sources and evidence
This record was researched and written by the Index, based on the following original reporting.