Goccia `su` — ha ingoiato SIGWINCH, quindi nessun terminale mai ridimensionato

FixKlusterServices
Spegnimento
3 settembre 2026 alle ore 19:11 UTC
Autore
Kamo
Impegno
0b5b8a3

Catturato eseguendo il protocollo contro la macchina dal vivo, non leggendolo: dopo un telaio di controllo di ridimensionamento, `tput cols` nella shell ha ancora riportato la dimensione il terminal aperto a. `su` FORKS piuttosto che execs, quindi il client tmux sedeva in un gruppo di processo diverso dal primo piano del PTY, e il SIGWINCH il kernel solleva su TIOCSWINSZ andò a `su`, che lo ignora. Ogni guscio avvolto in qualsiasi larghezza della finestra prima aveva, e meno, vim e htop ha disegnato a quello sbagliato. L'agente è già radice, quindi ora cade privilegi se stesso — initgroups, setgid, Setuid, chdir — ed execs tmux direttamente. tmux diventa il processo di primo piano del PTY e il segnale atterra dove è destinato. Tre cose cadono da esso, tutti loro miglioramenti: * L'ambiente bambino è ora BUILT piuttosto che ereditato, e questo è un confine di sicurezza, non tidiness. L'ambiente di questo processo detiene KAMO DESKTOP AGENT TOKEN — il token del portatore per ogni operazione di conto questa macchina — e un bambino che ha ereditato os.environ avrebbe consegnato a shell del membro, dove `env` lo stampa. "su -" capitava di pulirlo; niente si basava su questo di proposito. * Nessuna shell parses una stringa di comando dovunque su questo percorso più. argv è un elenco di parti convalidate. * Nessuna sessione PAM è aperta, quindi un terminale non registra più una sessione di login che il loginctl conterebbe contro l'un-desktop-session-per-utente di questa macchina politica. Aprire un terminale non deve mai essere in grado di ottenere il desktop di qualcuno Si e' ritirato. Il check-account abilitato nel gestore ora trasporta tutto il peso, dal momento che su avrebbe rifiutato una password chiusa stessa e setuid non lo farà. Era già là; ora è carico-portante e lo dice. Inoltre: la pompa ritorna invece di sollevare quando il suo coetaneo scompare mid-select (EBADF/ECONNRESET). Questa è la fine ordinaria di un terminale — una scheda chiusa — non una colpa. 113 test, tra cui uno che mette un token falso in os.environ e afferma che lo fa non raggiungere il bambino.

Tutte le modifiche

Come quello che vedi la spedizione?

Ognuno di questi aggiornamenti atterra automaticamente nello spazio di lavoro. Inizia gratis e guardalo crescere settimana dopo settimana.

Inizia gratis per sempreVisualizza il prezzo