hyperhive/nix
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas c044a33be9 fix(#3882): pin the gid that owns the TPM node, on both sides of the boundary
#3880 bound /dev/tpmrm0 into the store's container, which was necessary and
not sufficient: a bind mount preserves the host's ownership, openbao runs as a
DynamicUser with an empty CapabilityBoundingSet (so no CAP_DAC_OVERRIDE), and
the host applies no tpm udev rule at all — measured, 0 hits across all 41 host
closures against 62 rule files as a control. The node therefore keeps the
kernel default and the seal cannot open it.

A name cannot fix this. NixOS allocates system groups at activation, per
machine, so `tss` — or any group declared on both sides — gets two different
ids, and the device node carries the number. mara picked pinning a gid with an
overridable default (deploy.bao.tpmGid).

The default sits above the range NixOS auto-assigns system groups from
(400-999, measured in update-users-groups.pl) and above the normal-user range,
and below systemd's DynamicUser range (61184-65519), so it collides with
nothing any of those allocate.

The module-eval case compares the two sides rather than checking each against
a literal: the property is that they AGREE, not what they agree on. Its
absence arm is a shamir store, which never opens a TPM and must not claim a
device node's group — without it, pinning unconditionally would look identical.
2026-08-31 23:03:19 +02:00
..
agent-modules nix, hive-sh4re: name modules that exist in the stale harness-base refs 2026-08-30 04:19:11 +02:00
docs nix/docs: stop naming a specific remote builder in a comment 2026-08-30 20:20:40 +02:00
host-modules fix(#3882): pin the gid that owns the TPM node, on both sides of the boundary 2026-08-31 23:03:19 +02:00
packages Move dashboard settings into Y3R C4LL tab, drop standalone S3TT1NGS page 2026-08-31 12:57:31 +02:00
templates refactor: nix/host-modules + nix/agent-modules layout, update doc paths 2026-07-13 22:05:49 +02:00
checks.nix agent: fix CI — drop tracker tag in checks.nix comment, regenerate npmDepsHash 2026-08-28 22:05:13 +02:00
devshell.nix types: let nix own the reserved-name blacklist 2026-08-27 16:36:42 +02:00
module-eval.nix fix(#3882): pin the gid that owns the TPM node, on both sides of the boundary 2026-08-31 23:03:19 +02:00
reserved-hive-fragments.nix swarm: extract the name guards, so the module just says what is forbidden 2026-08-31 18:50:15 +02:00
reserved-names.nix swarm: refuse hive names that CONTAIN a word identifiers are composed from 2026-08-31 18:50:15 +02:00
rust.nix docs(rust): the dep-cache comment no longer describes two consumers 2026-08-11 22:29:56 +02:00
sources.nix refactor: slim flake.nix into nix/ entry files 2026-07-13 20:55:43 +02:00
treefmt.nix refactor: slim flake.nix into nix/ entry files 2026-07-13 20:55:43 +02:00