Watch
0
0
Fork
You've already forked hyperhive
0

hive-priv refuses bind-mount edits on the swarm's forge and matrix containers

The forge and matrix containers belong to the services host, not to a
hive. hive-priv's container-name validator still accepted hive-forge and
hive-matrix for WriteNspawnFlags, WriteResourceLimits and
RemoveServiceDropin; hive-c0re only ever sends h-<agent> names there.

- hive-priv-sock/src/lib.rs: drop SIBLING_CONTAINERS, its only user was
  the validator, and its test.
- hive-priv/src/main.rs: the validator accepts only h-<name> and returns
  the logical name, so write_resource_limits loses its non-h- fallback;
  test that all three requests refuse both names.
- hive-priv/README.md, docs/trust-boundary/security.md: the allowlist
  no longer lists the forge and matrix.

Fixes #5508
This commit is contained in:
atlas 2026-10-17 23:40:53 +02:00 • committed by mara
commit 4f75e2a71a
4 changed files with 57 additions and 58 deletions

View file

@ -16,10 +16,9 @@ See `docs/trust-boundary/boundary.md` and `docs/trust-boundary/security.md` for
## Security model
- **Strict allowlist.** Every request is validated against a container-name
allowlist before any filesystem or process operation — only names matching the
hive convention (`h-*`, the manager container, known sibling service
containers) are accepted.
- **Strict allowlist.** hive-priv checks every request against a container-name
allowlist before any filesystem or process operation, and accepts only names
matching the hive convention (`h-*`, the manager container included).
- **No pass-through.** Every `PrivRequest` variant maps to a single known
operation; there is no arbitrary-command escape hatch.
- **Socket-activated, always.** systemd binds `/run/hive/priv.sock`