github Python analyzed beb163f

hullwork/sandbox

github

gVisor-isolated Kubernetes sandbox with an HTTP API, SDK and MCP bridge

maintainer
hullwork
licence
MIT
first seen
2026-09-04
last seen
2026-09-10
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 0 tools
transport stdio counts 0 tools · 0 res · 0 prompts permission surface via code analysis

No tools enumerated yet for this server.

skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit beb163f · analyzer v33 · 1w ago

danger signals7

code evidence vHEAD · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 176

filesystem 100

  • fs hullwork-sandbox-beb163f/bench/runner.py :16 import pathlib
  • fs hullwork-sandbox-beb163f/control_plane/core.py :13 import pathlib
  • fs hullwork-sandbox-beb163f/control_plane/grafana_proxy.py :41 import pathlib
  • fs hullwork-sandbox-beb163f/control_plane/kube.py :53 with open(token_path, encoding="utf-8") as handle:
  • fs hullwork-sandbox-beb163f/control_plane/oidc.py :177 with _OPENER.open(request, timeout=10) as response:
  • fs hullwork-sandbox-beb163f/control_plane/store.py :24 from pathlib import Path
  • fs hullwork-sandbox-beb163f/control_plane/volume.py :14 from pathlib import Path, PurePosixPath
  • fs hullwork-sandbox-beb163f/file-service/file_service.py :19 import shutil
  • fs hullwork-sandbox-beb163f/file-service/gc_workspaces.py :9 import shutil
  • fs hullwork-sandbox-beb163f/runtime/runtime_server.py :19 from pathlib import Path
  • fs hullwork-sandbox-beb163f/runtime/shell_sessions.py :23 from pathlib import Path
  • fs hullwork-sandbox-beb163f/sandbox_platform/control_plane_transport.py :57 return _OPENER.open(request, timeout=timeout)
show 28 more
  • fs (weak) hullwork-sandbox-beb163f/scripts/claim-workspaces.py :41 import pathlib
  • fs (weak) hullwork-sandbox-beb163f/scripts/generate-license-inventory.py :9 import pathlib
  • fs (weak) hullwork-sandbox-beb163f/scripts/migrate-local-containerd-provision.py :12 from pathlib import Path
  • fs (weak) hullwork-sandbox-beb163f/scripts/mutation-experiment.py :44 import pathlib
  • fs (weak) hullwork-sandbox-beb163f/scripts/prepare_release_assets.py :8 import pathlib
  • fs (weak) hullwork-sandbox-beb163f/scripts/smoke-local.py :8 import pathlib
  • fs (weak) hullwork-sandbox-beb163f/tests/contract_helpers.py :6 import pathlib
  • fs (weak) hullwork-sandbox-beb163f/tests/control_plane_probe.py :19 import pathlib
  • fs (weak) hullwork-sandbox-beb163f/tests/test_acting_subject.py :20 import pathlib
  • fs (weak) hullwork-sandbox-beb163f/tests/test_acting_subject_binding.py :22 import pathlib
  • fs (weak) hullwork-sandbox-beb163f/tests/test_acting_subject_vectors.py :26 import pathlib
  • fs (weak) hullwork-sandbox-beb163f/tests/test_annotation_keys.py :13 import pathlib
  • fs (weak) hullwork-sandbox-beb163f/tests/test_api_authorization.py :21 import pathlib
  • fs (weak) hullwork-sandbox-beb163f/tests/test_audit_throttle.py :13 import pathlib
  • fs (weak) hullwork-sandbox-beb163f/tests/test_auth_contract_doc.py :17 import pathlib
  • fs (weak) hullwork-sandbox-beb163f/tests/test_benchmark_runner.py :4 import pathlib
  • fs (weak) hullwork-sandbox-beb163f/tests/test_capability_epochs.py :10 import pathlib
  • fs (weak) hullwork-sandbox-beb163f/tests/test_capability_tickets.py :12 import pathlib
  • fs (weak) hullwork-sandbox-beb163f/tests/test_checkpoint_restore.py :14 import pathlib
  • fs (weak) hullwork-sandbox-beb163f/tests/test_comment_shape.py :17 import pathlib
  • fs (weak) hullwork-sandbox-beb163f/tests/test_configuration_reference.py :18 import pathlib
  • fs (weak) hullwork-sandbox-beb163f/tests/test_console_runtime_config.py :3 import pathlib
  • fs (weak) hullwork-sandbox-beb163f/tests/test_containerd_provision.py :7 from pathlib import Path
  • fs (weak) hullwork-sandbox-beb163f/tests/test_control_plane_image.py :18 import pathlib
  • fs (weak) hullwork-sandbox-beb163f/tests/test_credential_boundaries.py :25 import pathlib
  • fs (weak) hullwork-sandbox-beb163f/tests/test_dev_scripts.py :7 import pathlib
  • fs (weak) hullwork-sandbox-beb163f/tests/test_documentation.py :3 import pathlib
  • fs (weak) hullwork-sandbox-beb163f/tests/test_documentation_links.py :22 import pathlib

