Back to skill

Security audit

统一仪表盘基础版

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a dashboard helper, but it includes overbroad credential-environment checks and unclear network/privacy disclosures that users should review before installing.

Install only if you are comfortable with an exec-enabled dashboard helper. Before use, avoid running the provided broad environment-variable check; check only the specific API key this tool actually needs and never print secret values. Confirm any dashboard start command, port, and network exposure, and treat the privacy claim as incomplete because the artifact also mentions external APIs.

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

Error
Location
SKILL.md:165
Finding

Credential Disclosure Through Broad Environment Variable Enumeration

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:165-167
Vulnerability Type: Sensitive information exposure
Risk Level: High

Complete Code Snippet

bash
env | grep -E "API|KEY|TOKEN|SECRET" | sed "s/=.*/=***/"  # Linux/macOS
# or PowerShell
# Get-ChildItem Env: | Where-Object {$_.Name -match "API|KEY|TOKEN"} | Format-Table

Technical Analysis

The configuration-validation procedure broadly enumerates environment variables whose names contain API, KEY, TOKEN, or SECRET, rather than checking only the specific variable required by the skill.

On Linux and macOS, the sed expression masks values before displaying the results, but it still exposes sensitive variable names. These names may reveal deployed services, authentication mechanisms, infrastructure details, or credential naming conventions.

The documented PowerShell alternative is more severe: Get-ChildItem Env: produces environment-variable objects containing names and values, and Format-Table displays both by default. Consequently, matching API keys and access tokens can be printed in plaintext to the Agent response, console, transcript, or execution logs.

No evidence indicates that the skill transmits these credentials to an external destination. The confirmed issue is local disclosure through command output.

Attack Path

  1. A user asks the Agent to validate the skill configuration according to SKILL.md.
  2. The Agent uses its permitted exec capability to execute the documented operating-system-specific command.
  3. The command searches the entire process environment for broadly named credential variables, including credentials unrelated to this skill.
  4. On PowerShell, matching variable names and plaintext values are formatted into command output.
  5. The Agent, terminal, or surrounding platform records or displays that output.
  6. A party with access to the conversation transcript, terminal output, or execution l ...[truncated 888 chars]
Remediation
View remediation

Remediation Suggestions

  1. Remove broad environment enumeration based on generic patterns such as API|KEY|TOKEN|SECRET.
  2. Define the exact environment variable required by the skill and check only whether that variable exists.
  3. Return only a boolean status such as configured or missing; never print the variable's value.
  4. Ensure validation output is safe on every supported platform rather than relying on platform-specific default formatting.
  5. Avoid exposing credential names unless they are explicitly documented and necessary for remediation.
  6. Add instructions prohibiting the Agent from including environment-variable values in responses, logs, exceptions, or diagnostic output.
  7. If a credential may already have been exposed through the PowerShell command, revoke and rotate it, then review Agent transcripts and execution logs for unauthorized disclosure.

Safer examples:

bash
if [ -n "${DASHBOARD_API_KEY:-}" ]; then
  printf '%s\n' 'DASHBOARD_API_KEY is configured'
else
  printf '%s\n' 'DASHBOARD_API_KEY is missing'
fi
powershell
if (Test-Path Env:DASHBOARD_API_KEY) {
    Write-Output "DASHBOARD_API_KEY is configured"
} else {
    Write-Output "DASHBOARD_API_KEY is missing"
}
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (8)

Intent-Code Divergence

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill claims all free-version data remains local and is not uploaded, while elsewhere admitting network access to external APIs and automatic agent/API calls. This can mislead users into sharing operational data under false privacy assumptions, causing unintentional disclosure of logs, metrics, identifiers, or credentials to external services.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The manifest description claims an operations/dashboard-oriented tool, yet it also says to use it for 项目管理、任务规划、进度跟踪、团队协作, which are not supported by the concrete capability list later in the file. The documented capabilities in L44-L88 are limited to monitoring, queue handling, logs, and CLI status checks, so the stated purpose overpromises broader management functionality.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The manifest description explicitly includes 团队协作 as a use case, while L35-L40 and L256-L259 state that the FREE version does not support team collaboration. This is an active contradiction between the skill's top-level intent statement and its own version/limitation documentation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The description explicitly states '支持中文交互' and the document is written as if Chinese is the expected interaction mode, but it does not offer language selection or make the locale restriction clearly justified. This can violate language/locale policy when users have not opted into Chinese-only behavior.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill encourages shell execution and starting a local service without a clear upfront warning, confirmation step, or least-privilege guidance. In an agentic context with exec enabled, this increases the risk of unintended command execution, port exposure, or unsafe service startup based on ambiguous user prompts.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

L133 says the skill should be used when data analysis, reports, statistics, and visualization are needed, but the rest of the file describes a lightweight dashboard for monitoring and queue/status inspection only. This is a semantic mismatch between claimed use context and the operations actually described in the skill.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger text says to use the skill whenever the user needs data analysis, report generation, statistical insights, or data visualization. Those phrases are broad everyday requests and extend beyond the dashboard/monitoring scope described elsewhere, which could cause unintended invocation for many unrelated analytics tasks.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill instructs enumeration of environment variables matching API, KEY, TOKEN, and SECRET, which broadens access to sensitive credentials unrelated to the dashboard task. Even though the example masks values, it normalizes collection and handling of secret-bearing environment variables and increases the chance that an agent exposes, logs, or misuses them in later steps.

Content

No source excerpt is available for this finding.