CVE Vulnerabilities

CVE-2020-22083

Deserialization of Untrusted Data

Published: Dec 17, 2020 | Modified: Nov 21, 2024
CVSS 3.x
9.8
CRITICAL
Source:
NVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2.x
7.5 HIGH
AV:N/AC:L/Au:N/C:P/I:P/A:P
RedHat/V2
RedHat/V3
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N
Ubuntu
MEDIUM

jsonpickle through 1.4.1 allows remote code execution during deserialization of a malicious payload through the decode() function. Note: It has been argued that this is expected and clearly documented behaviour. pickle is known to be capable of causing arbitrary code execution, and must not be used with un-trusted data

Weakness

The product deserializes untrusted data without sufficiently ensuring that the resulting data will be valid.

Affected Software

Name Vendor Start Version End Version
Jsonpickle Jsonpickle_project * 1.4.1 (including)
Jsonpickle Ubuntu bionic *
Jsonpickle Ubuntu groovy *
Jsonpickle Ubuntu hirsute *
Jsonpickle Ubuntu impish *
Jsonpickle Ubuntu kinetic *
Jsonpickle Ubuntu lunar *
Jsonpickle Ubuntu mantic *
Jsonpickle Ubuntu trusty *
Jsonpickle Ubuntu xenial *

Potential Mitigations

  • Make fields transient to protect them from deserialization.
  • An attempt to serialize and then deserialize a class containing transient fields will result in NULLs where the transient data should be. This is an excellent way to prevent time, environment-based, or sensitive variables from being carried over and used improperly.

References