CVE-2025-3108:
LlamaIndex has Incomplete Documentation of Program Execution related to JsonPickleSerializer component
5
CVSS ScoreBasic Information
Technical Details
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
llama-index-core | pip | >= 0.11.15, <= 0.12.40 | 0.12.41 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability lies in the JsonPickleSerializer
component of the LlamaIndex library, specifically within its deserialize
method. This method attempts to deserialize a given string by first trying pickle.loads()
after base64 decoding. The use of pickle.loads()
on data that could be controlled by an attacker is a well-known security risk, as it can allow for arbitrary code execution. The provided patch from commit 702e4340623092fac4cf2fe95eb9465034856da3
addresses this issue not by removing the dangerous functionality, but by renaming the class to PickleSerializer
and adding a prominent warning in the docstring of the deserialize
method. This change signals to developers that the method is unsafe and should only be used with trusted data. The core vulnerable operation, pickle.loads(base64.b64decode(value))
, remains in the code. Therefore, any runtime profile during an exploit of this vulnerability would show the deserialize
method of the JsonPickleSerializer
(or PickleSerializer
in patched versions) as the key function processing the malicious input.
Vulnerable functions
llama_index.core.workflow.context_serializers.JsonPickleSerializer.deserialize
llama-index-core/llama_index/core/workflow/context_serializers.py