Python Object Deserialization

critical Web Application Scanning Plugin ID 113229


Python Object Deserialization


Serialization is the process of converting an object to a stream of bytes, in order to store or send it through the network. By opposition, deserialization is the process of reconstructing an object from this stream of bytes.

When Python web applications use the `pickle` library to perform user-supplied data deserialization, an attacker could inject a custom serialized Python object in order to achieve a remote code execution on the system or to generate a Denial of Service attack (DoS).


Untrusted data should never be deserialized by the application. If required, a code review should be done to prevent deserialization of arbitrary classes and to harden the whole process.

See Also

Plugin Details

Severity: Critical

ID: 113229

Type: remote

Published: 5/18/2022

Updated: 5/18/2022

Scan Template: api, scan, pci

Risk Information


Risk Factor: High

Base Score: 7.6

Vector: AV:N/AC:H/Au:N/C:C/I:C/A:C

CVSS Score Source: Tenable


Risk Factor: Critical

Base Score: 9

Vector: CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H

CVSS Score Source: Tenable

Reference Information