Back to skill

Security audit

Meeting Efficiency Pro

Security checks for vulnerabilities and agentic risk

Overview

This skill is not proven malicious, but it needs Review because it handles secrets unsafely, can read arbitrary local files as meeting notes, runs mutable dependency installation, and overstates integrations that are mostly mock or broken.

Install only after reviewing the code and treating it as a prototype, not a production calendar or AI automation tool. Do not enter real API keys or task-manager tokens unless secret storage and redaction are fixed, avoid running the config command with real secrets present, and only process note files from paths you explicitly trust.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (3)

T05 · Unauthorized Access and Privilege Escalation

Error
Location
index.js:200
Finding

Unrestricted Local File Read Through the Notes Processing Command

Content
View full analysis
{ console.log(` • ${point}`); }); console.log('\n🎯 Action Items:'); if (result.actionItems && result.actionItems.length > 0) { result.actionItems.forEach(item => { console.log(` • ${item.text} (Owner: ${item.owner}, Due: ${item.dueDate})`); }); } console.log('\n🤔 Unresolved Questions:'); if (result.questions && result.questions.length > 0) { result.questions.forEach(question => { console.log(` • ${question}`); }); } ``` ### Technical Analysis The `--notes` argument is interpreted as a filesystem path whenever `fs.existsSync()` returns true. The implementation accepts: - Absolute paths such as `/home/user/.ssh/id_rsa` - Relative traversal paths such as `../../.env` - Paths outside the project directory - Symbolic links pointing to sensitive files - Files of arbitrary size or type No path normalization, trusted-root enforcement, extension allowlist, file-size lim ...[truncated 1811 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/setup.js:41
Finding

API Keys and Integration Tokens Are Collected, Stored, and Displayed in Plaintext

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Note
Location
index.js:80
Finding

Setup Performs Mutable Dependency Installation Without a Lockfile

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (34)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The document instructs users to configure and store AI API keys, calendar settings, and task-manager tokens, yet it provides no guidance on secure storage, least privilege, or redaction. In a skill centered on external integrations and local config editing, normalizing plaintext credential handling can expose secrets to local compromise, backups, logs, or accidental sharing.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The document instructs users to configure and store AI API keys, calendar settings, and task-manager tokens, yet it provides no guidance on secure storage, least privilege, or redaction. In a skill centered on external integrations and local config editing, normalizing plaintext credential handling can expose secrets to local compromise, backups, logs, or accidental sharing.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

The document instructs users to configure and store AI API keys, calendar settings, and task-manager tokens, yet it provides no guidance on secure storage, least privilege, or redaction. In a skill centered on external integrations and local config editing, normalizing plaintext credential handling can expose secrets to local compromise, backups, logs, or accidental sharing.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The document instructs users to configure and store AI API keys, calendar settings, and task-manager tokens, yet it provides no guidance on secure storage, least privilege, or redaction. In a skill centered on external integrations and local config editing, normalizing plaintext credential handling can expose secrets to local compromise, backups, logs, or accidental sharing.

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 · SKILL.md (reported line 139)May include surrounding context.

md
3. **iCal**: Provide .ics URL or file path

### AI Provider Setup
1. **OpenAI**: Get API key from platform.openai.com
2. **Grok**: Get API key from x.ai (if available)

### Task Manager Integration

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 · SKILL.md (reported line 140)May include surrounding context.

md
3. **iCal**: Provide .ics URL or file path

### AI Provider Setup
1. **OpenAI**: Get API key from platform.openai.com
2. **Grok**: Get API key from x.ai (if available)

### Task Manager Integration

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 · SKILL.md (reported line 143)May include surrounding context.

md
2. **Grok**: Get API key from x.ai (if available)

### Task Manager Integration
- **Todoist**: Personal access token from settings
- **Asana**: Personal access token from developer console
- **Jira**: API token from Atlassian account

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 · SKILL.md (reported line 144)May include surrounding context.

md
2. **Grok**: Get API key from x.ai (if available)

### Task Manager Integration
- **Todoist**: Personal access token from settings
- **Asana**: Personal access token from developer console
- **Jira**: API token from Atlassian account

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/demo.js

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill executes shell commands (node --version, npm --version, npm install) via child_process.exec, introducing command-execution capability unrelated to normal meeting-efficiency analysis. Even though the commands are hardcoded, invoking npm install can execute lifecycle scripts from dependencies, creating a meaningful supply-chain execution path on the host.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The connection test reports successful connectivity for non-'none' calendar types even though initialization only logs placeholder messages and getTodaysMeetings returns sample meetings. This is especially dangerous in this skill context because follow-up automation or decision-making may proceed under the false assumption that real calendar access exists, leading to silent data integrity failures, missed operational issues, and potentially unauthorized business actions based on fake state.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill promises calendar analysis, meeting-note processing, summaries, and AI-powered extraction, all of which involve potentially sensitive business and personal data, but the description omits any privacy or data-sharing warning. Users may unknowingly send calendar metadata or meeting notes to third-party AI and integration providers, creating confidentiality and compliance risk.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The configuration examples explicitly include API keys and tokens but do not warn against storing real secrets in plaintext files or committing them to version control. This is dangerous because users often copy example JSON into local config files, which may later be exposed through repositories, support bundles, backups, or multi-user systems.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The setup command performs side-effecting system changes by running dependency installation and creating/writing configuration files. For a skill marketed as meeting analysis/automation, this exceeds the expected scope and increases supply-chain and local file-system risk, especially if a user runs setup without understanding that code and config will be modified.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The config command prints the entire configuration object directly to stdout, which may include secrets such as ai_api_key. In shared terminals, logs, agent transcripts, or support screenshots, this can leak credentials and enable unauthorized API use.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The code advertises AI-powered external analysis when an API key is present, but it never contacts any external provider and instead returns local heuristic results. This is a security-relevant integrity issue because users or downstream systems may make trust decisions, data-handling assumptions, or compliance assertions based on a false belief that configured AI analysis actually occurred.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
99% confidence
Finding

getAIAnalysis is explicitly documented as calling OpenAI/Grok, but the function only performs local heuristics and marks results as aiEnhanced: true. That can mislead operators, auditors, or dependent automation into believing stronger or different processing occurred, creating a deceptive security boundary and risking improper handling of sensitive meeting data or inaccurate workflow decisions.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The module is presented as handling calendar connections and meeting retrieval, but all provider initializers are mock placeholders and the meeting APIs return hardcoded sample data. In a skill marketed as an AI-powered meeting optimization tool, this can mislead downstream logic, users, or automations into acting on fabricated data, causing integrity and trust failures rather than direct code execution.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The code presents week-over-week trends as if they were comparative analytics, but it invents prior-week baseline values using fixed multipliers instead of real historical data. In a meeting-optimization tool, this can mislead users into making decisions based on fabricated performance improvements or regressions, undermining trust and potentially driving harmful business actions.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The calendar API documentation describes retrieving and analyzing meeting schedules, attendee counts, descriptions, and related metadata without warning that this information is often sensitive operational data. Users may integrate the calendar features assuming routine read access is low risk, when in practice it can expose executive schedules, confidential project names, attendance patterns, or meeting descriptions to the skill and any downstream analysis components.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The API documentation encourages processing meeting notes with AI features and supports external AI providers, but it does not disclose that sensitive meeting content, decisions, action items, or participant data may be transmitted to third-party services. In a workplace context, this can lead to unintentional exposure of confidential business information, HR data, legal discussions, or regulated data because integrators may enable these features without informed consent or proper controls.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The setup wizard prompts for API keys and tokens, stores them in memory, and later writes the collected configuration to config/default.json in plaintext without warning the user or applying any protection. This creates a realistic credential exposure risk through source control commits, local file disclosure, backups, or overly permissive filesystem access; in a tool that integrates with AI, calendar, and task systems, stolen secrets could grant access to external services and organizational data.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The README provides only broad marketing language and installation guidance, but does not define when the skill should activate, what calendar/meeting data it is allowed to access, or what limits apply to automation actions such as follow-ups. For a skill that analyzes meetings and automates downstream behavior, missing scope and trigger constraints can lead to overbroad invocation, unnecessary exposure of sensitive meeting content, and unintended automated actions.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
91% confidence
Finding

The dependency uses a caret range instead of an exact version, allowing different package releases to be installed over time. In a skill that handles calendar data, AI APIs, and automation, this weakens supply-chain integrity and can unintentionally pull in a vulnerable or malicious update.

Content

Scanner excerpt · package.json (reported line 23)May include surrounding context.

json
"author": "ClawHub",
  "license": "Commercial",
  "dependencies": {
    "openai": "^4.0.0",
    "googleapis": "^128.0.0",
    "node-schedule": "^2.1.0",
    "ical": "^0.8.0",

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
94% confidence
Finding

The googleapis dependency is not pinned to an exact version, so installs are not reproducible and may resolve to newer releases with different security properties. Because this package likely interfaces with calendar data and OAuth-enabled APIs, supply-chain drift is more sensitive than in a purely local utility.

Content

Scanner excerpt · package.json (reported line 24)May include surrounding context.

json
"license": "Commercial",
  "dependencies": {
    "openai": "^4.0.0",
    "googleapis": "^128.0.0",
    "node-schedule": "^2.1.0",
    "ical": "^0.8.0",
    "dotenv": "^16.0.0",

Static analysis

No suspicious patterns detected.