Back to skill

Security audit

Calendly

Security checks across malware telemetry and agentic risk

Overview

This is a disclosed Calendly integration that needs a Maton API key and can read scheduling data or perform user-approved scheduling actions.

Install this only if you intend to connect Calendly through Maton. Protect MATON_API_KEY, verify the intended Calendly connection when more than one account is connected, and approve write actions only after checking the target event, invitee details, webhook URL, scope, and expected effect.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (5)

Vague Triggers

Medium
Confidence
88% confidence
Finding
The skill description is broad enough to match many generic scheduling or calendar-related requests, which can cause the agent to invoke a network-capable third-party integration when a simpler local answer or a different tool would be more appropriate. In this context, overbroad routing increases the chance of unnecessary access to Calendly account data and accidental execution of read/write operations against the wrong connected account.

External Transmission

Medium
Category
Data Exfiltration
Content
python <<'EOF'
import urllib.request, os, json
data = json.dumps({'reason': 'Meeting rescheduled'}).encode()
req = urllib.request.Request('https://api.maton.ai/calendly/scheduled_events/DDDDDDDDDDDDDDDD/cancellation', data=data, method='POST')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
Confidence
93% confidence
Finding
https://api.maton.ai/

External Transmission

Medium
Category
Data Exfiltration
Content
python <<'EOF'
import urllib.request, os, json
data = json.dumps({'start_time': '2025-03-20T15:00:00Z', 'email': 'bob.smith@example.com', 'name': 'Bob Smith'}).encode()
req = urllib.request.Request('https://api.maton.ai/calendly/event_types/CCCCCCCCCCCCCCCC/invitees', data=data, method='POST')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
Confidence
94% confidence
Finding
https://api.maton.ai/

External Transmission

Medium
Category
Data Exfiltration
Content
{
  "url": "https://example.com/webhook",
  "events": ["invitee.created", "invitee.canceled"],
  "organization": "https://api.calendly.com/organizations/BBBBBBBBBBBBBBBB",
  "scope": "organization",
  "signing_key": "your-secret-key"
}
Confidence
91% confidence
Finding
https://api.calendly.com/

External Transmission

Medium
Category
Data Exfiltration
Content
python <<'EOF'
import urllib.request, os, json
data = json.dumps({'url': 'https://example.com/webhook', 'events': ['invitee.created', 'invitee.canceled'], 'organization': 'https://api.calendly.com/organizations/BBBBBBBBBBBBBBBB', 'scope': 'organization'}).encode()
req = urllib.request.Request('https://api.maton.ai/calendly/webhook_subscriptions', data=data, method='POST')
req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}')
req.add_header('Content-Type', 'application/json')
print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2))
Confidence
94% confidence
Finding
https://api.maton.ai/

VirusTotal

63/63 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.