Back to skill

Security audit

高效会议流程管理助手

Security checks for vulnerabilities and agentic risk

Overview

This meeting automation skill is not plainly malicious, but it should be reviewed because it can automatically use connected calendars, rooms, documents, transcripts, and notifications with too little confirmation.

Install only if you are comfortable with a meeting assistant that may act across connected workplace tools. Use least-privilege adapter accounts, avoid putting real secrets in config/adapters.json when a secret manager or environment reference is available, and require your agent to preview and confirm calendar, room, document, transcript, TODO, and notification actions before sending or saving anything sensitive.

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

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:39
Finding

Automatic Expansion of Narrow Requests into Unapproved External Write Operations

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:39-46, SKILL.md:81-88, and SKILL.md:147-162
Vulnerability Type: T05: Unauthorized Access and Privilege Escalation
Risk Level: Medium

Vulnerable Instructions

The following is an English rendering of the relevant Skill instructions:

markdown
| User request | Action |
|---|---|
| Help me hold a meeting / schedule a meeting | Run the complete end-to-end workflow |
| Help me book a meeting room | Do not only book the room; run the complete workflow: room booking, calendar creation, and materials |

Core principle: The user may request one point, such as booking a meeting room,
but the Skill must execute the entire workflow from scheduling through minutes.
Never require the user to direct each step; proactively advance to the next step.
markdown
## Act First, Report Later

After the user supplies a meeting request, the Agent executes all steps in one
pass and pauses only when human decision-making is strictly required.

| Principle | Description |
|---|---|
| Automatic by default | Check availability, select a time, book a room, create the event, and prepare materials without intermediate questions |
| Pause only on conflict | Ask the user only when a predefined pause condition is encountered |
| Report once | Report all results only after the operations are complete |
markdown
Step 4: Book a meeting room through the room adapter.
Step 5: Create the calendar event through the calendar adapter.
Step 6: Create meeting materials through the document adapter and update the event notes.
Step 7: Report the completed operations.

Technical Analysis

The Skill deliberately broadens a narrowly scoped request into multiple external operations. For example, a request to book a meeting room is treated as authorization to query participant calendars, reserve a room, create a calendar event, send invitations, generate ...[truncated 2438 chars]

Remediation
View remediation

Remediation Suggestions

  1. Preserve the scope of the user’s request:

    • A room-booking request should only search for or reserve a room.
    • A scheduling request should not automatically send notifications or publish documents.
    • Offer the complete workflow as an explicit option rather than the default.
  2. Add confirmation gates before consequential writes:

    • Room reservation.
    • Calendar event creation or modification.
    • Invitation delivery.
    • Document creation in a shared workspace.
    • Notification delivery to external recipients.
  3. Present a preview containing the exact attendees, time, room, event title, document destination, and notification recipients before execution.

  4. Separate read-only planning from write execution. Availability checks and candidate generation may run first, while mutations should require explicit user approval.

  5. Allow users to configure per-adapter automation policies such as read_only, confirm_writes, or fully_automatic.

  6. Record and report each external action individually, including the adapter used and the resource modified, so unwanted operations can be identified and reversed.

T09 · Insecure Skill Coding Practices

Warning
Location
config/adapters.example.json:3
Finding

Adapter Configuration Encourages Plaintext Storage of API Secrets and Webhook Credentials

Content
View full analysis

Vulnerability Details

File Location: config/adapters.example.json:3-24; related contract definitions at references/integration-rules.md:19, references/integration-rules.md:38, references/integration-rules.md:46, and references/integration-rules.md:68
Vulnerability Type: T09: Insecure Skill Coding Practices
Risk Level: Medium

Vulnerable Configuration

json
{
  "calendar": {
    "provider": "google",
    "credentials": "path/to/google-credentials.json"
  },
  "knowledge": {
    "provider": "notion",
    "token": "your-notion-integration-token",
    "database_id": "your-database-id"
  },
  "messaging": {
    "provider": "slack",
    "webhook_url": "https://hooks.slack.com/services/your/webhook/url"
  },
  "meeting": {
    "provider": "zoom",
    "api_key": "",
    "api_secret": ""
  }
}

