google-workspace

ISSUES FOUND max severity HIGHSkillSpector Caution 30 registry clawhub.ai last scanned 1 scan

4 findings (2 high, 2 medium), mainly command injection, data exfiltration. Most recent scan 2026-02-06.

This Google Workspace skill presents HIGH security risks primarily due to insecure credential management practices. The skill requests extremely broad OAuth scopes across all Google Workspace services and stores credentials in plaintext files (credentials.json, token.pickle) in the working directory with no encryption or access controls. This creates a high-value target for credential theft. Additional concerns include arbitrary code execution risks via python3 -c patterns with user-controlled placeholders, missing security metadata (allowed-tools, license, compatibility), and unpinned dependencies. While the skill's core functionality (Google Workspace integration) is legitimate, the implementation lacks fundamental security controls for handling sensitive credentials and user data. The skill requires significant security hardening before safe deployment.

Scanner's overall assessment (LLM analyzer)

Second scanner: NVIDIA SkillSpector

Independent static run, no language model, over the same files as the Cisco scan above. How the two scanners compare across the whole corpus: Two scanners, one corpus.

What this skill does

Interact with Google Workspace services - Gmail, Calendar, Contacts, Sheets, and Docs. Send emails, manage calendar events, read/write spreadsheets, create documents, and sync contacts.

Package
1 file, 13 KB
SKILL.md
1271 words, 12+ sections
Code
None. Instructions only.
Requires
bins: python3

SKILL.md covers: Google Workspace CLI · Setup · 1. Install dependencies · 2. Create Google Cloud Project · 3. Authentication helper · Gmail · List recent emails · Read email by ID · Send email · Search emails · Search queries: from:, to:, subject:, after:, before:, has:attachment, is:unread · List labels

Findings

HIGH Hardcoded Broad OAuth Scopes with Persistent Token Storage Data Exfiltrationllm

The skill requests extremely broad OAuth scopes including full Gmail access (modify), Calendar, Contacts, Spreadsheets, Documents, and Drive access. These credentials are stored in a local 'token.pickle' file with no encryption or access controls. This creates a high-value target for credential theft - any malicious process or skill could read token.pickle and gain full access to the user's Google Workspace data.

SKILL.md

SCOPES = ['https://www.googleapis.com/auth/gmail.modify', 'https://www.googleapis.com/auth/calendar', 'https://www.googleapis.com/auth/contacts', 'https://www.googleapis.com/auth/spreadsheets', 'https://www.googleapis.com/auth/documents', 'https://www.googleapis.com/auth/drive']

with open('token.pickle', 'wb') as token:
    pickle.dump(creds, token)
Remediation: 1. Request minimal scopes needed for each operation (principle of least privilege). 2. Use secure credential storage (OS keychain/credential manager). 3. Implement token encryption at rest. 4. Add token expiration and rotation policies. 5. Warn users about the broad access being granted. 6. Consider per-operation OAuth flows instead of requesting all scopes upfront.
HIGH Unencrypted Credential File Storage in Working Directory Data Exfiltrationllm

OAuth credentials (credentials.json) and access tokens (token.pickle) are stored as plaintext files in the working directory with no access controls, encryption, or secure storage mechanisms. Any process or user with file system access can steal these credentials and impersonate the user across all Google Workspace services.

SKILL.md

Download `credentials.json` to your working directory

if os.path.exists('token.pickle'):
    with open('token.pickle', 'rb') as token:
        creds = pickle.load(token)
Remediation: 1. Store credentials in OS-specific secure storage (macOS Keychain, Windows Credential Manager, Linux Secret Service). 2. Set restrictive file permissions (chmod 600). 3. Encrypt sensitive files at rest. 4. Use environment variables or secure vaults for credential paths. 5. Add warnings about credential security in documentation.
MEDIUM CODE EXECUTION detected by YARA Command Injectionstatic

Detects dangerous code execution patterns in agent skills (Python/Bash): pickle.load(

SKILL.md:39

creds = pickle.load(token)
Remediation: Review and remove code execution pattern
MEDIUM Arbitrary Code Execution via Python -c with User-Controlled Input Command Injectionllm

The skill instructs users to execute Python code via 'python3 -c' with placeholders like MESSAGE_ID that could be replaced with malicious input. If an agent or user substitutes these placeholders with untrusted data, it could lead to command injection. The pattern of embedding code in shell commands creates injection risk.

SKILL.md

python3 -c "
from google_auth import get_service
import base64

gmail = get_service('gmail', 'v1')
msg = gmail.users().messages().get(userId='me', id='MESSAGE_ID', format='full').execute()
Remediation: 1. Use proper Python scripts instead of inline -c execution. 2. Validate and sanitize all user inputs before substitution. 3. Use parameterized queries/API calls instead of string interpolation. 4. Implement input validation for MESSAGE_ID and other placeholders. 5. Provide safe wrapper scripts that handle user input securely.

What is in the package

FileKindSize
SKILL.mddoc13 KB

External hosts referenced

www.googleapis.com console.cloud.google.com

Hostnames that appear in the skill's files. Referencing a host is not a finding; compare against the findings above and the skill's stated purpose.

Package contents recorded 2026-10-22. The scan above ran against the version current at scan time; the two can differ if the skill has since been updated.

What we checked

What we did not check

Sources