CVE Vulnerabilities

CVE-2023-49297

Deserialization of Untrusted Data

Published: Dec 05, 2023 | Modified: Nov 21, 2024
CVSS 3.x
7.8
HIGH
Source:
NVD
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
CVSS 2.x
RedHat/V2
RedHat/V3
Ubuntu
MEDIUM

PyDrive2 is a wrapper library of google-api-python-client that simplifies many common Google Drive API V2 tasks. Unsafe YAML deserilization will result in arbitrary code execution. A maliciously crafted YAML file can cause arbitrary code execution if PyDrive2 is run in the same directory as it, or if it is loaded in via LoadSettingsFile. This is a deserilization attack that will affect any user who initializes GoogleAuth from this package while a malicious yaml file is present in the same directory. This vulnerability does not require the file to be directly loaded through the code, only present. This issue has been addressed in commit c57355dc which is included in release version 1.16.2. Users are advised to upgrade. There are no known workarounds for this vulnerability.

Weakness

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

Affected Software

Name Vendor Start Version End Version
Pydrive2 Iterative * 1.16.2 (excluding)
Pydrive2 Iterative 1.17.0 (including) 1.17.0 (including)
Pydrive2 Ubuntu bionic *
Pydrive2 Ubuntu lunar *
Pydrive2 Ubuntu mantic *
Pydrive2 Ubuntu oracular *
Pydrive2 Ubuntu trusty *
Pydrive2 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