Back to skill

Security audit

AIPPT Generator - AI 专业 PPT 生成

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed PPT generator that reads its own templates and writes user-requested PowerPoint files, with no evidence of hidden data access, persistence, exfiltration, or destructive behavior.

Install in a virtual environment and pin/review python-pptx if using this for sensitive business work. Expect generated decks and some built-in labels to be Chinese unless you adapt the prompts or script, and choose the output path deliberately because the skill creates editable .pptx files on disk.

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

Warning
Location
SKILL.md:113
Finding

Unpinned Runtime Installation of a Third-Party Dependency

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 113 and 128
Vulnerability Type: Unpinned third-party dependency installation
Risk Level: Medium

Vulnerable Code

markdown
> **Path note**: `scripts/generate_pptx.py` is relative to the Skill directory. Change to the Skill directory first or use its absolute path. The script depends on `python-pptx`; install it on first use: `pip3 install python-pptx`.
bash
pip3 install python-pptx

Technical Analysis

The Skill directs users to install python-pptx without specifying a reviewed version, cryptographic hashes, a lockfile, an isolated environment, or an explicitly trusted package index. Consequently, pip resolves the current package and transitive dependency versions from the user's configured index at installation time.

The effective dependency set can therefore change after the Skill has been audited. Exploitation would require compromise or malicious manipulation of an applicable package release, transitive dependency, package repository, or user-configured pip index. This is a supply-chain exposure rather than evidence that the currently published python-pptx package is malicious.

Attack Path

  1. An attacker compromises an applicable dependency release or controls a package source configured in the victim's pip environment.
  2. A user activates the Skill on a system where the dependency is not installed.
  3. The user follows the documented pip3 install python-pptx instruction.
  4. Pip resolves and downloads mutable, unverified package artifacts and transitive dependencies.
  5. Malicious installation or imported package code executes under the account running pip or the presentation generator.
  6. The malicious code can act with that account's filesystem and network permissions.

Impact Assessment

Successful exploitation could provide arbitrary code execution with the privileges of the user performing the installati ...[truncated 315 chars]

Remediation
View remediation

Remediation Suggestions

  1. Pin python-pptx and every transitive dependency to reviewed versions.
  2. Provide a lock or requirements file containing cryptographic hashes, for example:
    bash
    python3 -m venv .venv
    . .venv/bin/activate
    python3 -m pip install --require-hashes -r requirements.txt
    
  3. Generate the hash-locked dependency file from a controlled build environment and review updates before publishing them.
  4. Document the expected trusted package index and disable unintended extra indexes to reduce dependency-confusion exposure.
  5. Explicitly advise users not to install dependencies with root or administrator privileges.
  6. Consider distributing the Skill in a reproducible, isolated environment with dependencies installed and verified during a controlled build stage.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (10)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding

The skill instructs the agent to read local reference files such as references/scenarios.md, references/prompt_templates.md, and references/styling_guide.md, but it declares no explicit tool scope or allowed-tools boundary. In an agent runtime, undeclared file-read capability weakens least-privilege guarantees and can lead to unintended access to local files if the skill is invoked in a broader workspace context.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger list contains broad phrases like '做PPT', '生成PPT', and 'presentation', which are common in normal conversation and may cause accidental activation. Unintended invocation matters here because the skill performs multi-step content generation and can proceed toward file creation/export behavior, increasing the chance of surprise actions or unnecessary data collection.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The document is written as a prompt template that prescribes output structure and wording in Chinese, and it does not offer any language or locale choice for users. Under the policy criteria, forcing a specific language without opt-in is a natural-language policy violation unless clearly justified or user-selectable.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This markdown file presents all scenario instructions, field labels, and usage guidance exclusively in Chinese. Under the policy rule for natural-language violations, forcing a specific language without user opt-in can be a locale-policy issue unless the regional constraint is explicitly documented and justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

This markdown file contains user-facing guidance exclusively in Chinese, including headings, descriptions, and instructions. Under the policy rule for natural-language violations, forcing a specific language without user opt-in can be a locale-policy issue when no alternative language option or justification is provided.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

This code file includes natural-language defaults and examples that prescribe Chinese output, such as the sample title and later hard-coded slide labels. The policy requires avoiding forced language or locale unless the user is given a choice or the constraint is clearly documented and justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The constant maps chart labels to Chinese text only, which means generated presentations will use Chinese labels regardless of user preference. This is a natural-language locale constraint and there is no visible option for users to choose another language.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The table-of-contents title is set to '目录', and similar fixed Chinese labels appear elsewhere in the output path of the script. Because users are not offered a language choice and the restriction is not justified as region-specific, this violates the language/locale policy.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script always renders the summary slide title as '总结', even for users who may expect another language. This is a clear locale-specific output behavior with no documented opt-in or configuration.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill description and workflow explain how to export a .pptx file, but they do not clearly warn users up front that editable files will be written to disk. This can lead to user surprise, accidental storage of sensitive business content, or confusion about where artifacts are created, especially in environments handling confidential reports or client proposals.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.