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
root.io logo minimus.io logo echo.ai logo

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

NameVendorStart VersionEnd Version
Pydrive2Iterative*1.16.2 (excluding)
Pydrive2Iterative1.17.0 (including)1.17.0 (including)
Pydrive2Ubuntubionic*
Pydrive2Ubuntulunar*
Pydrive2Ubuntumantic*
Pydrive2Ubuntuoracular*
Pydrive2Ubuntuplucky*
Pydrive2Ubuntutrusty*
Pydrive2Ubuntuxenial*

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