Back to skill

Security audit

meeting-assistant

Security checks for vulnerabilities and agentic risk

Overview

This meeting-bot skill is purpose-aligned but needs review because it can capture live meeting audio/chat and may route sensitive API credentials and meeting content through a third-party gateway with limited disclosure and controls.

Review this before installing. Use it only for meetings where you have authority and have notified participants or obtained required consent. Prefer restricted, revocable API keys with tight quotas, and rotate any Gemini/OpenAI keys already shared through the gateway. Do not use it for confidential meetings unless the gateway operator's credential handling, transcript retention, logging, subprocessors, and deletion controls are acceptable to your organization.

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
Findings (1)

other

Error
Location
SKILL.md:39
Finding
Third-Party Transmission of Reusable Provider API Credentials## Vulnerability Details **File Location**: `SKILL.md:39-50` and `SKILL.md:116-119` **Vulnerability Type**: Third-party credential exposure **Risk Level**: Critical The Skill directs users to configure reusable Gemini and OpenAI API keys while connecting the agent to the externally operated Habilis MCP Gateway. It explicitly states that these credentials transit through the gateway. **Relevant code (`SKILL.md:39-50`):** ```bash export HABILIS_API_KEY="hab_live_..." export GEMINI_API_KEY="..." # Para voz Jitsi Meet (Gemini Live) export OPENAI_API_KEY="..." # Para voz Google Meet (OpenAI Realtime) ``` ```yaml mcp_servers: habilis: url: "https://xvix.com.br/api/mcp" headers: Authorization: "Bearer ${HABILIS_API_KEY}" ``` **Credential-transmission statement (`SKILL.md:116-119`):** ```text ## 🔒 Segurança & Privacidade - **Zero Storage**: Chaves de API (Gemini, OpenAI) residem exclusivamente no ambiente local do cliente e trafegam de forma segura via requisição ao Gateway. - **Sem scripts locais**: Nenhum código-fonte, endpoint de terceiros ou lógica de bypass é incluído nesta skill. - **Transcrições efêmeras**: As transcrições são processadas em memória e entregues ao agente — não ficam armazenadas no Gateway. ``` ### Technical Analysis Gemini and OpenAI API keys are reusable bearer credentials. Any party that obtains one can exercise the provider permissions associated with that key without independently authenticating as the user. Although the configuration only visibly places the Habilis token in the MCP authorization header, the Skill explicitly states that the Gemini and OpenAI credentials transit through the gateway. This exposes high-value provider credentials to infrastructure outside the corresponding provider and outside the user's direct control. The assertion that credentials reside exclusively in the client's local environment is inconsistent with the statement ...[truncated 2058 chars]
Remediation
## Remediation Suggestions 1. Do not transmit raw Gemini or OpenAI API keys to the Habilis Gateway. 2. Connect clients directly to the corresponding provider whenever technically possible. 3. If gateway mediation is necessary, use narrowly scoped, short-lived, revocable tokens rather than reusable account API keys. 4. Isolate provider credentials in a user-controlled proxy that exposes only the minimum operations required for meeting voice functionality. 5. Ensure separate credentials are used for each service, environment, and customer, with strict quota and permission restrictions. 6. Publish an explicit data-flow specification identifying every credential and sensitive data field transmitted to the gateway, its purpose, retention period, subprocessors, and deletion behavior. 7. Remove the contradictory claim that provider keys remain exclusively local if they are sent through gateway requests. 8. Prevent credentials from entering application, proxy, telemetry, error, or request logs. Add automated secret-redaction controls and test them regularly. 9. Provide immediate key-revocation and rotation procedures, and advise existing users to rotate any provider keys previously transmitted to the gateway. 10. Subject the gateway implementation and deployment controls to an independent security review before asking users to entrust it with provider credentials or sensitive meeting content.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (5)

Credential Access

High
Category
Privilege Escalation
Content
### 🚀 Quick Onboarding

1. **Get your Habilis MCP Token**:
   - Go to [https://xvix.com.br](https://xvix.com.br) and generate your access token.

2. **Set Environment Variables**:
   ```bash
Confidence
70% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Missing User Warnings

High
Confidence
96% confidence
Finding
The skill description does not prominently warn that the agent may enter live meetings, monitor participant speech/chat, and generate transcripts and minutes. Because this capability affects third-party participants and may trigger recording/monitoring obligations, insufficient disclosure increases the risk of non-consensual surveillance, privacy violations, and accidental misuse.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The README promotes joining meetings, transcribing audio, and capturing chat, but does not clearly warn users about consent, privacy, recording laws, or organizational policy requirements. In this context, the omission is materially risky because the skill is explicitly designed to enter live calls and collect participant communications, which can expose users to unauthorized surveillance, policy violations, or legal/compliance issues.

Vague Triggers

Medium
Confidence
93% confidence
Finding
The trigger list includes generic terms like 'jitsi', 'google meet', and 'meeting minutes' that can cause the skill to activate when a user is only asking about those platforms or topics, not requesting a bot to join a live call. In this skill's context, unintended activation is especially sensitive because activation can lead to joining meetings, capturing audio/chat, and producing transcripts, creating privacy and consent risks.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The manifest advertises that the skill joins meetings, performs real-time transcription with speaker diarization, and generates meeting minutes, but it does not warn users about recording, consent, data retention, or privacy implications. In a meeting-bot context, this omission is security-relevant because the skill may capture sensitive business or personal conversations, and users may invoke it without understanding that live audio and speaker-attributed transcripts are being processed by third-party services.

Static analysis

No suspicious patterns detected.