T08 · Insecure Dependencies
- Location
SKILL.md:86- Finding
Execution of Unpinned Third-Party Repository Code and Dependencies
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 86–128
Vulnerability Type: Unpinned and unaudited third-party dependencies
Risk Level: MediumVulnerable Code
bash # Clone repository git clone https://github.com/Liangkd/CrashChat.git cd CrashChat # Create environment conda create -n crashchat python=3.10 -y conda activate crashchat # Install dependencies pip install torch==2.4.0 torchvision==0.19.0 --extra-index-url https://download.pytorch.org/whl/cu118 pip install -r requirements.txt pip install flash_attn-2.7.3+cu11torch2.4cxx11abiFALSE-cp310-cp310-linux_x86_64.whl --no-deps conda install -c conda-forge ffmpeg -ybash # Baseline model huggingface-cli download KDliang/crashchat --local-dir ./ckptbash # Single GPU CUDA_VISIBLE_DEVICES=0 bash scripts/train/Independent_monotask_models_causal_reasoning.sh 1 # Multiple GPUs CUDA_VISIBLE_DEVICES=1,2 bash scripts/train/Independent_monotask_models_causal_reasoning.sh 2bash # 1. Convert weights python tool/merge_and_convert_videollama3_lora.py # 2. Run evaluation CUDA_VISIBLE_DEVICES=0 bash scripts/eval/eval_video_causal_reasoning.sh # 3. Calculate metrics python scripts/eval/compute_causal_reasoning_metrics.pyTechnical Analysis
The installation instructions clone the current state of an external Git repository without selecting an immutable, reviewed commit. They subsequently install the repository's
requirements.txtand direct users to execute shell and Python scripts obtained from that repository. The effective code executed by users can therefore change after this Skill has been reviewed.The Hugging Face download is likewise not pinned to an immutable revision or accompanied by artifact checksums. The locally referenced FlashAttention wheel has no documented trusted source or integrity hash. Although no malicious upstream content was observed in the audited project ...[truncated 1940 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the CrashChat repository to a reviewed full commit SHA and check out that commit explicitly after cloning.
- Pin the Hugging Face download with an immutable revision and record expected SHA-256 hashes for every downloaded artifact.
- Replace the mutable
requirements.txtinstallation with a reviewed lock file containing exact versions and cryptographic hashes. - Use
pip install --require-hasheswhere practical and permit packages only from explicitly approved indexes. - Document the trusted source and SHA-256 checksum for the FlashAttention wheel; reject installation when verification fails.
- Review shell scripts, Python tools, package build metadata, and model-loading behavior before execution.
- Run installation and model workflows in an isolated container or disposable environment with no unnecessary credentials, restricted network access, read-only dataset mounts where possible, and least-privilege filesystem permissions.
- Avoid loading untrusted serialized model formats that permit executable object deserialization; prefer safer formats such as
safetensorswhen supported. - Add automated dependency and artifact verification to the setup procedure so upstream changes fail closed rather than being accepted silently.
