Linux : une vulnérabilité découverte dans systemd

Par:
fredericmazue

mar, 04/07/2017 - 16:46

Systemd gère la séquence de démarrage des systèmes Linux. Il s'est peu à peu imposé en remplacement du traditionnel SysV, non sans que cela provoque de fortes polémiques. Une vulnérabilité vient d'être découverte dans systemd.

Cette vulnérabilité a été découverte par Chris Coulon, développeur chez Canonical. Elle concerne le démon (service) systemd-resolved du dispositif systemd. systemd-resolved procure une résolution de noms aux application locales. Un problème d'allocation mémoire fait que des tampons peuvent se voir allouer une taille trop petite, et qu'alors, un serveur DNS mal conçu, en répondant à une requête de systemd-resolved pourrait conduire celui-ci à écrire dans sa mémoire au delà du tampon, ce qui est susceptible d'être exploité pour exécuter du code à distance.

Les versions de systemd vulnérables sont les versions v223 et ultérieures. Ceci ne signifie par autant que les distributions Linux tournant avec une de ces versions sont vulnérables. Toute la question est de savoir si systemd-resolved est lancé ou non sur la machine. Ce qui en général n'est pas le cas par défaut.

Vous pouvez vérifier si systemd-resolved tourne sur les systèmes que vous administrez comme ceci :

# systemctl | grep running | grep systemd

systemd-journald.service  loaded active running  Journal Service
systemd-logind.service loaded active running  Login Service
systemd-udevd.service loaded active running udev Kernel Device Manager
systemd-journald-dev-log.socket loaded active running   Journal Socket (/dev/log)
systemd-journald.socket loaded active running   Journal Socket
systemd-udevd-control.socket loaded active running udev Control Socket
systemd-udevd-kernel.socket loaded active running   udev Kernel Socket

OK systemd-resolved ne tourne pas sur le système.

Si systemd-resolved est présent, vous pouvez l'arrêter et le désactiver (pour qu'il ne soit par relancé en cas de redémarrage du système), après l'avoir remplacé par autre chose.

Par exemple :

sudo apt-get install dnsmasq
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
sudo systemctl start dnsmasq 

Les distributions Linux travaillent aux correctifs. Ne manquez pas d'appliquer ceux-ci aussi tôt que possible.