Upload, download, search, and share files on Google Drive. Create folders and manage permissions. Use when asked to share a file, upload to gdrive, search cloud storage, manage a Drive folder, or organize Google Drive files.
75
94%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
High
Do not use without reviewing
Security
1 high severity finding. You should review these findings carefully before considering using this skill.
The skill handles credentials insecurely by requiring the agent to include secret values verbatim in its generated output. This exposes credentials in the agent’s context and conversation history, creating a risk of data exfiltration.
The skill's examples and setup require placing client_id/client_secret in a config file and passing --client-secret on the command line, which instructs embedding secret values verbatim in files/commands and creates exfiltration risk.
--client-secret
command · 6 sites
The plugin accepts OAuth client_secret via --client-secret command-line argument, which exposes the secret in shell history, process tables, and logs.
[REDACTED]
secret · 15 sites
The plugin stores OAuth client_secret in plaintext config files (~/.config/agent-skills/google.yaml or google-drive.yaml), which can be read by any process with filesystem access.
Low
Low-risk findings.
1 low severity finding. Worth noting, but not necessarily harmful.
The skill exposes the agent to untrusted, user-generated content from public third-party sources, creating a risk of indirect prompt injection. This includes browsing arbitrary URLs, reading social media posts or forum comments, and analyzing content from unknown websites.
The skill directly accesses user/third-party Google Drive content (see SKILL.md and scripts/google-drive.py commands like `files list`, `files search`/fullText queries, and `files download`) so the agent can fetch and read arbitrary user-generated files which could contain instructions that influence subsequent actions (e.g., share, move, upload).
www.googleapis.com
domain · 5 sites
The plugin directly calls the Google Drive API at www.googleapis.com to list, search, download, and read user files, which can contain arbitrary user-generated content that could influence agent behavior.
scripts/google-drive.py
79
DRIVE_SCOPES_READONLY = ["https://www.googleapis.com/auth/drive.readonly"]
scripts/google-drive.py
80
DRIVE_SCOPES_WRITE = ["https://www.googleapis.com/auth/drive"]
scripts/google-drive.py
81
DRIVE_SCOPES_METADATA = ["https://www.googleapis.com/auth/drive.metadata.readonly"]
scripts/google-drive.py
347
return build("drive", "v3", credentials=creds)
scripts/google-drive.py
880
service = build("drive", "v3", credentials=creds)
accounts.google.com
domain · 3 sites
The plugin uses accounts.google.com for OAuth 2.0 authorization flow, which is a third-party domain the plugin fetches during authentication.
scripts/google-drive.py
189
"auth_uri": "https://accounts.google.com/o/oauth2/auth"
scripts/google-drive.py
267
flow = InstalledAppFlow.from_client_config(client_config, scopes)
scripts/google-drive.py
268
creds = flow.run_local_server(port=0) # Opens browser for consent
oauth2.googleapis.com
domain · 3 sites
The plugin uses oauth2.googleapis.com for OAuth 2.0 token exchange during authentication.
scripts/google-drive.py
190
"token_uri": "https://oauth2.googleapis.com/token"
scripts/google-drive.py
267
flow = InstalledAppFlow.from_client_config(client_config, scopes)
scripts/google-drive.py
268
creds = flow.run_local_server(port=0) # Opens browser for consent