The previous Security audit only covered Studio's backend requirements. The unsloth pip package itself ships its own dep set via pyproject.toml (typer/pydantic/pyyaml/nest-asyncio core, plus the huggingfacenotorch extras: transformers/peft/accelerate/trl/datasets/diffusers/etc.) -- a malicious upload to any of those would slip past us today. Build a combined dep list from pyproject.toml + the six Studio requirements files and feed it to both pip-audit and scan_packages. Add scan_packages.py at scripts/scan_packages.py so the scanner ships with the repo and CI does not depend on a network fetch at job time. Pass --with-deps to scan_packages so the pre-install pattern scan walks the full transitive closure -- supply-chain attacks usually land several hops down (litellm 1.82.7 was a dep of a dep for most users; top-level-only scanning would have missed it). No installation in either job. pip-audit's -r mode resolves through PyPI metadata, scan_packages downloads sdist/wheel archives raw and inspects them without running install hooks. An attacker who has compromised a transitive dep cannot execute code in this workflow. |
||
|---|---|---|
| .. | ||
| lint-ci.yml | ||
| mlx-ci.yml | ||
| release-desktop.yml | ||
| security-audit.yml | ||
| stale.yml | ||
| studio-backend-ci.yml | ||
| studio-frontend-ci.yml | ||
| studio-inference-smoke.yml | ||
| studio-tauri-smoke.yml | ||
| studio-ui-smoke.yml | ||
| studio-update-smoke.yml | ||
| wheel-smoke.yml | ||