
Semplice playbook Ansible per applicare patch ai server mysql contro CVE-2016-6662
Semplice playbook Ansible per applicare patch ai server MySQL contro la CVE-2016-6662.
In breve, tenterà di scrivere un .so malevolo nel filesystem e modificare la configurazione per caricarlo al successivo riavvio del servizio.
Questa patch non impedirà l'attacco vero e proprio, ma modifica mysqld_safe in modo che i file .so vengano caricati solo dalle posizioni standard di sistema, dove mysqld non può scrivere. Controllerà anche l'esistenza e i permessi di vari file di defaults che mysqld potrebbe utilizzare, per evitare che codice malevolo li crei o modifichi.
L'issue completo è disponibile su https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6662 ; Kenny Gryp di Percona ha pubblicato una spiegazione breve ma eccellente su https://www.percona.com/blog/2016/09/12/database-affected-cve-2016-6662/ .
Questo playbook tenterà di applicare una patch personalizzata che è un mix della patch di Percona in https://github.com/percona/percona-server/commit/c14be53e029442f576cced1fb8ff96b58e89f2e0#diff-144aa2f11374843c969d96b7b84247eaR261 e della patch MySQL su https://github.com/mysql/mysql-server/blob/5.7/scripts/mysqld\_safe.sh#L356-L364 .
Farà:
Ho verificato questo su quasi un centinaio di installazioni - per lo più Debian, un paio di RedHat e Suse.
Questa nuova versione è stata applicata su quasi 200 host, senza problemi evidenti.
Ho osservato che patch fallisce su sistemi 5.1, poiché lo script mysql_safe non contiene i punti di ancoraggio - ma quella versione (e versioni inferiori) non è nemmeno vulnerabile, quindi non è un problema.
Nota che un valore changed= di 0 o 2 significa che non è stata applicata alcuna patch (2 se installato e rimosso patch); 1 o 3 significa che la patch è stata eseguita. Altri valori sono inaspettati e dovrebbero essere investigati :-)
Con il task aggiuntivo, non è più così netto; dovrai effettivamente leggere l'output.
Grazie a Kenny Gryp, Percona e MySQL per la spiegazione chiara e la semplice soluzione alternativa; un ringraziamento extra a Patrick Forsberg per aver individuato il difetto nella patch originale.
/vegi