GLM-V-PDF-to-WEB
Analysis
This PDF-to-website skill mostly matches its stated purpose, but its crop helper can write output files outside the intended crops folder if given an unsafe name.
Findings (3)
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.
Checks for instructions or behavior that redirect the agent, misuse tools, execute unexpected code, cascade across systems, exploit user trust, or continue outside the intended task.
stem = name or _safe_stem(img_path)
filename = f"{stem}_crop.png"
out_path = os.path.join(out_dir, filename)
cropped.save(out_path, format="PNG")The default image-derived stem is sanitized, but a provided --name is used directly. If that name contains path separators, '..', or an absolute path, the crop output can escape the intended out_dir.
Python packages (install once): ```bash pip install pymupdf pillow ``` System tools: `curl`
The skill requires external packages and a system tool, but the packages are unpinned and the registry requirements list no required binaries or install spec. This is a disclosed, purpose-aligned setup step, but users should install from trusted sources.
Checks for exposed credentials, poisoned memory or context, unclear communication boundaries, or sensitive data that could leave the user's control.
You MUST delegate ALL cropping to a clean subagent using the Agent tool... launch one subagent per source page
The skill intentionally shares source page images with subagents for visual localization. This is disclosed and scoped to cropping, but it expands where the PDF content is processed.
