Back to skill

Security audit

Dingtalk Calendar

Security checks for vulnerabilities and agentic risk

Overview

This is a disclosed DingTalk calendar helper, but users should be careful because it can change calendar data and relies on a globally installed third-party CLI.

Install only if you trust mcporter and the DingTalk MCP endpoints you configure. Use the skill with the minimum calendar, contact, and room-booking permissions needed, confirm event IDs before updates or deletions, and follow your organization's rules before looking up coworkers' details or free/busy status.

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:17
Finding

Unpinned Third-Party CLI Installed Globally

Content
View full analysis
=0.7.0" } ``` ### Technical Analysis The skill instructs users to install the `mcporter` package globally without specifying an exact, reviewed version or verifying package integrity. The package manifest similarly permits any version equal to or newer than `0.7.0`. This configuration allows dependency resolution to select a future release that was not available during the audit. If the package publisher account, package registry, or upstream release process is compromised, a malicious accepted release could be installed. Depending on package-manager configuration, package lifecycle scripts may execute during installation. The installed CLI will also execute later with the permissions of the invoking user. Global installation increases exposure because the package becomes available across projects and sessions rather than remaining isolated to this skill. No lockfile, checksum, integrity value, or documented package provenance validation is present. ### Attack Path 1. An attacker compromises the upstream package, publisher account, or release pipeline for `mcporter`. 2. The attacker publishes a malicious version that satisfies the unrestricted `>=0.7.0` dependency range. 3. A user follows the skill instructions and runs `npm install -g mcporter`, or otherwise resolves dependencies from `package.json`. 4. The package manager downloads the compromised release. 5. Malicious lifecycle code may execute during installation, or malicious behavior executes when the globally installed CLI is invoked. 6. The payload operates with the invoking user's privileges and may access data available ...[truncated 921 chars]
Remediation
View remediation
Vulnerability Patterns
  • 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
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (6)

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The changelog states the skill supports contact-directory user search and user detail lookup, which expands the documented capability beyond the declared calendar and meeting-room scope. In an enterprise messaging platform context, directory lookup can expose personal or organizational information and enable user enumeration if users or reviewers rely on the narrower manifest description.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill explicitly documents querying other users' busy status but provides no authorization, consent, or privacy guidance. In a calendar/contacts integration, this can enable privacy-invasive access patterns or normalization of checking coworkers' availability without validating that the caller is permitted to view that information.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill exposes deletion of calendar events as a simple command without any warning about destructive consequences, validation steps, or confirmation requirements. This increases the risk of accidental or unauthorized event deletion, which can disrupt meetings, remove records, and impact multiple attendees.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The activation scope is ambiguous because the metadata exposes broad calendar-management capabilities but does not define clear boundaries for when the skill should engage versus when a general assistant should merely discuss scheduling. Given that the skill supports actions affecting calendars, free/busy visibility, contact lookup, and room booking, ambiguous activation can lead to unintended access attempts or unauthorized-looking operations in enterprise contexts.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The trigger phrases include common natural-language requests such as '创建日程' and '会议预订', which are broad enough to match ordinary user intent without clear scoping to this specific skill. In a skill that can create, update, delete calendar entries and book rooms, overly broad activation increases the chance of accidental invocation and unintended actions against a user's calendar or organizational resources.

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 entries in this file are entirely Chinese, which can constitute a language/locale policy issue when no user opt-in or justification is provided. The file does not indicate that the skill is region-specific or that alternate languages are available.

Content

No source excerpt is available for this finding.