Google Photos Manager for OpenClaw
Analysis
The skill mostly matches its Google Photos purpose, but it should be reviewed because it stores and reloads OAuth tokens with Python pickle, which can execute code if the token file is unsafe.
Findings (3)
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
Checks for instructions or behavior that redirect the agent, misuse tools, execute unexpected code, cascade across systems, exploit user trust, or continue outside the intended task.
if os.path.exists(token_path):
with open(token_path, 'rb') as token:
creds = pickle.load(token)The script deserializes the local token file with pickle. Pickle files can execute code when loaded, so a malicious or tampered token file could cause code execution when the skill runs.
#!/home/jorge/.openclaw/workspace/skills/google-photos/venv/bin/python3 import requests from google_auth_oauthlib.flow import InstalledAppFlow
The script references a specific developer-local virtualenv path and depends on external Python packages, while the supplied install spec declares no install mechanism.
Checks whether tool use, credentials, dependencies, identity, account access, or inter-agent boundaries are broader than the stated purpose.
SCOPES = ['https://www.googleapis.com/auth/photoslibrary.appendonly',
'https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata',
'https://www.googleapis.com/auth/photoslibrary.sharing']The skill requests OAuth scopes that allow it to upload/create Google Photos content, read app-created Google Photos data, and use sharing-related Google Photos permissions.