The adapter contract similarly defines configuration fields that directly contain tokens, webhook URLs, SMTP configuration, API keys, and API secrets.

Technical Analysis

The documented configuration model encourages users to place sensitive authentication material directly into config/adapters.json. Slack webhook URLs are bearer credentials, and Notion tokens, Zoom secrets, SMTP credentials, and referenced calendar credential files can provide access to organizational data and external write operations.

The README warns users not to commit config/adapters.json, but an advisory warning is not a technical control. The audited project structure did not show a .gitignore rule preventing this file from being committed, and the documented first-use workflow instructs the Agent to generate the file automatically.

Plaintext storage increases exposure through source-control mistakes, workstation backups, diagnostic bundles, Agent context capture, file synchronization, permissive filesystem permissions, or other local processes. Referencing a credential file by path is preferable ...[truncated 1937 chars]

Remediation
View remediation

Remediation Suggestions

  1. Replace literal secret fields with references:

    json
    {
      "knowledge": {
        "provider": "notion",
        "token_env": "NOTION_TOKEN"
      },
      "messaging": {
        "provider": "slack",
        "webhook_env": "SLACK_WEBHOOK_URL"
      },
      "meeting": {
        "provider": "zoom",
        "api_key_env": "ZOOM_API_KEY",
        "api_secret_env": "ZOOM_API_SECRET"
      }
    }
    
  2. Prefer operating-system keychains, managed secret stores, or host-Agent credential facilities over environment variables where available.

  3. Add config/adapters.json and provider credential files to .gitignore. Also provide a pre-commit secret scan for tokens, webhook URLs, private keys, and provider secrets.

  4. Reject literal secrets during configuration validation unless the user explicitly enables a secure local-storage mode.

  5. Apply restrictive filesystem permissions to generated configuration and credential files, such as owner-only access where supported.

  6. Never echo full tokens, webhook URLs, SMTP passwords, or credential paths into chat responses or logs. Display only redacted identifiers.

  7. Restrict credential-file paths to explicitly approved directories and reject path traversal, symlinks to unexpected locations, and world-readable files.

  8. Document minimum provider scopes and recommend separate, narrowly scoped service credentials for calendar, document, notification, and meeting-platform operations.

  9. Add rotation and revocation instructions for credentials that are accidentally exposed.

Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
Findings (20)

Vague Triggers

High
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill description mandates activation for very broad meeting-related phrases, including cases where the user did not explicitly request full workflow orchestration. In a skill that can query calendars, read prior notes, generate documents, and send notifications through external adapters, overbroad triggering can cause unnecessary access to sensitive data and unintended side effects beyond the user's intended scope.

Content

No source excerpt is available for this finding.

Vague Triggers

High
Category
Not specified by scanner
Confidence
94% confidence
Finding

The automatic trigger rules explicitly instruct the agent to turn narrow requests like booking a room or checking availability into an end-to-end workflow, and to proactively continue without waiting for user direction. This is risky because it authorizes additional actions—calendar changes, material generation, record retrieval, and notifications—that may exceed user consent and increase exposure of confidential meeting content.

Content

No source excerpt is available for this finding.

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · config/adapters.example.json (reported line 5)May include surrounding context.