60 more not shown — this panel samples each group; the count above is the real total.

shell / exec 45

  • shell hullwork-sandbox-beb163f/bench/runner.py :18 import subprocess
  • shell hullwork-sandbox-beb163f/control_plane/core.py :19 import subprocess
  • shell hullwork-sandbox-beb163f/runtime/runtime_server.py :15 import subprocess
  • shell hullwork-sandbox-beb163f/runtime/shell_sessions.py :17 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/scripts/migrate-local-containerd-provision.py :13 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/scripts/mutation-experiment.py :45 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/scripts/smoke-local.py :9 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/scripts/test-adversarial.py :13 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/contract_helpers.py :9 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/control_plane_probe.py :20 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_acting_subject.py :21 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_api_authorization.py :22 import subprocess
show 28 more
  • shell (weak) hullwork-sandbox-beb163f/tests/test_comment_shape.py :19 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_containerd_provision.py :8 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_dev_scripts.py :11 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_documentation_links.py :24 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_e2e_environment.py :5 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_grafana_embed.py :21 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_helm_package.py :7 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_label_domain.py :15 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_login_paths.py :18 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_management_tenant.py :19 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_markdown_tables.py :20 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_mcp_bridge_robustness.py :19 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_network_policy_inventory.py :17 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_object_owner_derivation.py :31 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_object_store_failure_classification.py :23 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_object_store_layer.py :16 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_object_upload_gate.py :24 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_observability_artifacts.py :19 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_openapi_contract.py :7 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_optional_request_body.py :20 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_project_naming.py :27 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_readiness.py :17 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_release_assets.py :10 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_reserved_management_tenant.py :28 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_runtime_driver_startup.py :10 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_safe_stdout.py :29 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_shell_sessions.py :43 import subprocess
  • shell (weak) hullwork-sandbox-beb163f/tests/test_static_workload_security.py :14 import subprocess

5 more not shown — this panel samples each group; the count above is the real total.

network 34

  • net hullwork-sandbox-beb163f/bench/runner.py :21 import urllib.error
  • net hullwork-sandbox-beb163f/control_plane/api.py :18 from urllib.error import HTTPError, URLError
  • net hullwork-sandbox-beb163f/control_plane/core.py :18 import socket
  • net hullwork-sandbox-beb163f/control_plane/grafana_proxy.py :44 import urllib.error
  • net hullwork-sandbox-beb163f/control_plane/kube.py :9 from urllib.error import HTTPError, URLError
  • net hullwork-sandbox-beb163f/control_plane/manifests.py :57 Start a Python interpreter and import urllib; under gVisor + `cpu: 500m` limit,
  • net hullwork-sandbox-beb163f/control_plane/oidc.py :25 import urllib.error
  • net hullwork-sandbox-beb163f/control_plane/tracing.py :30 from urllib import request
  • net hullwork-sandbox-beb163f/control_plane/volume.py :20 from urllib.parse import parse_qs, urlparse
  • net hullwork-sandbox-beb163f/file-service/file_service.py :27 from urllib.parse import parse_qs, urlparse
  • net hullwork-sandbox-beb163f/runtime/runtime_server.py :14 import socket
  • net hullwork-sandbox-beb163f/sandbox_platform/control_plane_transport.py :6 import urllib.error
