Hébergement et infogérance d'infrastructure Open Source
Actualités Releases

mysqldump génère des dumps non rétro-compatibles

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 :