Back to skill

Security audit

Meeting Mastery

Security checks for vulnerabilities and agentic risk

Overview

This meeting assistant is coherent and not deceptive, but it directs persistent storage of personal contact details and confidential meeting information without enough controls or consent guidance.

Install only if you are comfortable with the agent creating persistent local meeting and relationship records. Avoid storing sensitive personal details, confidential meeting notes, or regulated business data unless you choose a protected location and define your own retention and deletion process.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:274
Finding
Plaintext Persistence of Sensitive Meeting and Relationship Data<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:274-299`, `SKILL.md:386-396`, and `SKILL.md:408` **Vulnerability Type**: Plaintext storage of sensitive personal and business information **Risk Level**: Medium ### Vulnerable Code `SKILL.md:274-299`: ```yaml Maintain a relationship file per key contact: name: "Jane Smith" company: "Acme Corp" role: "VP Engineering" first_met: "2026-01-15" meetings_count: 4 communication_style: "Data-driven, prefers email, gets straight to business" personal_notes: - Has twin daughters starting university this year - Marathon runner — ran Boston 2025 - Vegetarian (for restaurant picks) topics_of_interest: - Platform migration - Team scaling - AI/ML integration last_interaction: "2026-02-10" open_threads: - "Waiting on their security review" - "Interested in Phase 2 proposal" sentiment_trend: "positive — increasingly engaged" ``` The same section instructs the agent to retrieve these persistent records before meetings: ```markdown ### Before Each Meeting: Auto-Pull - Pull contact cards for all attendees - Surface open threads and last interaction - Flag if it's been >30 days since contact (relationship at risk) ``` `SKILL.md:386-396`: ```text meetings/ ├── briefs/ # Pre-meeting briefs │ └── YYYY-MM-DD-[title].md ├── notes/ # Meeting notes │ └── YYYY-MM-DD-[title].md ├── contacts/ # Relationship cards │ └── [name].yaml ├── actions/ # Action item tracker │ └── active-actions.json └── audit/ # Weekly meeting audits └── YYYY-WW-audit.md ``` `SKILL.md:408`: ```markdown - **Confidential meetings:** Mark notes as `CONFIDENTIAL` — don't include in weekly audit details. ``` ### Technical Analysis The Skill directs the agent to collect and persist sensitive information in ordinary Markdown, YAML, and JSON files. The stored information may include personal details, communication preferences, relationship history, meeting discussions, sent ...[truncated 2049 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. **Minimize collection** - Store only information necessary for the meeting workflow. - Do not retain family details, dietary preferences, inferred sentiment, or other sensitive personal facts by default. - Require explicit user confirmation before persisting personal or confidential information. 2. **Use protected storage** - Store sensitive records in an approved encrypted data store rather than ordinary Markdown, YAML, or JSON files. - Encrypt data at rest using keys managed outside the project directory. - Apply restrictive filesystem permissions if local files must be used. 3. **Enforce access boundaries** - Limit access to the user and agent components that require the records. - Prevent unrelated Skills and processes from reading the meeting-data directory. - Separate confidential meeting records from general workspace files. 4. **Implement lifecycle controls** - Define short, configurable retention periods. - Provide mechanisms to inspect, redact, export, and securely delete stored records. - Remove stale contact details and completed action records automatically. 5. **Protect repository and backup workflows** - Add sensitive storage paths to `.gitignore` and equivalent synchronization exclusions. - Warn users not to commit or share generated meeting records. - Ensure backups containing these records are encrypted and access-controlled. 6. **Replace semantic confidentiality labels with controls** - Treat `CONFIDENTIAL` as a policy trigger that prevents unnecessary persistence and sharing. - Require explicit authorization before confidential notes are stored, retrieved, summarized, or exported. ]]>
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
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (4)

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The README explicitly promotes attendee research and persistent relationship memory across meetings, which implies collection, retention, and reuse of personal data without any privacy notice, consent guidance, retention limits, or handling safeguards. In a meeting-assistant context, this can lead users to process sensitive personal or business information in ways that violate privacy expectations, internal policy, or regulatory requirements.

Ssd 3

Medium
Confidence
94% confidence
Finding
The relationship-memory section directs long-term retention and resurfacing of personal details across meetings, enabling profiling of individuals over time. In context, this is more dangerous because the skill is designed to aggregate cross-meeting history and sensitive interpersonal notes, which can create privacy harms, bias, and unintended disclosure far beyond a single meeting workflow.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill explicitly instructs the agent to collect and persist detailed personal information about contacts, including communication style, family details, dietary preferences, and sentiment trends, without any consent, minimization, retention, or access-control guidance. This creates a privacy and compliance risk because the agent is encouraged to build informal dossiers that may exceed what is necessary for meeting preparation and could expose sensitive personal data if misused or leaked.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The skill defines persistent storage for meeting briefs, notes, contacts, and action trackers, but provides no safeguards around sensitive business or personal data likely to be stored in those files. Because meeting notes may include confidential decisions, attendee data, and follow-up obligations, unqualified persistence increases the chance of unauthorized retention, overcollection, and downstream disclosure.

Static analysis

No suspicious patterns detected.