show 22 more
  • net hullwork-sandbox-beb163f/sandbox_platform/sandbox_client.py :18 import socket
  • net hullwork-sandbox-beb163f/sandbox_platform/sandboxctl.py :34 import urllib.parse
  • net (weak) hullwork-sandbox-beb163f/scripts/smoke-local.py :13 import urllib.request
  • net (weak) hullwork-sandbox-beb163f/scripts/test-adversarial.py :15 import urllib.error
  • net (weak) hullwork-sandbox-beb163f/tests/control_plane_probe.py :30 import socket
  • net (weak) hullwork-sandbox-beb163f/tests/test_acting_subject.py :47 import urllib.error
  • net (weak) hullwork-sandbox-beb163f/tests/test_api_authorization.py :39 import urllib.error
  • net (weak) hullwork-sandbox-beb163f/tests/test_file_service_hardening.py :16 import socket
  • net (weak) hullwork-sandbox-beb163f/tests/test_grafana_embed.py :36 import urllib.error
  • net (weak) hullwork-sandbox-beb163f/tests/test_homepage.py :8 from urllib.parse import urlparse
  • net (weak) hullwork-sandbox-beb163f/tests/test_login_paths.py :31 import urllib.error
  • net (weak) hullwork-sandbox-beb163f/tests/test_object_owner_derivation.py :68 import urllib.error
  • net (weak) hullwork-sandbox-beb163f/tests/test_object_store_failure_classification.py :234 import urllib.error
  • net (weak) hullwork-sandbox-beb163f/tests/test_object_store_layer.py :119 srv = socket.socket(); srv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
  • net (weak) hullwork-sandbox-beb163f/tests/test_object_upload_gate.py :113 import socket
  • net (weak) hullwork-sandbox-beb163f/tests/test_observability_artifacts.py :246 import urllib.error
  • net (weak) hullwork-sandbox-beb163f/tests/test_openapi_contract.py :90 import urllib.error
  • net (weak) hullwork-sandbox-beb163f/tests/test_readiness.py :28 import urllib.error
  • net (weak) hullwork-sandbox-beb163f/tests/test_reserved_management_tenant.py :42 import urllib.error
  • net (weak) hullwork-sandbox-beb163f/tests/test_runtime_mcp_errors.py :27 import socket
  • net (weak) hullwork-sandbox-beb163f/tests/test_tracing.py :294 import urllib.error
  • net (weak) hullwork-sandbox-beb163f/tests/test_workspace_lifecycle.py :87 import urllib.error

secrets 9

  • secrets hullwork-sandbox-beb163f/bench/runner.py :384 parser.add_argument("--token", default=os.getenv("SANDBOX_TOKEN"))
  • secrets hullwork-sandbox-beb163f/control_plane/core.py :215 VOLUME_AGENT_TOKEN = os.getenv("VOLUME_AGENT_TOKEN", "")
  • secrets hullwork-sandbox-beb163f/file-service/file_service.py :47 os.getenv("WORKSPACE_CAPABILITY_KEY")
  • secrets hullwork-sandbox-beb163f/runtime/runtime_server.py :46 CAPABILITY_KEY = os.environ["SANDBOX_CAPABILITY_KEY"]
  • secrets hullwork-sandbox-beb163f/sandbox_platform/sandbox_client.py :192 and os.getenv("SANDBOX_TOKEN", "").strip()
  • secrets hullwork-sandbox-beb163f/sandbox_platform/sandboxctl.py :44 token = os.getenv("SANDBOX_TOKEN")
  • secrets (weak) hullwork-sandbox-beb163f/scripts/claim-workspaces.py :81 token = os.getenv("SANDBOX_TOKEN")
  • secrets (weak) hullwork-sandbox-beb163f/scripts/smoke-local.py :24 existing = os.environ.get("SANDBOX_TOKEN", "").strip()
  • secrets (weak) hullwork-sandbox-beb163f/tests/test_grafana_embed.py :115 admin = os.environ["SANDBOX_CONTROL_PLANE_TOKEN"]

database 4

  • db hullwork-sandbox-beb163f/control_plane/store.py :471 import sqlite3
  • db (weak) hullwork-sandbox-beb163f/tests/test_store_behavior.py :19 import sqlite3
  • db (weak) hullwork-sandbox-beb163f/tests/test_store_migrations.py :23 import sqlite3
  • db (weak) hullwork-sandbox-beb163f/tests/test_workspace_lifecycle.py :84 import sqlite3

declared dependencies 2

  • PyYAML@>=6.0,<7
  • boto3@>=1.36,<2