T07 · Tool Hijacking and Spoofing
- Location
scripts/video_frame_capture.py:8- Finding
External Dependency Search-Path Hijacking
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill does the advertised video frame extraction, but it quietly prioritizes a hardcoded external dependency folder that could cause the wrong Python module to run.
Review before installing. Use an isolated virtual environment, pin and hash dependencies, and remove or explicitly control the hardcoded D:\SOFTware\py_dependent import path before running the skill on sensitive machines or untrusted videos. Avoid reusing an output directory that may contain files with colliding frame names unless overwrites are acceptable.
scripts/video_frame_capture.py:8External Dependency Search-Path Hijacking
requirements.txt:1Unpinned Third-Party Dependencies Permit Unreviewed Package Updates
scripts/video_frame_capture.py:125Deterministic Output Writes Can Silently Overwrite Existing Files
Without declared permissions the skill's intent is opaque and cannot be validated.
The output naming section specifies filenames in Chinese (视频文件原始名称_视频时间轴_第几次截取.jpg) even though the rest of the skill documentation is in English and no user opt-in or locale selection is offered. This is a natural-language locale policy concern because it forces a specific language convention on generated artifacts without documenting a regional requirement.
The dependency is specified with a minimum version only, which allows future installs to resolve to different versions over time. This weakens reproducibility and makes it harder to ensure that only reviewed, non-vulnerable releases of OpenCV are installed, especially since this package processes untrusted media and has a history of memory-safety issues.
opencv-python-headless>=4.5.0
numpy>=1.21.0
The manifest does not pin the OpenCV package, so it is impossible to verify whether the installed version avoids known CVEs affecting some releases. In this skill's context, OpenCV parses video data, which may be attacker-controlled; that makes unresolved library-version risk more significant because vulnerable image/video parsing code can lead to crashes or memory corruption.
The NumPy dependency is unpinned, so builds are not reproducible and may silently pull in newer releases with different security or stability properties. While this is a supply-chain hygiene issue rather than an immediate exploit, it increases uncertainty about what code will actually run in production.
opencv-python-headless>=4.5.0
numpy>=1.21.0
Because NumPy is not pinned, the package version actually installed cannot be checked against the listed advisories with confidence. In this skill, NumPy is likely used for frame-array processing rather than direct parsing of untrusted input, so the contextual danger is lower than for OpenCV, but version ambiguity still creates avoidable security uncertainty.
No suspicious patterns detected.