Back to skill

Security audit

飞书日历基础版

Security checks for vulnerabilities and agentic risk

Overview

This is a Markdown-only Feishu/Lark calendar skill, but its broad mismatched triggers and inconsistent privacy/scope statements make it a Review item before installation.

Review carefully before installing. Only use it for explicit Feishu/Lark calendar tasks, verify any write action before it creates events or adds attendees, avoid running the broad environment-variable check, and treat the local-only privacy claim as unreliable because calendar data must go to Feishu/Lark APIs for this skill to work.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

other

Warning
Location
SKILL.md:159
Finding

Overbroad Environment Variable Enumeration May Expose Credentials

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 159–166
Vulnerability Type: Environment reconnaissance and sensitive-data exposure
Risk Level: Medium

Vulnerable code:

bash
# Verify whether environment variables are set
echo "Configuration check:"
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 validation procedure searches the entire process environment for variable names containing API, KEY, TOKEN, or SECRET, although the skill only declares a need for FEISHU_APP_ID and FEISHU_APP_SECRET.

On Linux and macOS, sed masks values before displaying the results, but it still discloses the names and presence of unrelated credentials. The PowerShell alternative passes complete matching environment-variable objects to Format-Table; depending on normal PowerShell formatting behavior, this may print both names and values. Those values could consequently enter the agent transcript, terminal history, execution logs, or other monitoring systems.

No credential transmission or external exfiltration mechanism was found in the supplied package. The risk is local disclosure to the agent session and any systems that retain its output.

Attack Path

  1. A user loads the skill and follows its environment-validation instructions.
  2. The agent receives permission to use exec and runs one of the documented commands.
  3. The command examines the complete environment rather than only the two required Feishu variables.
  4. Names of unrelated sensitive variables are exposed on Unix-like systems.
  5. If the PowerShell alternative is used, matching credential values may also be displayed.
  6. The disclosed information may persist in the agent conversation, command output, or operational logs.

Impact Assessment

The issue does not grant ad ...[truncated 472 chars]

Remediation
View remediation

Remediation Suggestions

  1. Remove environment-wide matching for generic terms such as API, KEY, TOKEN, and SECRET.
  2. Validate only FEISHU_APP_ID and FEISHU_APP_SECRET.
  3. Return only boolean presence status; never print credential values.
  4. Use explicit allowlists in both shell variants.
  5. Ensure execution output containing configuration metadata is not retained longer than necessary.
  6. Add automated documentation checks that reject commands enumerating broad classes of sensitive environment variables.

A safer Unix-like validation pattern is:

bash
[ -n "${FEISHU_APP_ID:-}" ] && echo "FEISHU_APP_ID: configured" || echo "FEISHU_APP_ID: missing"
[ -n "${FEISHU_APP_SECRET:-}" ] && echo "FEISHU_APP_SECRET: configured" || echo "FEISHU_APP_SECRET: missing"

A safer PowerShell equivalent is:

powershell
Write-Output "FEISHU_APP_ID: $(if ($env:FEISHU_APP_ID) {'configured'} else {'missing'})"
Write-Output "FEISHU_APP_SECRET: $(if ($env:FEISHU_APP_SECRET) {'configured'} else {'missing'})"
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • 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
Findings (9)

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The manifest description mixes unrelated SEO use-cases into a Feishu calendar skill, which can cause an agent to invoke the skill in the wrong context and perform calendar reads or writes when the user intended search/marketing tasks. In an agentic environment, misleading routing metadata is security-relevant because it expands the chance of inappropriate tool execution against calendars and attendee data.

Content

No source excerpt is available for this finding.

Vague Triggers

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The description includes an unrelated broad trigger for SEO tasks, which is materially inconsistent with the skill’s calendar behavior. This can misroute agent workflows so a calendar tool is selected for non-calendar requests, leading to unnecessary access to calendars, contacts, or event-writing functions.

Content

No source excerpt is available for this finding.

Vague Triggers

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The trigger description is overly broad and mismatched to the skill’s actual calendar purpose, encouraging invocation for generic analytics, reporting, or visualization requests. In an autonomous agent setting, broad triggers raise the likelihood that the skill executes calendar operations outside user intent, potentially exposing or modifying sensitive scheduling data.

Content

No source excerpt is available for this finding.

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · SKILL.md (reported line 153)May include surrounding context.

bash
FEISHU_APP_ID=your_app_id
FEISHU_APP_SECRET=your_app_secret
# 配置在 .env 文件中
node skills/feishu-calendar/list_test.js

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · SKILL.md (reported line 191)May include surrounding context.

bash
FEISHU_APP_ID=your_app_id
FEISHU_APP_SECRET=your_app_secret
# 配置在 .env 文件中
node skills/feishu-calendar/list_test.js

Intent-Code Divergence

High
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill claims FREE-version data is stored locally and not uploaded to the cloud, yet repeatedly describes external API usage to Feishu/Lark. That contradiction can create false privacy expectations, causing users to expose calendar contents, attendee identities, or metadata to external services without informed consent.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The description states '支持中文交互' and L25 highlights '中文交互' as a core capability, but the file does not indicate that language is optional or user-selectable. This can violate language/locale policy expectations when a skill implicitly constrains interaction to a specific language without opt-in.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The document says the FREE version does not support team collaboration, but later instructs users to create shared calendars and add members. This inconsistency can mislead users and agents about the scope of actions the skill may perform, increasing the risk of accidental permission changes or collaboration-side effects.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The skill describes creating calendar events and setting participants but does not clearly warn users that it can modify calendar data and send or affect invitations. Missing warnings reduce informed consent and make accidental writes, participant notifications, or scheduling changes more likely.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.