Back to skill

Security audit

pptx-generator

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward PowerPoint generator with some quality and dependency-supply-chain cautions, but no evidence of hidden, destructive, persistent, or data-exfiltrating behavior.

Install this only where creating local .pptx files is acceptable. Prefer a virtual environment, pin reviewed versions of python-pptx and Pillow, and avoid running dependency installation with elevated privileges. Expect mostly Chinese instructions and broad presentation-generation triggers.

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

Unpinned Third-Party Dependencies and Unsafe Installation Guidance

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:6-9, SKILL.md:370, and SKILL.md:387
Vulnerability Type: T08: Insecure Dependencies
Risk Level: Medium

Vulnerable code snippets:

yaml
dependencies:
  python:
    - python-pptx
    - pillow
markdown
| `ModuleNotFoundError` | 缺少 python-pptx | `pip install python-pptx pillow` |
python
print("安装命令: pip install python-pptx pillow")

Technical Analysis

The Skill declares python-pptx and pillow without exact versions, integrity hashes, a lock file, or a trusted package-index constraint. It also explicitly instructs users or agents to install the latest packages resolved by pip.

Dependency resolution therefore occurs at installation time and may produce different artifacts across environments. If a package release, transitive dependency, package-index account, configured mirror, or dependency-resolution path is compromised, installation can introduce attacker-controlled code. Python package installation may execute build backend logic, while malicious installed code could execute when imported during presentation generation.

The package names are consistent with the Skill's documented purpose, and the audited project contains no evidence that the named packages are presently malicious. The issue is the avoidable supply-chain exposure created by mutable, unverified dependency resolution.

Attack Path

  1. An agent or user invokes the Skill in an environment where the required Python modules are unavailable.
  2. The agent or user follows the documented command:
    bash
    pip install python-pptx pillow
    
  3. pip resolves unspecified versions and transitive dependencies through the environment's configured package index or mirror.
  4. A compromised package release, dependency, account, index, or mirror supplies malicious installation or runtime code.
  5. The malicious code executes during package bu ...[truncated 1124 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin every direct dependency to a reviewed exact version, for example:
    text
    python-pptx==<reviewed-version>
    Pillow==<reviewed-version>
    
  2. Generate a lock file that includes all transitive dependencies.
  3. Require package hashes, such as through a hash-locked requirements file and:
    bash
    python -m pip install --require-hashes -r requirements.txt
    
  4. Install only from an approved HTTPS package index or an internally controlled artifact repository.
  5. Disable unexpected extra indexes and audit environment-level pip configuration to reduce dependency-confusion risk.
  6. Perform installation inside an isolated virtual environment or container under a non-privileged account.
  7. Scan and review pinned dependency artifacts before publication and periodically monitor them for security advisories.
  8. Replace the unpinned installation commands at SKILL.md:370 and SKILL.md:387 with the reviewed, hash-verified installation procedure.
  9. Avoid running package installation with administrator or root privileges.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (7)

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · SKILL.md (reported line 1)May include surrounding context.

md
---
name: pptx-generator
version: 1.1.0
description: "Generate professional editable PowerPoint presentations in business, academic, or creative styles"

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The activation guidance uses very generic phrases such as asking to 'make a PPT', which can cause the agent to invoke this skill in many ordinary contexts without strong intent verification. Over-broad triggers increase the chance of inappropriate routing, especially when a user may only want advice, outlines, or edits rather than file generation.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The usage section lists broad natural-language trigger phrases without constraints on when the skill should or should not activate. This can lead to accidental invocation and capability overreach, where the skill handles requests outside its intended scope of generating new presentations from scratch.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The description says to use the skill whenever a user wants to create editable PowerPoint presentations with professional layouts, multiple styles, and beautiful designs, which is a broad activation condition rather than a narrowly scoped trigger. Overly broad routing can cause the agent to invoke this skill in situations where it is not the best or safest match, increasing the chance of unintended behavior, misuse, or priority hijacking over more appropriate skills.

Content

No source excerpt is available for this finding.

Scope Creep

Low
Category
Excessive Agency
Confidence
70% confidence
Finding

Skill's behavior or capabilities extend beyond its stated purpose. Scope creep allows an agent to perform actions unrelated to its documented functionality, increasing the attack surface.

Content

Scanner excerpt · LICENSE.txt (reported line 12)May include surrounding context.

text
permit persons to whom the Software is furnished to do so.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill description and surrounding instructions are presented in Chinese with no indication that users may choose another language. This can violate language/locale policy when a skill implicitly fixes the interaction language without opt-in or justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

The description mixes Chinese and English without stating whether the skill is intended for multilingual users, how locale is selected, or whether behavior differs by language. This can lead to ambiguous routing or mismatched invocation for users in the wrong language context, which may cause confusion or incorrect skill selection.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.