Back to skill

Security audit

Google Photos Manager for OpenClaw

Security checks across malware telemetry and agentic risk

Overview

This is a straightforward Google Photos helper that needs OAuth access and stores a reusable local token, so users should protect the token file.

Install only if you are comfortable granting this script Google Photos OAuth access. Use your own OAuth client credentials, review the Google consent scopes, store the token file somewhere private, do not use token files from other people, and revoke the app's Google access when you no longer need it.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

Description-Behavior Mismatch

Medium
Confidence
83% confidence
Finding
The requested OAuth scopes include photoslibrary.sharing even though the stated skill purpose is upload, album creation, and listing library content. Over-broad scopes increase blast radius if the token is exposed or the skill is later extended, because it grants sharing-related capabilities beyond the minimally necessary permissions.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The OAuth credentials are serialized to a local pickle file without any warning, storage-hardening, or permission controls. If the host is multi-user or the working directory is exposed, another process or user could steal the token and access the user's Google Photos within the granted scopes.

Credential Access

High
Category
Privilege Escalation
Content
# Path for credentials and token
# These are environment-specific and should be handled with care in a public skill
# Users would normally provide their own credentials.json
CREDENTIALS_FILE = 'credentials.json'
TOKEN_FILE = 'token_photos.pickle'

def get_credentials(credentials_path, token_path):
Confidence
86% confidence
Finding
credentials.json

VirusTotal

65/65 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.