VU#369093: MLflow dspy and statsmodels flavors bypass pickle deserialization control
MLflow, a platform for managing machine learning lifecycles, has a vulnerability in its dspy and statsmodels model flavors. This issue allows unauthorized execution of pickle deserialization, bypassing a safety control. The dspy flavor has a conditional safety control that can be circumvented if the model path does not end with .pkl. The statsmodels flavor completely lacks this safety control, making it vulnerable by default. Loading models via these flavors requires specifying a model and path in an MLmodel file. Exploiting this vulnerability enables arbitrary remote code execution. An attacker could achieve this by loading a malicious pickle payload through a vulnerable flavor. The attack requires write access to the location from which MLflow models are obtained. This vulnerability was confirmed in MLflow version 3.12.0. MLflow has patched the statsmodels flavor in versions 3.15.0 and later. Users are advised to upgrade their MLflow installations. Until the dspy flavor vulnerability is fixed, users should avoid loading models through it if they want to prevent pickle deserialization.