T09 · Insecure Skill Coding Practices
- Location
scripts/gcal_core.py:337- Finding
Calendar Mutations Execute Without Enforced User Confirmation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a real Google Calendar integration, but its write operations can create, change, or delete calendar events even when confirmation is not actually enforced.
Review carefully before installing. Only use it if you are comfortable granting Google Calendar access, and do not rely on its current confirmation flag to protect against unintended creates, edits, or deletions. Avoid pasting or displaying OAuth credential files in chats or logs, and consider testing with a non-critical calendar first.
scripts/gcal_core.py:337Calendar Mutations Execute Without Enforced User Confirmation
scripts/gcal_license.py:32Any Well-Formed License Key Grants Pro Write Access
docs/GOOGLE_CLOUD_SETUP.md:127Credential Verification Commands May Print the Complete OAuth Client Secret
requirements.txt:1Unbounded and Unhashed Dependency Installation Is Not Reproducible
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
| File | Purpose |
|------|---------|
| `client_secret.json` | OAuth app credentials (you provide) |
| `token.json` | Your access token (auto-generated) |
| `license.json` | Pro license (if purchased) |
## Clawdbot Integration
The documented purpose is calendar management, but the detected behavior includes license activation/deactivation, machine fingerprinting, and local license-state handling that are not clearly disclosed in the main description. This mismatch can hide sensitive side effects from users and reviewers, weakening informed consent and making it harder to assess what local data the skill manipulates.
The file locations section explicitly documents storage of OAuth client credentials, access tokens, and license data in a predictable path under the user's home directory. In a skill that also appears to use file and shell capabilities, predictable local secret storage increases the risk of unauthorized access, leakage, or misuse by other components or compromised prompts.
~/.config/gcal-pro/
├── client_secret.json # OAuth app credentials (user provides)
├── token.json # User's access token (auto-generated)
└── license.json # Pro license (if purchased)
The documented presence of an auto-generated access token on disk means long-lived authentication material may be locally persisted in a predictable location. If the agent environment, shell access, or another tool can read that file, an attacker could gain calendar access and act as the user against Google APIs.
~/.config/gcal-pro/
├── client_secret.json # OAuth app credentials (user provides)
├── token.json # User's access token (auto-generated)
└── license.json # Pro license (if purchased)
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# Google Cloud Project Setup Guide
## Overview
This guide walks you through creating a Google Cloud project, enabling the Calendar API, and configuring OAuth 2.0 to get your `client_secret.json` file.
**Time required:** ~15 minutes
**Prerequisites:** Google account
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# Google Cloud Project Setup Guide
## Overview
This guide walks you through creating a Google Cloud project, enabling the Calendar API, and configuring OAuth 2.0 to get your `client_secret.json` file.
**Time required:** ~15 minutes
**Prerequisites:** Google account
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# Google Cloud Project Setup Guide
## Overview
This guide walks you through creating a Google Cloud project, enabling the Calendar API, and configuring OAuth 2.0 to get your `client_secret.json` file.
**Time required:** ~15 minutes
**Prerequisites:** Google account
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# Google Cloud Project Setup Guide
## Overview
This guide walks you through creating a Google Cloud project, enabling the Calendar API, and configuring OAuth 2.0 to get your `client_secret.json` file.
**Time required:** ~15 minutes
**Prerequisites:** Google account
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# Google Cloud Project Setup Guide
## Overview
This guide walks you through creating a Google Cloud project, enabling the Calendar API, and configuring OAuth 2.0 to get your `client_secret.json` file.
**Time required:** ~15 minutes
**Prerequisites:** Google account
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# Google Cloud Project Setup Guide
## Overview
This guide walks you through creating a Google Cloud project, enabling the Calendar API, and configuring OAuth 2.0 to get your `client_secret.json` file.
**Time required:** ~15 minutes
**Prerequisites:** Google account
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# Google Cloud Project Setup Guide
## Overview
This guide walks you through creating a Google Cloud project, enabling the Calendar API, and configuring OAuth 2.0 to get your `client_secret.json` file.
**Time required:** ~15 minutes
**Prerequisites:** Google account
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# Google Cloud Project Setup Guide
## Overview
This guide walks you through creating a Google Cloud project, enabling the Calendar API, and configuring OAuth 2.0 to get your `client_secret.json` file.
**Time required:** ~15 minutes
**Prerequisites:** Google account
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# Google Cloud Project Setup Guide
## Overview
This guide walks you through creating a Google Cloud project, enabling the Calendar API, and configuring OAuth 2.0 to get your `client_secret.json` file.
**Time required:** ~15 minutes
**Prerequisites:** Google account
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# Google Cloud Project Setup Guide
## Overview
This guide walks you through creating a Google Cloud project, enabling the Calendar API, and configuring OAuth 2.0 to get your `client_secret.json` file.
**Time required:** ~15 minutes
**Prerequisites:** Google account
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# Google Cloud Project Setup Guide
## Overview
This guide walks you through creating a Google Cloud project, enabling the Calendar API, and configuring OAuth 2.0 to get your `client_secret.json` file.
**Time required:** ~15 minutes
**Prerequisites:** Google account
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# Google Cloud Project Setup Guide
## Overview
This guide walks you through creating a Google Cloud project, enabling the Calendar API, and configuring OAuth 2.0 to get your `client_secret.json` file.
**Time required:** ~15 minutes
**Prerequisites:** Google account
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# Google Cloud Project Setup Guide
## Overview
This guide walks you through creating a Google Cloud project, enabling the Calendar API, and configuring OAuth 2.0 to get your `client_secret.json` file.
**Time required:** ~15 minutes
**Prerequisites:** Google account
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# Google Cloud Project Setup Guide
## Overview
This guide walks you through creating a Google Cloud project, enabling the Calendar API, and configuring OAuth 2.0 to get your `client_secret.json` file.
**Time required:** ~15 minutes
**Prerequisites:** Google account
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# Google Cloud Project Setup Guide
## Overview
This guide walks you through creating a Google Cloud project, enabling the Calendar API, and configuring OAuth 2.0 to get your `client_secret.json` file.
**Time required:** ~15 minutes
**Prerequisites:** Google account
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# Google Cloud Project Setup Guide
## Overview
This guide walks you through creating a Google Cloud project, enabling the Calendar API, and configuring OAuth 2.0 to get your `client_secret.json` file.
**Time required:** ~15 minutes
**Prerequisites:** Google account
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# Google Cloud Project Setup Guide
## Overview
This guide walks you through creating a Google Cloud project, enabling the Calendar API, and configuring OAuth 2.0 to get your `client_secret.json` file.
**Time required:** ~15 minutes
**Prerequisites:** Google account
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# Google Cloud Project Setup Guide
## Overview
This guide walks you through creating a Google Cloud project, enabling the Calendar API, and configuring OAuth 2.0 to get your `client_secret.json` file.
**Time required:** ~15 minutes
**Prerequisites:** Google account
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# Google Cloud Project Setup Guide
## Overview
This guide walks you through creating a Google Cloud project, enabling the Calendar API, and configuring OAuth 2.0 to get your `client_secret.json` file.
**Time required:** ~15 minutes
**Prerequisites:** Google account
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
⚠️ NEVER commit these files to git:
client_secret.json — Your app's credentialstoken.json — User's access tokensAdd to .gitignore:
The suggested .gitignore entry *.json is overly broad and can cause developers to ignore all JSON files in the repository, potentially hiding security-relevant configuration, policy, or manifest changes from version control and code review. While not direct credential theft, this weakens auditability and can lead to accidental omission of important non-secret files.
Add to .gitignore:
client_secret.json
token.json
*.json
No suspicious patterns detected.