Skip to content

Installer takes the tunnel binary from /tmp/containariumd: decide the source policy #3681

Open

Description

@hsinatfootprintai

Question (owner decision needed)

`scripts/install-lab-tunnel.sh` (`BINARY_SRC`, default `/tmp/containariumd`) and `scripts/lib/deploy-install.sh` (default `/tmp/containariumd`) install a root-owned binary from a predictable path in `/tmp`. A local user who creates that file first gets it installed as root. The operator is expected to `scp` the binary there, so the path is part of the workflow.

Options:

  • A. Keep the default, refuse a symlink source. Smallest change; does not stop a user-owned file at the path.
  • B. Refuse any source not owned by root or the invoking operator, and print the path that was used. Blocks the planted-file case; the operator's own upload still works.
  • C. Require an explicit `BINARY_SRC` with no default. Strongest; changes the documented workflow.

Default if no answer: B.

Acceptance criteria (after the decision)

  • The chosen policy is applied in both scripts, the same way.
  • Test: a planted symlink, and a file owned by an unrelated user, are each refused; the operator's own file is accepted.

Follow-up to #3342.

Blocked by: none
Sprint: #3725
Part of #3725

Activity

  1. added
    securitySecurity hardening / defensive features
    model:sonnetRoute to Sonnet — mechanical, fully specified
    needs-decisionWaiting on a human decision — not implementable until answered
    size:SAgent build time under ~1h
    runtime:claudeWork runs under the Claude Code CLI (default)
    phase-2-optimizeSprint phase 2: improves the flow, not required for it to work
    on Nov 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    model:sonnetRoute to Sonnet — mechanical, fully specifiedneeds-decisionWaiting on a human decision — not implementable until answeredphase-2-optimizeSprint phase 2: improves the flow, not required for it to workruntime:claudeWork runs under the Claude Code CLI (default)securitySecurity hardening / defensive featuressize:SAgent build time under ~1h

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions