Back to skill

Security audit

Cal.com Integration

Security checks for vulnerabilities and agentic risk

Overview

The skill is a mostly coherent Cal.com integration, but it grants write access to bookings and availability schedules without enough built-in confirmation or scoping guidance.

Review this before installing if your Cal.com account is business-critical. Use a least-privilege API key, keep the key private, and require the agent to show booking or schedule details and get explicit approval before creating, cancelling, or replacing availability data.

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
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (21)

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
89% confidence
Finding

The skill exposes a parameterized destructive endpoint, DELETE /bookings/{uid}, without documenting validation, ownership checks, or mandatory confirmation. In an agent/tooling context, an attacker could coerce cancellation of arbitrary bookings reachable by UID or exploit ambiguous input to trigger unauthorized destructive actions.

Content

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

3 — Cancel a Booking

Endpoint: DELETE /bookings/{uid}

Headers:

text

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
6. **Create / Update Availability Schedule** — Define or modify weekly availability rules (working hours, date overrides).
7. **Get User Info** — Retrieve the authenticated user's profile, timezone, and default settings.

All API calls target `https://api.cal.com/v1`. Authentication uses a Bearer token (API key).

---

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
6. **Create / Update Availability Schedule** — Define or modify weekly availability rules (working hours, date overrides).
7. **Get User Info** — Retrieve the authenticated user's profile, timezone, and default settings.

All API calls target `https://api.cal.com/v1`. Authentication uses a Bearer token (API key).

---

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
6. **Create / Update Availability Schedule** — Define or modify weekly availability rules (working hours, date overrides).
7. **Get User Info** — Retrieve the authenticated user's profile, timezone, and default settings.

All API calls target `https://api.cal.com/v1`. Authentication uses a Bearer token (API key).

---

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
6. **Create / Update Availability Schedule** — Define or modify weekly availability rules (working hours, date overrides).
7. **Get User Info** — Retrieve the authenticated user's profile, timezone, and default settings.

All API calls target `https://api.cal.com/v1`. Authentication uses a Bearer token (API key).

---

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
6. **Create / Update Availability Schedule** — Define or modify weekly availability rules (working hours, date overrides).
7. **Get User Info** — Retrieve the authenticated user's profile, timezone, and default settings.

All API calls target `https://api.cal.com/v1`. Authentication uses a Bearer token (API key).

---

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
6. **Create / Update Availability Schedule** — Define or modify weekly availability rules (working hours, date overrides).
7. **Get User Info** — Retrieve the authenticated user's profile, timezone, and default settings.

All API calls target `https://api.cal.com/v1`. Authentication uses a Bearer token (API key).

---

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
6. **Create / Update Availability Schedule** — Define or modify weekly availability rules (working hours, date overrides).
7. **Get User Info** — Retrieve the authenticated user's profile, timezone, and default settings.

All API calls target `https://api.cal.com/v1`. Authentication uses a Bearer token (API key).

---

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
6. **Create / Update Availability Schedule** — Define or modify weekly availability rules (working hours, date overrides).
7. **Get User Info** — Retrieve the authenticated user's profile, timezone, and default settings.

All API calls target `https://api.cal.com/v1`. Authentication uses a Bearer token (API key).

---

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
6. **Create / Update Availability Schedule** — Define or modify weekly availability rules (working hours, date overrides).
7. **Get User Info** — Retrieve the authenticated user's profile, timezone, and default settings.

All API calls target `https://api.cal.com/v1`. Authentication uses a Bearer token (API key).

---

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
6. **Create / Update Availability Schedule** — Define or modify weekly availability rules (working hours, date overrides).
7. **Get User Info** — Retrieve the authenticated user's profile, timezone, and default settings.

All API calls target `https://api.cal.com/v1`. Authentication uses a Bearer token (API key).

---

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
6. **Create / Update Availability Schedule** — Define or modify weekly availability rules (working hours, date overrides).
7. **Get User Info** — Retrieve the authenticated user's profile, timezone, and default settings.

All API calls target `https://api.cal.com/v1`. Authentication uses a Bearer token (API key).

---

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
6. **Create / Update Availability Schedule** — Define or modify weekly availability rules (working hours, date overrides).
7. **Get User Info** — Retrieve the authenticated user's profile, timezone, and default settings.

All API calls target `https://api.cal.com/v1`. Authentication uses a Bearer token (API key).

---

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

Example cURL:

bash
curl -s "https://api.cal.com/v1/event-types" \
  -H "Authorization: Bearer ${CAL_COM_API_KEY}"

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The booking flow sends attendee name, email, timezone, and notes to an external service without documenting a privacy notice or consent step. In agent environments, transmitting third-party personal data without a warning can lead to unintended disclosure and privacy/compliance issues.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
79% confidence
Finding

Multiple examples hard-code Asia/Shanghai and present user-facing output in Shanghai time as the default, which can amount to an implicit locale/timezone constraint without opt-in. The policy requires offering language or locale choice unless the locale restriction is clearly justified.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The cancellation flow performs a destructive DELETE action with no documented confirmation, preview, or warning requirement. In an agent setting, ambiguous user input or prompt manipulation could cause unintended booking cancellations, impacting availability and business operations.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

Example cURL:

bash
curl -s "https://api.cal.com/v1/slots?eventTypeId=evt_abc123&startTime=2026-07-10T00:00:00Z&endTime=2026-07-15T23:59:59Z" \
  -H "Authorization: Bearer ${CAL_COM_API_KEY}"

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

Creating a booking for July 10, 2026 at 14:00 Shanghai time (UTC+8).

bash
curl -s -X POST "https://api.cal.com/v1/bookings" \
  -H "Authorization: Bearer ${CAL_COM_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

The 'Output Format' section states that the skill 'Always returns' a normalized JSON wrapper with fields like status, action, and data/error. However, the rest of the file is purely operational documentation for direct Cal.com API calls, with examples showing raw API responses and shell commands, and no code or mechanism that would actually guarantee this wrapper format.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The example lists UTC timestamps such as 2026-07-13T02:00:00Z and summarizes them as 10:00 AM Shanghai time, which requires adding 8 hours, not subtracting 8 hours. The parenthetical note therefore actively contradicts the example's own interpreted output and could mislead downstream implementations or users.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.