En raison d’une importante faille de sécurité de type « Remote Code Execution », les dumps générés avec mysqldump sous Debian 9/10/11 ne sont plus compatibles avec des mysql non corrigés. En effet, mysqldump ajoute une ligne pour forcer les clients MySQL non corrigés à se stopper :
/*!999999- enable the sandbox mode */
Si vous exportez vos dumps vers des serveurs MySQL non corrigés, vous devrez donc retirer cette ligne (par exemple avec la commande tail +2) pour permettre de restaurer le dump.
Comment savoir si mon mysqldump est concerné ?
Il vous suffit de jouer la commande mysqldump foobarbaz et vous devriez obtenir la ligne /*!999999- enable the sandbox mode */ si votre mysqldump intègre cette « correction ».
Sous Debian 9, 10 et 11, vous devriez être concernés.
Comment savoir si mon client MySQL est corrigé ou non ?
Si vous jouez la commande mysql –sandbox vous ne devriez pas avoir le message mysql: unknown option '--sandbox' sinon c’est que votre client MySQL n’est pas corrigé !
Je suis sous Debian 12, suis-je concerné ?
Pour l’instant (décembre 2024), MySQL n’est pas encore corrigé sous Debian 12 ! L’une des conséquences c’est qu’un dump généré sous Debian 9/10/11 n’est donc pas compatible pour Debian 12 ! Il faut donc retirer la 1ère ligne pour l’instant.
Une version corrigée pour Debian 12 est disponible dans stable-proposed-updates, mais elle est pour l’instant bloquée. Nous espérons qu’elle se débloque bientôt ou alors nous forcerons son utilisation sur nos serveurs infogérés.
EDIT 15 mars 2025 : une version corrigée est désormais dans Debian 12 depuis la sortie de la release mineure Debian 12.10, si vos systèmes sont bien à jour les dumps sous Debian 9/10/11/12 sont donc désormais compatibles entre les différentes versions !
mysql –sandbox
Nous vous conseillons d’utiliser l’option –sandbox le plus souvent possible, cela permet de s’assurer qu’aucune commande shell ne peut être injectée par le serveur MySQL.
Plus d’informations sur :