Back to skill

Security audit

Meeting Transcriber

Security checks for vulnerabilities and agentic risk

Overview

This appears to be a real meeting-transcription skill, but it should be reviewed because the actual recording/transcription runs through an external local script that is not included in the package.

Install only if you trust and have reviewed the external D:/dev/python/voiceFunAsr/vocie_mic_fixed_gbk.py script and the hard-coded Windows/Conda setup. Before recording, get participant consent, confirm where transcripts are saved, and make sure the spawned transcription window or process is stopped when the meeting ends.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (7)

subprocess module call

Medium
Category
Dangerous Code Execution
Content
"python_path": python_path,
            "env_path": env_info.get('audioProject_path'),
            "conda_version": env_info.get('conda_version'),
            "detected_at": subprocess.run(
                'date /T && time /T',
                shell=True,
                capture_output=True,
Confidence
97% confidence
Finding
This code invokes a shell with `shell=True` to execute `date /T && time /T`. Even though the command string is static, shell execution unnecessarily increases attack surface and can be influenced by platform-specific command resolution or environment manipulation, making it riskier than using native Python time APIs.

Intent-Code Divergence

Medium
Confidence
98% confidence
Finding
The script presents itself as Conda environment setup, but it also rewrites `SKILL.md`, creates a batch launcher, and modifies `meeting_minutes.py`. This mismatch between stated purpose and actual behavior is dangerous because it hides code and documentation changes behind an operational setup flow, reducing user awareness and review.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The skill describes starting live microphone transcription, saving transcripts, and generating meeting notes, but it does not clearly warn users about privacy, consent, or the sensitivity of recorded meeting content before use. In a meeting-transcription context, this omission is more dangerous because users may capture confidential discussions or personal data without informing participants or understanding that data will be stored on disk.

Missing User Warnings

Low
Confidence
86% confidence
Finding
The documentation presents the environment setup command as a simple management action without explicitly warning that it can create or modify a Conda environment and install packages. This can surprise users and lead to unintended local system changes, especially in environments where dependency installation or environment mutation is sensitive.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The script rewrites `SKILL.md` and `meeting_minutes.py` automatically without a specific warning or targeted confirmation for those file modifications. Silent source mutation is risky in a skill context because it can introduce persistence, alter behavior, or conceal later malicious changes under the guise of setup.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The skill starts microphone-based transcription and indicates files will be saved, but it does not present a clear consent gate or privacy warning before recording begins. In a meeting-transcription context, silent or implicit capture is sensitive because it may collect private conversations and persist them to disk without informed user approval.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
"python_path": python_path,
            "env_path": env_info.get('audioProject_path'),
            "conda_version": env_info.get('conda_version'),
            "detected_at": subprocess.run(
                'date /T && time /T',
                shell=True,
                capture_output=True,
Confidence
98% confidence
Finding
Using `subprocess.run(..., shell=True)` for a simple timestamp command is an unnecessary shell invocation and creates a tool-parameter abuse surface. In a local setup script that also edits files, this increases danger because any avoidable command-execution primitive should be treated cautiously, especially when the script already performs persistent modifications.

Static analysis

No suspicious patterns detected.