Back to skill

Security audit

Create PowerPoint

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward PowerPoint-generation helper with some ordinary setup and localization caveats, but no hidden or destructive behavior found.

Install in a dedicated virtual environment and pin python-pptx if reproducibility matters. Be aware that generated slides may include Chinese documentation defaults or English labels such as AGENDA and Thank You unless you ask the agent to localize them.

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

Unpinned Third-Party Dependency Installation

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 15–19
Vulnerability Type: Unconstrained third-party package installation
Risk Level: Medium

Vulnerable Code Snippet:

markdown
## Setup

```bash
pip install python-pptx   # or: uv pip install python-pptx
text

### Technical Analysis

The setup instructions install `python-pptx` without specifying an audited version, lockfile, package hash, or trusted package index. Consequently, the dependency resolved at installation time may differ from the version originally reviewed.

This creates supply-chain exposure if a future package release or transitive dependency is compromised. Package installation and subsequent imports may execute package-controlled code with the privileges of the user running the installation or presentation-generation script.

The audit did not find evidence that `python-pptx` is currently malicious. The issue is the absence of controls ensuring that users install a known and verified dependency set.

### Attack Path

1. An attacker compromises a future release of the named package or one of its transitive dependencies.
2. Alternatively, an attacker influences dependency resolution through an untrusted or misconfigured Python package index.
3. A user follows the documented `pip install python-pptx` or `uv pip install python-pptx` instruction.
4. The package manager resolves and installs the attacker-controlled release because no version or hash is enforced.
5. Malicious installation hooks or imported package code execute in the user's environment.
6. The payload obtains the same filesystem, process, network, and account permissions as the user performing the installation or running the generated script.

### Impact Assessment

Successful exploitation could result in arbitrary code execution under the installing user's account. The accessible scope may include project files, generated presentations, environment variables,
...[truncated 270 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin python-pptx and every transitive dependency to versions that have been reviewed and tested.
  2. Store the resolved dependency set in a lockfile or hash-checked requirements file.
  3. Require package hashes during installation to prevent unreviewed artifacts from being accepted.
  4. Explicitly select the trusted Python Package Index rather than relying on ambient package-manager configuration.
  5. Install dependencies in a dedicated virtual environment with least-privilege permissions.
  6. Periodically review pinned dependencies for published security advisories and update them through a controlled process.

Example hardened workflow:

bash
python3 -m venv .venv
.venv/bin/pip install \
  --index-url https://pypi.org/simple \
  --require-hashes \
  -r requirements.txt

The corresponding requirements.txt should contain an audited exact version and valid distribution hashes rather than a floating version constraint.

Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (5)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill advertises very broad activation phrases such as generic requests to generate a presentation or export something to PowerPoint, including multilingual variants. This can cause the skill to be invoked in situations where the user's intent is ambiguous, increasing the chance that an agent routes sensitive or unrelated content into a code-generating/file-producing workflow without sufficient confirmation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
98% confidence
Finding

The manifest sets the default prompt text in Chinese ("帮我创建一个 PowerPoint 演示文稿") without indicating that language choice is optional or user-configurable. This is a natural-language locale policy issue because it imposes a specific language by default rather than offering an opt-in or neutral alternative.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

This markdown file presents the skill documentation entirely in Chinese and does not indicate any user language choice or opt-in. Under the stated policy, forcing a specific language without user opt-in is a natural-language locale policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

This markdown file is primarily written in Chinese, but the embedded template hard-codes the slide title text as 'AGENDA'. That imposes a specific output language without any user opt-in or documented locale justification, which fits the language/locale policy category.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

The end slide function defaults the closing message to 'Thank You' even though the surrounding skill content is Chinese. This creates a fixed language behavior in generated output without offering the user a locale choice or explaining why English is required.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.