Record the operator's choice for the control node, and the second way an agent reaches root there
This commit is contained in:
+12
-5
@@ -273,7 +273,7 @@ met, and when. It carries no secret.
|
||||
|
||||
### 8. Who may say what on the bus: the trusted parties' own accounts
|
||||
|
||||
*Revised after the security review of 2026-10-08, and not yet accepted by the operator.* The first version of
|
||||
*Revised after the security review of 2026-10-08; the revision accepted by the operator the same day.* The first version of
|
||||
this section rested on the tool runner running as root with a credential only root reads. **On the control
|
||||
node it runs as the operator's account, its bus credential belongs to that account, and that account may
|
||||
become root without a password.** Every agent runs as that account. So an agent there could read the runner's
|
||||
@@ -312,10 +312,17 @@ router issues no approve warrant, and the condition says what to change.
|
||||
**3. What remains, said plainly.**
|
||||
|
||||
- **Root on the router's or the channel's machine defeats all of this.** The self-check raises an urgent
|
||||
condition while an agent's account can become root there without a person; on the control node today it
|
||||
can (the operator's account has passwordless sudo, measured on 2026-10-08). The operator chooses one of:
|
||||
a password for sudo on that machine; agents there under an account of their own without sudo; or the
|
||||
router and the channels placed on a machine where neither holds.
|
||||
condition while an agent can become root there without a person; on the control node today it can (the
|
||||
operator's account has passwordless sudo, measured on 2026-10-08). **The operator chose, on 2026-10-08,
|
||||
that agents on the control node run under an account of their own without sudo.**
|
||||
- **An agent reaches root through the mesh's own tools too.** Any machine's tool runner may call any tool
|
||||
on any machine, and the login shell seat's `execute` runs a command as the account the runner runs as —
|
||||
on the control node, the operator's account, with passwordless sudo, which the mesh's acting tools rely
|
||||
on (measured on 2026-10-08). So an agent on any machine can run a root command on the control node
|
||||
without touching its own account. The self-check therefore counts both ways in: an account an agent
|
||||
runs as that can become root without a person, **and** a tool an agent may call that runs a command
|
||||
given to it as an account that can. It fails until both are closed; the second is decided separately
|
||||
(the login shell's reach, and what an agent's calls are granted).
|
||||
- **The controller holds the whole JetStream API** today. Narrowing it to the streams and buckets it owns is
|
||||
planned work of its own; until then the controller is trusted with every record.
|
||||
- **On the X11 desk an agent can read a code as it is shown or typed** (ADR 0234's accepted risk). The hour
|
||||
|
||||
Reference in New Issue
Block a user