Back to skill

Security audit

日历管理工具包基础版

Security checks for vulnerabilities and agentic risk

Overview

This calendar skill can create and sync calendar data, but it does not clearly require confirmation or explain when calendar information leaves the device.

Review this carefully before installing. Use it only with explicit approval for any calendar write, invite, delete, export, or sync action, and avoid running the broad environment-variable check as written. Treat the local-only privacy claim as unreliable unless the publisher clarifies what data is sent to Google, Apple, Outlook, callbacks, or other APIs.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:179
Finding

Sensitive Environment Variable Enumeration May Expose Credentials

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 179–181
Vulnerability Type: Sensitive environment reconnaissance and plaintext credential exposure
Risk Level: Medium

Complete Code Snippet:

bash
env | grep -E "API|KEY|TOKEN|SECRET" | sed "s/=.*/=***/"  # Linux/macOS
# Or PowerShell
# Get-ChildItem Env: | Where-Object {$_.Name -match "API|KEY|TOKEN"} | Format-Table

Technical Analysis

The configuration-validation instructions search the entire process environment for variable names associated with API keys, tokens, and secrets rather than checking only the specific calendar credential required by the selected provider.

The Linux/macOS command masks values before displaying them, but still discloses credential names and their presence. The PowerShell alternative passes matching environment-variable objects directly to Format-Table, which may display both names and plaintext values. If an AI Agent executes this instruction, credential information can enter terminal output, Agent transcripts, diagnostic logs, or other retained execution records.

This violates least-privilege and sensitive-data-handling principles. Calendar configuration validation does not require enumerating unrelated credentials from the entire environment.

Attack Path

  1. A user asks the Agent to configure or validate the calendar Skill.
  2. The Agent follows the validation instructions in SKILL.md.
  3. The command enumerates all environment variables whose names contain credential-related terms.
  4. On PowerShell, matching secret values may be printed in plaintext; on Linux/macOS, credential names and availability are disclosed.
  5. The resulting data may be retained in terminal history, Agent conversation history, execution logs, or monitoring systems.
  6. Any party able to access those records may recover the disclosed values or use the credential metadata to guide further attacks.

No instruction that trans ...[truncated 690 chars]

Remediation
View remediation

Remediation Suggestions

  1. Remove broad searches for names matching API, KEY, TOKEN, or SECRET.

  2. Validate only the exact variable required by the configured calendar provider.

  3. Report only whether the variable is set; never print its value.

  4. Use provider-specific checks such as:

    bash
    if [ -n "${GOOGLE_CALENDAR_API_KEY:-}" ]; then
      echo "Google Calendar credential is configured"
    else
      echo "Google Calendar credential is not configured"
    fi
    
    powershell
    if (Test-Path Env:GOOGLE_CALENDAR_API_KEY) {
        Write-Output "Google Calendar credential is configured"
    } else {
        Write-Output "Google Calendar credential is not configured"
    }
    
  5. Avoid enabling shell tracing while credentials are processed.

  6. Prevent command output containing sensitive configuration data from being written to persistent Agent logs.

  7. Document the precise credential names required by each supported provider and apply least-privilege scopes to those credentials.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (7)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill describes automatic execution of calendar functions without prominently warning that these actions may modify user calendars, reminders, invitations, or scheduling state. Because calendar actions affect real-world commitments and can notify other people, missing consent and change-impact warnings create significant risk of unauthorized or accidental changes.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
95% confidence
Finding

Cross-platform sync is described as a core feature without a prominent privacy warning about external data transfer, account linkage, or metadata exposure. Calendar sync can transmit event titles, times, attendees, locations, and notes to third-party providers, so omitting this warning undermines informed consent and safe handling of sensitive scheduling data.

Content

No source excerpt is available for this finding.

Vague Triggers

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The trigger conditions say to use the skill for data analysis, report generation, statistics, and visualization, which does not match the advertised calendar-management purpose. Overbroad or mismatched activation criteria can cause an agent to invoke this skill in inappropriate contexts, increasing the chance of unintended calendar reads, writes, or exports.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The documentation states that FREE-version data is stored locally and not uploaded to the cloud, but elsewhere the skill advertises cross-platform sync and external API/network use. This can mislead users into exposing calendar contents, meeting metadata, and participant information under a false privacy assumption, which is especially risky for scheduling data tied to real identities and organizations.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

The display name, summary, and nearly all user-facing instructions are written in Chinese, with no indication that users may choose another language or locale. Under the stated policy, forcing a specific language without opt-in is a natural-language policy concern unless clearly justified as region-specific.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

The version matrix says FREE does not support '团队协作' at L44, yet the core capability at L59-L64 describes arranging meetings and viewing participants' available time, which is inherently a multi-user collaboration feature. This is an intent-level contradiction within the skill documentation about what the free edition actually supports.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The natural-language invocation guidance is broad and says the agent will automatically execute corresponding operations, but it lacks constraints, approval boundaries, or confirmation steps for state-changing actions. In a calendar context, ambiguous requests can lead to unintended event creation, modifications, reminders, or notifications affecting real schedules.

Content

No source excerpt is available for this finding.