FOXBOX SECURITY UPDATE — 2026.10.19-r2

SCOPO
Aggiornamento cumulativo selettivo dell'HOST Ubuntu 24.04 LTS amd64, kernel
GA 6.8 generic. Include le soglie ufficiali Canonical dei report settimanali
dal 7 settembre al 18 ottobre 2026. Non aggiorna container, MySQL, applicazione
FoxBox, driver esterni o repository di terze parti.

COME AGGIORNARE
1. Scaricare lo ZIP e confrontarne SHA256 con la pagina Security Watch.
2. Estrarlo in una cartella privata fuori dal webroot. Eseguire il pacchetto
   sull’host Ubuntu 24.04 compatibile.
3. Verificare: sha256sum -c SHA256SUMS
4. Controllare: /usr/bin/python3 foxbox_security.py check
5. Applicare: sudo /usr/bin/python3 foxbox_security.py apply
   Se tutti i pacchetti richiesti sono già installati alla versione prevista
   o successiva, apply funziona anche senza sudo e risponde already_up_to_date.
   Non reinstalla pacchetti già aggiornati. Non serve applicare gli ZIP precedenti.
6. Leggere il risultato: packages_changed, reboot_required, reboot_performed
   e l'eventuale private_snapshot. Verificare una nuova connessione SSH e il
   funzionamento applicativo. Conservare una seconda sessione amministrativa
   durante l'intervento; predisporre accesso console/recovery appropriato.

PREREQUISITI QUANDO SERVONO MODIFICHE
Root, Python3 di sistema con python3-apt, dpkg coerente, repository Ubuntu
autenticati su domini ubuntu.com, versioni esatte disponibili e almeno 2 GiB
liberi per il backup privato. Per installare un kernel servono anche almeno
1 GiB libero in /boot, immagine/initramfs attuali conservati, soli moduli
in-tree riconosciuti. DKMS, moduli esterni, kernel HWE e hold sotto soglia
richiedono una procedura specifica: il programma si ferma, senza aggirarli.
Se l'archivio della vecchia versione non è più disponibile autenticato,
l'aggiornamento si ferma prima di installare: occorre preparare il recovery
con l'assistenza. Mirror personalizzati e origini miste sono rifiutati.

RIAVVIO E ATTIVAZIONE
Il programma NON riavvia mai l'host. Un kernel installato ma non ancora in
esecuzione produce reboot_required=true senza essere reinstallato.
L'aggiornamento OpenSSL richiede il riavvio secondo il relativo avviso Canonical.
OpenSSH richiede il caricamento del servizio aggiornato e una nuova connessione
di verifica; non richiede da solo il riavvio dell'host. Altri aggiornamenti di
librerie possono richiedere il riavvio dei servizi che le usano.
NEEDRESTART_MODE=l evita i riavvii automatici operati da needrestart; i normali
script del pacchetto possono comunque riavviare il proprio servizio. Il risultato
updated conferma i pacchetti installati, non che ogni processo abbia già caricato
le nuove librerie. Pianificare l'attivazione necessaria, controllare modem/driver
e applicazione nella finestra di manutenzione. MySQL è un intervento separato.

PROTEZIONI E RECOVERY
Prima di installare, vengono controllati origine autenticata, versioni e piano
APT. Non sono ammessi rimozioni, downgrade o dipendenze fuori dal perimetro
approvato. Una guardia APT ricontrolla pacchetti, configurazioni e SHA256 prima
dell'unpack mentre APT detiene il lock. Non vengono usati comandi shell remoti.
Il backup è root-only in /var/backups/foxbox-security/<release-esecuzione> e
contiene vecchi .deb, configurazioni mirate, piano e ricevute. Non contiene DB
clienti. Non pubblicare questa cartella e non inviarne il contenuto indiscriminatamente.
Il rollback è disponibile solo se stato e configurazioni coincidono con gli
hash registrati, quindi si ferma in presenza di modifiche successive:
  sudo /usr/bin/python3 foxbox_security.py rollback --snapshot /var/backups/foxbox-security/<release-esecuzione>
Il rollback ripristina versioni precedenti e quindi può riaprire vulnerabilità:
usarlo per recupero operativo, poi correggere la causa e ripianificare la patch.
Se un errore non permette di catturare uno stato affidabile, conservare il
backup e procedere con assistenza; non ripristinare l'intero database.
Un'interruzione di alimentazione o l'arresto forzato del processo durante il
rollback può richiedere recupero manuale: non è una procedura auto-riprendibile.

CUMULATIVITÀ
Ogni esecuzione controlla le versioni effettive, compresi companion package e
pacchetti in hold. Non si affida a marker delle patch precedenti. Versioni più
recenti vengono mantenute. Componenti opzionali assenti non vengono installati.
Il reset della serie richiede una nuova versione prodotto e una nuova baseline
verificata; i controlli settimanali ordinari conservano tutte le soglie precedenti.

CODICI DI USCITA
0: controllo completo oppure apply riuscito/già aggiornato; 2: check richiede
azione o riavvio; 3: baseline non supportata; 4: errore o prerequisito mancante.
In caso di errore apply, mutates_appliance e private_snapshot distinguono un
blocco prima dell'intervento da un intervento parziale da recuperare.

FONTI E RISERVATEZZA
Il manifest riporta fonti ufficiali e soglie. Nessun contatto, messaggio,
password o token è raccolto nel report JSON. Le verifiche delle versioni
installate non sostituiscono la verifica dei servizi dopo l’attivazione.
