Supplier Video Ad Builder
Security checks across static analysis, malware telemetry, and agentic risk
Overview
This is a coherent local video-ad builder, but a crafted config can make it write or delete files outside the intended output folder.
Use this only with configs you trust. Before running, make sure output_name is just a plain filename, verify source/audio/logo/font paths, install ffmpeg and Pillow from trusted sources, and avoid uploading extracted frames to an external image model unless you are comfortable sharing that footage.
Static analysis
No static analysis findings were reported for this release.
VirusTotal
VirusTotal findings are pending for this skill version.
Risk analysis
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.
A malicious or accidental config value could overwrite files or delete an existing directory on the machine running the skill.
The config-controlled output_name is used to construct both the final output path and a directory later removed with rmtree. If output_name contains path separators, dot-dot segments, or an absolute path, the script can write or delete outside the intended output directory.
tmp = out_dir / f'_tmp_{cfg["output_name"].replace(".mp4","")}' ... out_final = out_dir / cfg['output_name'] ... shutil.rmtree(tmp)Only use trusted configs, keep output_name to a simple filename such as ad.mp4, and update the script to reject absolute paths, path separators, and '..' before writing or deleting files.
The skill may fail until dependencies are installed, and users must trust the local ffmpeg/Pillow installation they choose.
The skill needs local binaries and a Python package, but the provided install/registry metadata does not declare required binaries or pinned package versions.
Requirements\n\n- `ffmpeg` + `ffprobe`\n- Python 3.10+: `Pillow`
Install dependencies from trusted package managers and consider adding explicit requirement declarations and pinned versions.
Running the skill executes local video-processing commands and reads the files named in the product config.
The skill invokes ffmpeg/ffprobe subprocesses to process local media. This is expected for a video-building skill, but it is still local command execution using user-provided media paths.
run([\n 'ffmpeg', '-y', '-i', str(src),
Run it in a normal user account, review config paths before execution, and avoid processing untrusted media in privileged directories.
If an external image model is used, frames from supplier videos may be shared outside the local machine.
The workflow suggests sending extracted frames to an image model for inspection, but it does not specify whether that model is local or an external provider.
Then analyze the frames with an image model:
Use a trusted/local image model when the footage is private, or confirm the provider's data handling before uploading frames.
