SIGN IN SIGN UP

ssh/tailssh: keep acceptEnv values and names out of the incubator cmdline (#20552)

Previously the acceptEnv variables forwarded to the incubator child were
JSON-encoded onto its command line (--encoded-env), so their values were
visible in /proc/<pid>/cmdline to any other local user and were logged in
the session-start argv (locally and to log.tailscale.com except where
--no-logs-no-support was specified).

This change now carries those variables through an os.Pipe file
descriptor as a json encoded payload. Added end-to-end testing
helps validate secrets reach the session but are not in flags or logged.

Fixes tailscale/corp#44903

Change-Id: I5b137b20e9c06feec6b70aaf4e6925e6db74017e

Signed-off-by: Mike Jensen <mikej@tailscale.com>
Co-authored-by: Mike Jensen <mikej@tailscale.com>
P
Patrick O'Doherty committed
9d48dbd561e1d4fa386aa413759e616b3f1bd92b
Parent: 77948cd
Committed by GitHub <noreply@github.com> on 7/30/2026, 3:57:55 PM