Back to skill

Security audit

Calendar

Security checks for vulnerabilities and agentic risk

Overview

This calendar skill does what it claims, but users should handle calendar credentials carefully and confirm destructive actions before deleting events.

Install only if you are comfortable granting gcalcli access to your calendar. Use a virtual environment, protect API keys and CalDAV passwords, avoid printing credentials or sensitive event details, and require a review of matched events before running any delete command.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:13
Finding
Unpinned Third-Party Package Installation## Vulnerability Details **File Location**: `SKILL.md:13-17` and `SKILL.md:52-56` **Vulnerability Type**: Unpinned third-party dependency **Risk Level**: Medium The skill declares and recommends installing `gcalcli` from PyPI without pinning a reviewed version or verifying package integrity. **Complete vulnerable code snippets:** ```yaml "id": "pip", "kind": "pip", "package": "gcalcli", "bins": ["gcalcli"], "label": "Install gcalcli (pip)", ``` ```markdown ## Install ```bash pip install gcalcli ``` ``` ### Technical Analysis The command `pip install gcalcli` resolves the package version and its transitive dependencies at installation time. No exact version, dependency lock file, package hash, or trusted repository configuration is supplied. Consequently, the code installed by following the skill can differ from the code originally reviewed. If the upstream package, a transitive dependency, maintainer account, or package-distribution channel is compromised, pip may install attacker-controlled code. Such code can execute during installation or when the documented `gcalcli` command is invoked. ### Attack Path 1. An attacker compromises a future `gcalcli` release, one of its transitive dependencies, or the relevant package-publishing account or distribution channel. 2. A user or agent follows the skill instruction and runs `pip install gcalcli`. 3. Pip resolves and downloads the compromised release because the skill does not constrain the version or verify hashes. 4. Attacker-controlled code executes during package installation or subsequent invocation of `gcalcli`. 5. The malicious code operates with the privileges of the installing or invoking user and can attempt to access data and credentials available to that process. ### Impact Assessment Successful exploitation could provide arbitrary code execution with the privileges of the user ...[truncated 396 chars]
Remediation
## Remediation Suggestions - Pin `gcalcli` to a specifically reviewed version rather than allowing unrestricted latest-version resolution. - Maintain a lock file covering all transitive dependencies. - Require package hashes, such as through a hash-locked requirements file and `pip install --require-hashes`. - Install the dependency from the official, explicitly configured package index. - Review package provenance, release signatures or attestations, and dependency changes before updating the pinned version. - Install the package in an isolated virtual environment under a non-privileged account. - Limit the calendar credentials and permissions available to the process to the minimum required for the requested operation.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (2)

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill explicitly documents deletion of calendar events via `gcalcli delete "Team sync"` without any warning that the action is destructive or guidance to confirm the target before execution. In an agent setting, a model could invoke this command on behalf of a user with ambiguous input, causing unintended deletion of personal or business calendar entries.

Missing User Warnings

Low
Confidence
84% confidence
Finding
The skill references sensitive calendar authentication material (`GOOGLE_CALENDAR_API_KEY`, `CALDAV_URL`, `CALDAV_USER`, `CALDAV_PASS`) without any guidance on secure storage, least-privilege use, or avoiding accidental disclosure in logs and prompts. Because calendar credentials grant access to private schedules and event metadata, poor handling can expose sensitive personal or organizational information.

Static analysis

No suspicious patterns detected.