json
"_comment": "这是示例配置。请复制为 adapters.json 后按自己的工具填写。\"none\" 表示不使用该适配器,对应步骤将降级为手动模式。",
  "calendar": {
    "provider": "google",
    "credentials": "path/to/google-credentials.json"
  },
  "transcription": {
    "provider": "whisper",

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The README describes locating meeting records, reading minutes/transcripts, extracting actions, and sending follow-up, but does not give explicit user-facing warnings about consent, participant privacy, data retention, or external sharing. In a meeting workflow, this omission is risky because transcripts, recordings, decisions, owners, and deadlines often contain sensitive personal or business information, and an agent may process or redistribute it without users appreciating the privacy implications.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The invocation example uses a broad natural-language phrase ('Help me plan a decision meeting for next week...') that could cause the skill to activate in routine conversation without a deliberate opt-in. In this skill's context, unintended activation is more concerning because the flow may access calendars, room booking, transcripts, and follow-up tooling, which can expose or act on sensitive scheduling and meeting data.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill is designed to process participant identities, schedules, recordings, transcripts, minutes, and TODOs via third-party systems, but it provides no explicit privacy notice, consent requirement, retention guidance, or sensitivity boundaries. In this context, omission of data-handling constraints increases the chance that sensitive meeting content is transmitted or stored externally without informed user approval.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill declares an iron-law requirement to always perform busy/free checks before creating calendar events, but its fallback table explicitly says to skip that validation when no calendar adapter is configured. This contradiction can cause the agent to proceed with scheduling using incomplete state, leading to conflicting meetings, broken workflow guarantees, and user trust failures.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

In the main workflow, Step 2 says the agent should skip busy/free checks if the calendar adapter is not configured, even though the skill earlier states that pre-creation availability confirmation is mandatory with no exceptions. This creates unsafe operational ambiguity: implementations may bypass a required precondition and schedule meetings that collide with attendees' calendars.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

Automatically carrying unresolved TODOs from prior meetings into new materials can expose historical task ownership, decisions, and participant context to a new audience or in a new meeting context without confirmation. Because meeting notes often contain sensitive organizational details, silent reuse of prior records creates a confidentiality and context-boundary risk.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This skill explicitly advertises integrations with calendars, transcription systems, documents, notifications, meeting rooms, and meeting platforms, yet the page does not clearly warn users that meeting notes, transcripts, attendee data, and reminders may be processed by external services. In a meeting-orchestration context, that omission can cause users to share sensitive business or personal data without informed consent or awareness of third-party exposure.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The entire FAQ is written only in Chinese and provides no indication that users may choose another language or locale. Under the policy, forcing a specific language without opt-in is a natural-language policy violation unless the locale constraint is explicitly documented and justified.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

This section permits ingestion of meeting audio, video, recordings, links, and subtitles, but does not require notice, consent, or data-handling constraints. Because meeting content often contains sensitive business or personal information, accessing and processing these artifacts without explicit privacy controls increases the risk of unauthorized collection, over-processing, or exposure.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The rules explicitly require automatic fallback without asking the user, and those fallbacks can still create or update schedules, generate document outputs, or send message text for onward use. In a meeting-management skill, this can cause unauthorized actions or disclosures after a primary integration fails, especially when the user did not consent to degraded behavior that changes data or communicates with others.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The entire methodology is presented only in Chinese, with no indication that language choice is optional or that the skill is specifically intended for a Chinese-speaking or region-specific audience. This can violate language/locale policy where skills should not force a specific language without user opt-in.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The design enables automatic reminders and daily scans over TODO data, including responsible persons, deadlines, and meeting-derived action items, but it does not mention user consent, visibility controls, retention limits, or notification audience restrictions. In a meeting workflow skill, this can expose sensitive project details or personal work patterns through unsolicited reminders or background processing, especially when notifications are sent to participants or surfaced in shared environments.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

Automatically pulling unfinished TODOs from prior meetings into future meeting materials can resurface historical sensitive information without fresh user review. In this skill context, meeting notes and TODOs may contain confidential business items, personnel issues, or cross-team action items, so carrying them forward by default increases the chance of unintended disclosure to attendees of later meetings.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

This markdown file is the Chinese-language variant and explicitly presents "中文" as the active option, while the rest of the instructions are entirely in Chinese. Under the policy rule, forcing a specific language without user opt-in can be a natural-language policy violation unless the locale constraint is clearly documented and justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The JSON comment at L02 is written entirely in Chinese and provides the primary usage instructions for the file. This imposes a specific language on users without any opt-in, alternative locale, or stated region-specific reason, which matches the language/locale policy violation criteria.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

The manifest describes a meeting-orchestration skill covering scheduling, facilitation, minutes, and follow-up. In this file, the footer embeds outbound links and badges to a WeChat article, Xiaohongshu profile, a commercial book page on JD, and a broader skill hub, which are promotional/distribution capabilities rather than functionality needed for meeting-flow operation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The natural-language configuration example limits language selection to auto|zh|en, which imposes a locale/language constraint in the documented interface. The file does not explain this limitation or offer broader language choice, so it appears to force a language policy without user opt-in.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.