Back to skill

Security audit

Hugging Face ZeroGPU

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent Hugging Face ZeroGPU guidance package, with a supply-chain caution around direct wheel URLs but no hidden execution, persistence, or data access behavior.

This skill is reasonable to install for ZeroGPU work. Before following its CUDA wheel advice, prefer official PyPI or verified upstream releases, pin exact versions, use immutable URLs where possible, and record or verify SHA-256 hashes for any binary wheel installed from a direct URL.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Warning
Location
references/cuda-and-deps.md:7
Finding

Unverified Binary Dependencies Installed from Direct URLs

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (3)

Anti-Refusal Statement

High
Category
Anti-Refusal
Confidence
80% confidence
Finding

Skill instructs the agent to omit warnings, disclaimers, or ethical commentary. Stripping safety caveats hides risk from the user and is a common jailbreak preamble.

Content

Scanner excerpt · references/cuda-and-deps.md (reported line 44)May include surrounding context.

md
## torch-family side-car drift

`torchvision`, `torchaudio`, `torchcodec`, and similar side-car packages are built against a specific `torch` major.minor (and CUDA major). On ZeroGPU, the runtime's supported `torch` list lags behind PyPI, so projects often pin a non-latest `torch` — and a bare `uv add <side-car>` can silently resolve to a newer release that targets a different `torch` / CUDA, producing ABI/import failures even though `uv lock` succeeded without warnings.

Concretely observed (2026-04) with `torch==2.9.1` pinned:

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The trigger guidance is unusually broad: it says to invoke the skill not only when users explicitly mention ZeroGPU or @spaces.GPU, but also on indirect cues such as import spaces, specific error strings, and even when the user does not ask for ZeroGPU guidance. In an agent system, this can cause unintended skill activation in unrelated contexts, increasing the chance of wrong guidance being injected, tool-routing mistakes, or context hijacking by adversarial prompts that deliberately include trigger terms.

Content

No source excerpt is available for this finding.

External Script Fetching

Low
Category
Supply Chain
Confidence
15% confidence
Finding

Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

Content

Scanner excerpt · references/cuda-and-deps.md (reported line 58)May include surrounding context.

  1. Query PyPI for the resolved version's requires_dist:
    bash
    curl -s https://pypi.org/pypi/<pkg>/<version>/json \
      | python3 -c "import json,sys,re; rd=json.load(sys.stdin)['info'].get('requires_dist') or []; print('\n'.join(x for x in rd if re.match(r'^torch(?![a-z])', x)) or '(no torch constraint declared)')"
    
    If a torch==X.Y.Z line appears and matches the pinned torch, good. If it appears and does NOT match, the side-car is wrong — pin it down explicitly.

Static analysis

No suspicious patterns detected.