Back to skill

Security audit

PPT 中文工具基础版

Security checks for vulnerabilities and agentic risk

Overview

The skill appears intended for Chinese PowerPoint assistance, but it asks for exec/API capability while giving unclear and partly contradictory privacy and credential-handling guidance.

Review before installing. Use this only for Chinese PPT work, avoid running the broad environment-variable check, and do not provide sensitive presentations or API keys unless the skill clearly asks for confirmation and explains whether content will remain local or be sent to an external API.

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:192
Finding

Credential-Related Environment Variable Enumeration

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 192–194
Vulnerability Type: Unnecessary inspection and potential disclosure of credential-related environment variables
Risk Level: Medium

Vulnerable Code:

bash
# Verify whether environment variables are set
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 to enumerate environment variables whose names contain credential-related terms such as API, KEY, TOKEN, and SECRET. This broad inspection is not required for the stated presentation creation and editing functionality and violates the principle of least privilege.

The Linux/macOS command masks values before displaying them, but it still discloses the names and existence of sensitive variables. Those names may reveal deployed services, authentication mechanisms, or operational configuration.

The suggested PowerShell alternative is more severe: Get-ChildItem Env: returns environment-variable entries containing both names and values, and Format-Table may display plaintext credential values. If an Agent executes the documented alternative, secrets could be included in terminal output, Agent context, execution logs, or conversation history.

No external transmission mechanism was identified. The exposure is limited to environment variables accessible to the Agent's current process and user account; the instruction does not elevate operating-system privileges.

Attack Path

  1. A user or Agent loads the skill and follows its environment-validation instructions.
  2. The Agent executes the command appropriate to the host operating system.
  3. The command searches the entire current-process environment for broadly named credential variables.
  4. On Linux or macOS, sensitive vari ...[truncated 947 chars]
Remediation
View remediation

Remediation Suggestions

  1. Remove all broad environment enumeration based on generic terms such as KEY, TOKEN, and SECRET.

  2. Define the exact environment-variable name required by the skill, if any.

  3. Validate only whether that specific variable exists, without printing its value. For example:

    bash
    if [ -n "${EXPECTED_API_KEY:-}" ]; then
      echo "EXPECTED_API_KEY is configured"
    else
      echo "EXPECTED_API_KEY is not configured"
    fi
    
  4. For PowerShell, use a presence-only check that cannot render the value:

    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. Prevent secrets from being written to Agent responses, terminal logs, command histories, telemetry, or execution logs.

  6. Run the Agent with a minimal environment containing only variables required for the presentation task.

  7. Document every credential the skill genuinely requires and explain why access is necessary.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (7)

Intent-Code Divergence

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The file claims FREE-version data is stored locally and not uploaded, yet elsewhere documents external API usage and network-required functionality. Contradictory privacy/security claims are dangerous because they can mislead users into exposing confidential slide content, notes, or embedded business data to remote services without informed consent.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The file consistently defines the skill around Chinese-only output and configuration, including explicit zh-CN settings, but does not present this as an opt-in language choice within the skill behavior. Under the language/locale policy, forcing a specific language without user opt-in can be a policy violation unless the locale constraint is clearly documented and justified.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger condition says to use the skill for broad data-analysis, reporting, statistics, and visualization needs, which is misaligned with the stated PPT Chinese-formatting scope. Overbroad triggers increase the chance the agent invokes an exec-enabled, network-capable skill for unrelated tasks, expanding attack surface and potentially exposing unrelated user data.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill explicitly advertises exec-based operation and possible external API/network use, but does not present a clear, user-facing warning that commands may be run or that content may be transmitted. In an agent setting, lack of conspicuous disclosure undermines informed consent and can lead users to expose sensitive files or allow shell actions they did not expect.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill markets itself as a local PPT/document-processing tool, but the same file states that some functionality depends on external APIs and network access. This mismatch can cause users to provide sensitive presentation content under the false assumption that processing is purely local, creating an undisclosed data exposure risk.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
73% confidence
Finding

The document repeatedly frames the FREE edition as limited to core, lightweight use without batch capabilities, yet the capability descriptions are broad and generic ('支持创建/查询/导出操作' at L60, L67, L74, L81, L88) and not clearly constrained to the listed PPT-focused functions. While not a direct code contradiction, the documentation overstates generalized operational scope relative to the edition-specific limitations and purpose.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

The description says users can trigger the skill via natural-language instructions without defining a constrained set of trigger phrases or exclusion conditions. Without specific activation guidance, common requests may overlap with other general-purpose document or presentation skills.

Content

No source excerpt is available for this finding.