ppt-generator-smb

AdvisoryAudited by Static analysis on Apr 30, 2026.

Overview

No suspicious patterns detected.

Findings (0)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

Generating a PPTX may modify the Python environment and install code from the package index without a clear prior approval step.

Why it was flagged

The script installs a package at runtime if the import fails. The package is unpinned and this runtime install is not reflected in the install specification, so running the PPTX generator may fetch and execute third-party code unexpectedly.

Skill content
subprocess.check_call(['pip', 'install', 'python-pptx', '-q'])
Recommendation

Declare python-pptx as an installation requirement, pin a known version or hash, and avoid automatic runtime installation unless the user explicitly approves it, preferably inside an isolated environment.

What this means

Opening or previewing a generated HTML deck could run unintended JavaScript embedded through slide content.

Why it was flagged

Slide titles, list items, card content, chart labels, and command-line title values are interpolated directly into HTML without escaping or sanitization. If any user-provided or web-derived content contains HTML or JavaScript, it can become executable in the generated slideshow.

Skill content
items_html = ''.join(f'<li>{item}</li>' for item in items)
...
html = HTML_TEMPLATE.format(title=args.title, slides=slides_html, total=total)
Recommendation

Escape all text inserted into HTML by default, only allow a documented safe subset of markup if needed, and treat web-search results as untrusted before including them in slides.

What this means

Files in the served output directory could be exposed beyond the intended preview if the server is reachable on the local network or if the directory contains unrelated files.

Why it was flagged

The skill instructs starting a local HTTP server to preview screenshots. This is purpose-aligned, but the command does not explicitly bind to localhost and serves whatever is in the chosen output directory.

Skill content
python -m http.server 8899 --directory <output_dir>
Recommendation

Serve only a dedicated temporary output folder, bind the server to 127.0.0.1, and stop it after the preview is complete.