Back to skill

Security audit

个人效率顾问基础版

Security checks for vulnerabilities and agentic risk

Overview

This productivity skill is not clearly malicious, but it asks for command access and includes under-scoped checks that can expose secrets-related environment data.

Review before installing. Do not let the skill run broad environment-variable checks or print API keys/tokens, especially the PowerShell example. Only use it in an agent profile where command execution and external API access are restricted or require explicit confirmation.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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)

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:177
Finding

Sensitive Environment Variable Enumeration May Expose Credentials

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 177–186
Vulnerability Type: Sensitive credential discovery through unnecessary environment enumeration
Risk Level: Medium

Vulnerable Code

bash
# Verify whether environment variables are configured
echo "Configuration check:"
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 skill instructs an AI Agent with execution capability to enumerate environment variables whose names contain API, KEY, TOKEN, or SECRET. This broad credential-discovery operation is not necessary for the skill's stated personal-productivity functions.

The Unix command masks values using sed, but it still reveals the names and existence of potentially sensitive credentials. More importantly, the suggested PowerShell command formats complete environment-variable objects and does not mask their values. If an Agent or user runs that command, API keys and access tokens may be copied into terminal output, Agent context, execution logs, conversation history, or telemetry.

This violates least-privilege principles by directing the Agent to inspect unrelated credentials rather than checking one explicitly documented configuration variable without retrieving its value.

Attack Path

  1. A user installs or invokes the skill in an Agent environment that has exec access.
  2. The Agent follows the environment-verification instructions in SKILL.md.
  3. It executes the Unix or PowerShell environment-enumeration command.
  4. The command discovers variables associated with API keys, tokens, and secrets.
  5. On PowerShell, the values may be printed in full; on Unix, credential names and presence are disclosed.
  6. The resulting output may be incorporated into Agent context, logs, chat history, or external platform telemetry.
  7. Any party with access to those records c ...[truncated 692 chars]
Remediation
View remediation

Remediation Suggestions

  1. Remove all broad searches over the process environment.
  2. Document the exact environment variable required by the skill, if one is genuinely necessary.
  3. Verify only whether that specific variable exists, without printing or returning its value.
  4. For PowerShell, use a presence-only check such as:
    powershell
    if (Test-Path Env:EXPECTED_API_KEY) {
        Write-Output "EXPECTED_API_KEY is configured"
    } else {
        Write-Output "EXPECTED_API_KEY is not configured"
    }
    
  5. For POSIX shells, use a presence-only check such as:
    bash
    if [ -n "${EXPECTED_API_KEY+x}" ]; then
      echo "EXPECTED_API_KEY is configured"
    else
      echo "EXPECTED_API_KEY is not configured"
    fi
    
  6. Ensure command output, Agent logs, and diagnostic telemetry redact secret values by default.
  7. Remove the exec permission if the productivity-advisory workflow does not require command execution.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (7)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill requests exec capability near the top-level metadata without a prominent warning or tight justification tied to its productivity domain. Enabling command execution for a non-administrative advisory skill increases the blast radius of prompt misuse, accidental invocation, or future instruction expansion.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill states that the agent will automatically parse requests, call tools or APIs, execute operations, and supports callback URLs, but it does not provide a clear, prominent warning about privacy, network egress, or system-impacting behavior. This can cause users to unknowingly authorize external communication or automated actions based on natural-language prompts.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The trigger condition says to use the skill for broad tasks like data analysis, reporting, statistics, and visualization, which do not align tightly with a personal productivity advisor. Overbroad invocation criteria increase the chance the agent will activate this skill in unrelated contexts and perform unintended actions with its available tools.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill is presented as a personal productivity advisor, but it instructs the agent to inspect the environment and generally 'call corresponding tools or APIs' automatically. That expands its effective privilege far beyond its stated purpose and can lead to unnecessary system access or unintended disclosure of local/system data during normal use.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

Enumerating environment variables matching API, KEY, TOKEN, or SECRET is highly sensitive behavior and is not justified for a personal productivity skill. Even if the example masks values in output, the command still probes for the existence and naming of secrets, which can aid credential discovery, leak metadata, or normalize unsafe secret handling patterns.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The document claims FREE-version data remains local and is not uploaded, but elsewhere states that some features require network access to external APIs. This inconsistency can mislead users about data flows and trust boundaries, causing them to share sensitive information under false assumptions about locality and privacy.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
72% confidence
Finding

The display name, summary, and the entire operating description are presented only in Chinese, while the skill is otherwise described as generally applicable across agents and platforms. There is no statement that the skill supports multiple languages or that Chinese is a deliberate region-specific constraint, which can conflict with language-choice policy expectations.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.