vllm-project/semantic-router

security: constrain OpenClaw image and skill provisioning inputs

Open

#2,468 opened on Jul 12, 2026

View on GitHub
 (0 comments) (0 reactions) (0 assignees)Go (699 forks)github user discovery
area/agentarea/dashboardbughelp wantedpriority/P1roadmapsafety

Repository metrics

Stars
 (4,293 stars)
PR merge metrics
 (PR metrics pending)

Description

Summary

Make OpenClaw skills catalog-owned, contain every workspace operation, and enforce administrator-controlled image provenance and least privilege. Owner surfaces: dashboard/backend/handlers/openclaw.go, dashboard/backend/handlers/openclaw_skills.go, dashboard/backend/handlers/openclaw_provision.go, and dashboard/backend/handlers/openclaw_helpers.go.

Current behavior

Provisioning combines caller-selected image references with external skill identifiers used in filesystem operations, then starts the selected image with broad runtime privileges. Existing sanitization does not cover the skill boundary.

Expected behavior

Skills are selected only by strict server-catalog IDs, filesystem destinations cannot leave the owning workspace, images satisfy an administrator policy, and provisioned containers run with least privilege.

Acceptance

  • Use a strict server-owned skill catalog ID and never an external path segment.
  • Prove destination containment after symlink-aware resolution and reject aliases or unknown IDs.
  • Copy known assets by server identity instead of extracting content through an arbitrary image command.
  • Enforce administrator-controlled image allowlist, digest, and provenance policy.
  • Run non-root with a read-only root filesystem and minimal capabilities.

Validation

  • Add containment, separator, alias, symlink, unknown-ID, and image-policy negative tests without publishing host-specific paths.
  • Add deployment tests for non-root identity, read-only root filesystem, and capability set.
  • Run cd dashboard/backend && go test -race ./handlers.
  • Run the affected OpenClaw E2E profile selected by the repo harness.

Related

  • Parent audit: #2375
  • Security index: #2357
  • Dashboard state history: #1609

Contributor guide