Back to skill

Security audit

autoglmasr

Security checks for vulnerabilities and agentic risk

Overview

This ASR skill is purpose-aligned but should go through Review because it runs an unpinned npm MCP server and sends local audio to an external transcription API.

Before installing, pin autoglm-asr-mcp to a reviewed exact version, consider running the MCP server in a restricted environment, use a dedicated API key, and only transcribe audio you are comfortable sending to the external Zhipu/BigModel ASR service.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T08 · Insecure Dependencies

Error
Location
SKILL.md:23
Finding
Unpinned npm Package Is Downloaded and Executed Without Verification<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:23` and `SKILL.md:31-33` **Vulnerability Type**: Unverified remote dependency execution **Risk Level**: High ### Vulnerable Code At `SKILL.md:23`: ```bash npx autoglm-asr-mcp ``` At `SKILL.md:31-33`: ```json "autoglm-asr": { "command": "npx", "args": ["-y", "autoglm-asr-mcp"], ``` ### Technical Analysis The installation and MCP configuration execute `autoglm-asr-mcp` through `npx` without specifying an exact package version or verifying package integrity. Consequently, the effective executable is resolved from the npm registry at runtime and may change after this skill has been reviewed. The MCP configuration also supplies the `-y` option, which automatically accepts installation prompts. This removes an interactive checkpoint before downloading and executing the remotely resolved package. If the package's publishing account, npm distribution channel, or a future release is compromised, a malicious package version could execute arbitrary lifecycle or application code under the identity of the user running the MCP server. This finding does not establish that the currently published package is malicious. It identifies an unsafe supply-chain execution pattern in which the reviewed skill does not cryptographically or version-wise determine the code that will run. ### Attack Path 1. An attacker compromises the npm account, publishing token, repository release process, or another distribution component associated with `autoglm-asr-mcp`. 2. The attacker publishes a malicious package version under the same package name. 3. A user or agent follows the documented command, or an MCP client starts the configured server. 4. `npx -y autoglm-asr-mcp` resolves and downloads the attacker-controlled version without requesting confirmation. 5. npm lifecycle scripts or the package entry point execute with the permissions and environment of the MCP process ...[truncated 1156 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin the dependency to an exact, reviewed version in every command and MCP configuration, for example: ```bash npx --yes autoglm-asr-mcp@X.Y.Z ``` ```json { "command": "npx", "args": ["--yes", "autoglm-asr-mcp@X.Y.Z"] } ``` 2. Prefer installing through a project manifest and committed lockfile rather than resolving a package dynamically on every launch. Use reproducible installation such as `npm ci`. 3. Verify the package tarball's integrity and provenance before deployment. Record the expected registry, exact version, integrity hash, and reviewed publisher information. 4. Remove automatic confirmation suppression where operationally possible. Require an explicit review step before downloading or updating executable dependencies. 5. Establish a controlled update process in which new versions are reviewed, tested, and approved before changing the pinned version. 6. Run the MCP server in a sandbox, container, or restricted operating-system account. Grant read access only to the audio files required for the current task and deny unnecessary filesystem, process, and network access. 7. Provide the API key through a narrowly scoped secret mechanism. Use a dedicated key with minimal permissions, rotate it regularly, and ensure it is not exposed to unrelated child processes. 8. Consider mirroring the approved package artifact in a trusted internal registry so runtime availability and execution do not depend directly on a mutable public package release. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (2)

Rp1

Medium
Category
MCP Rug Pull
Confidence
96% confidence
Finding
The skill instructs users to run the MCP server via an unpinned `npx autoglm-asr-mcp`, which fetches the latest package version at execution time. This creates a supply-chain risk: if the package is compromised, hijacked, or a malicious update is published, users may execute attacker-controlled code in their local environment with access to files, environment variables, and MCP-connected data.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The skill processes local audio files and sends their contents to an external ASR API, but the description does not clearly warn users that potentially sensitive audio leaves the local system. This can lead to unintended disclosure of confidential conversations, personal data, or regulated information, especially because the tool accepts arbitrary absolute file paths and is designed for bulk/long-audio transcription.

Static analysis

No suspicious patterns detected.