T09 · Insecure Skill Coding Practices
- Location
scripts/cal_backend.py:65- Finding
Sensitive OAuth tokens and local state are created without enforced restrictive permissions
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a coherent calendar assistant, but it stores powerful calendar credentials locally and can allow insecure Nextcloud connections, so users should review it carefully before installation.
Install only if you are comfortable granting calendar access and storing calendar tokens or app passwords on this machine. Use HTTPS-only Nextcloud URLs, prefer a dedicated low-privilege app password, keep the skill directory private to your user account, and revoke Google OAuth or rotate the Nextcloud password if you uninstall or suspect exposure.
scripts/cal_backend.py:65Sensitive OAuth tokens and local state are created without enforced restrictive permissions
scripts/cal_backend.py:136Nextcloud credentials can be transmitted over an unencrypted HTTP connection
requirements-google.txt:1Dependency installation instructions do not authenticate package artifacts with hashes
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
| File / DB | Contents | Location | Retention |
|-----------|----------|----------|-----------|
| `credentials.json` | Google OAuth client definition (client_id, client_secret) | `~/.openclaw/workspace/skills/proactive-claw/` | Until you delete it |
| `token.json` | Google OAuth access + refresh token | `~/.openclaw/workspace/skills/proactive-claw/` | Until you delete it or revoke at myaccount.google.com |
| `config.json` | Your settings, calendar IDs, feature flags | `~/.openclaw/workspace/skills/proactive-claw/` | Until you delete it |
| `memory.db` | Meeting outcomes, rules, policies, contacts, notification logs, energy scores, proactivity scores | `~/.openclaw/workspace/skills/proactive-claw/` | Configurable via `memory_decay_half_life_days` (default: 90 days) |
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
| File / DB | Contents | Location | Retention |
|-----------|----------|----------|-----------|
| `credentials.json` | Google OAuth client definition (client_id, client_secret) | `~/.openclaw/workspace/skills/proactive-claw/` | Until you delete it |
| `token.json` | Google OAuth access + refresh token | `~/.openclaw/workspace/skills/proactive-claw/` | Until you delete it or revoke at myaccount.google.com |
| `config.json` | Your settings, calendar IDs, feature flags | `~/.openclaw/workspace/skills/proactive-claw/` | Until you delete it |
| `memory.db` | Meeting outcomes, rules, policies, contacts, notification logs, energy scores, proactivity scores | `~/.openclaw/workspace/skills/proactive-claw/` | Configurable via `memory_decay_half_life_days` (default: 90 days) |
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
| File / DB | Contents | Location | Retention |
|-----------|----------|----------|-----------|
| `credentials.json` | Google OAuth client definition (client_id, client_secret) | `~/.openclaw/workspace/skills/proactive-claw/` | Until you delete it |
| `token.json` | Google OAuth access + refresh token | `~/.openclaw/workspace/skills/proactive-claw/` | Until you delete it or revoke at myaccount.google.com |
| `config.json` | Your settings, calendar IDs, feature flags | `~/.openclaw/workspace/skills/proactive-claw/` | Until you delete it |
| `memory.db` | Meeting outcomes, rules, policies, contacts, notification logs, energy scores, proactivity scores | `~/.openclaw/workspace/skills/proactive-claw/` | Configurable via `memory_decay_half_life_days` (default: 90 days) |
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
| File / DB | Contents | Location | Retention |
|-----------|----------|----------|-----------|
| `credentials.json` | Google OAuth client definition (client_id, client_secret) | `~/.openclaw/workspace/skills/proactive-claw/` | Until you delete it |
| `token.json` | Google OAuth access + refresh token | `~/.openclaw/workspace/skills/proactive-claw/` | Until you delete it or revoke at myaccount.google.com |
| `config.json` | Your settings, calendar IDs, feature flags | `~/.openclaw/workspace/skills/proactive-claw/` | Until you delete it |
| `memory.db` | Meeting outcomes, rules, policies, contacts, notification logs, energy scores, proactivity scores | `~/.openclaw/workspace/skills/proactive-claw/` | Configurable via `memory_decay_half_life_days` (default: 90 days) |
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
| File / DB | Contents | Location | Retention |
|-----------|----------|----------|-----------|
| `credentials.json` | Google OAuth client definition (client_id, client_secret) | `~/.openclaw/workspace/skills/proactive-claw/` | Until you delete it |
| `token.json` | Google OAuth access + refresh token | `~/.openclaw/workspace/skills/proactive-claw/` | Until you delete it or revoke at myaccount.google.com |
| `config.json` | Your settings, calendar IDs, feature flags | `~/.openclaw/workspace/skills/proactive-claw/` | Until you delete it |
| `memory.db` | Meeting outcomes, rules, policies, contacts, notification logs, energy scores, proactivity scores | `~/.openclaw/workspace/skills/proactive-claw/` | Configurable via `memory_decay_half_life_days` (default: 90 days) |
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
| File / DB | Contents | Location | Retention |
|-----------|----------|----------|-----------|
| `credentials.json` | Google OAuth client definition (client_id, client_secret) | `~/.openclaw/workspace/skills/proactive-claw/` | Until you delete it |
| `token.json` | Google OAuth access + refresh token | `~/.openclaw/workspace/skills/proactive-claw/` | Until you delete it or revoke at myaccount.google.com |
| `config.json` | Your settings, calendar IDs, feature flags | `~/.openclaw/workspace/skills/proactive-claw/` | Until you delete it |
| `memory.db` | Meeting outcomes, rules, policies, contacts, notification logs, energy scores, proactivity scores | `~/.openclaw/workspace/skills/proactive-claw/` | Configurable via `memory_decay_half_life_days` (default: 90 days) |
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
| File / DB | Contents | Location | Retention |
|-----------|----------|----------|-----------|
| `credentials.json` | Google OAuth client definition (client_id, client_secret) | `~/.openclaw/workspace/skills/proactive-claw/` | Until you delete it |
| `token.json` | Google OAuth access + refresh token | `~/.openclaw/workspace/skills/proactive-claw/` | Until you delete it or revoke at myaccount.google.com |
| `config.json` | Your settings, calendar IDs, feature flags | `~/.openclaw/workspace/skills/proactive-claw/` | Until you delete it |
| `memory.db` | Meeting outcomes, rules, policies, contacts, notification logs, energy scores, proactivity scores | `~/.openclaw/workspace/skills/proactive-claw/` | Configurable via `memory_decay_half_life_days` (default: 90 days) |
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
| File / DB | Contents | Location | Retention |
|-----------|----------|----------|-----------|
| `credentials.json` | Google OAuth client definition (client_id, client_secret) | `~/.openclaw/workspace/skills/proactive-claw/` | Until you delete it |
| `token.json` | Google OAuth access + refresh token | `~/.openclaw/workspace/skills/proactive-claw/` | Until you delete it or revoke at myaccount.google.com |
| `config.json` | Your settings, calendar IDs, feature flags | `~/.openclaw/workspace/skills/proactive-claw/` | Until you delete it |
| `memory.db` | Meeting outcomes, rules, policies, contacts, notification logs, energy scores, proactivity scores | `~/.openclaw/workspace/skills/proactive-claw/` | Configurable via `memory_decay_half_life_days` (default: 90 days) |
OAuth setup, token storage, remote calendar creation, and account-identifier collection are highly sensitive backend operations that are not fully reflected in the assistant-style description. This is dangerous because mishandled scopes or storage could expose or modify external calendars and associated identity data.
OAuth setup, token storage, remote calendar creation, and account-identifier collection are highly sensitive backend operations that are not fully reflected in the assistant-style description. This is dangerous because mishandled scopes or storage could expose or modify external calendars and associated identity data.
OAuth setup, token storage, remote calendar creation, and account-identifier collection are highly sensitive backend operations that are not fully reflected in the assistant-style description. This is dangerous because mishandled scopes or storage could expose or modify external calendars and associated identity data.
OAuth setup, token storage, remote calendar creation, and account-identifier collection are highly sensitive backend operations that are not fully reflected in the assistant-style description. This is dangerous because mishandled scopes or storage could expose or modify external calendars and associated identity data.
OAuth setup, token storage, remote calendar creation, and account-identifier collection are highly sensitive backend operations that are not fully reflected in the assistant-style description. This is dangerous because mishandled scopes or storage could expose or modify external calendars and associated identity data.
OAuth setup, token storage, remote calendar creation, and account-identifier collection are highly sensitive backend operations that are not fully reflected in the assistant-style description. This is dangerous because mishandled scopes or storage could expose or modify external calendars and associated identity data.
OAuth setup, token storage, remote calendar creation, and account-identifier collection are highly sensitive backend operations that are not fully reflected in the assistant-style description. This is dangerous because mishandled scopes or storage could expose or modify external calendars and associated identity data.
OAuth setup, token storage, remote calendar creation, and account-identifier collection are highly sensitive backend operations that are not fully reflected in the assistant-style description. This is dangerous because mishandled scopes or storage could expose or modify external calendars and associated identity data.
OAuth setup, token storage, remote calendar creation, and account-identifier collection are highly sensitive backend operations that are not fully reflected in the assistant-style description. This is dangerous because mishandled scopes or storage could expose or modify external calendars and associated identity data.
OAuth setup, token storage, remote calendar creation, and account-identifier collection are highly sensitive backend operations that are not fully reflected in the assistant-style description. This is dangerous because mishandled scopes or storage could expose or modify external calendars and associated identity data.
OAuth setup, token storage, remote calendar creation, and account-identifier collection are highly sensitive backend operations that are not fully reflected in the assistant-style description. This is dangerous because mishandled scopes or storage could expose or modify external calendars and associated identity data.
OAuth setup, token storage, remote calendar creation, and account-identifier collection are highly sensitive backend operations that are not fully reflected in the assistant-style description. This is dangerous because mishandled scopes or storage could expose or modify external calendars and associated identity data.
OAuth setup, token storage, remote calendar creation, and account-identifier collection are highly sensitive backend operations that are not fully reflected in the assistant-style description. This is dangerous because mishandled scopes or storage could expose or modify external calendars and associated identity data.
OAuth setup, token storage, remote calendar creation, and account-identifier collection are highly sensitive backend operations that are not fully reflected in the assistant-style description. This is dangerous because mishandled scopes or storage could expose or modify external calendars and associated identity data.
OAuth setup, token storage, remote calendar creation, and account-identifier collection are highly sensitive backend operations that are not fully reflected in the assistant-style description. This is dangerous because mishandled scopes or storage could expose or modify external calendars and associated identity data.
OAuth setup, token storage, remote calendar creation, and account-identifier collection are highly sensitive backend operations that are not fully reflected in the assistant-style description. This is dangerous because mishandled scopes or storage could expose or modify external calendars and associated identity data.
OAuth setup, token storage, remote calendar creation, and account-identifier collection are highly sensitive backend operations that are not fully reflected in the assistant-style description. This is dangerous because mishandled scopes or storage could expose or modify external calendars and associated identity data.
No suspicious patterns detected.