Contexte des attaques

Depuis le 11 octobre, des vagues d’attaques ciblent les contrôleurs de réfrigération Danfoss et Copeland exposés directement à Internet en Europe. Les assaillants déclenchent des cycles de dégivrage, provoquent des pertes alimentaires évaluées à plusieurs dizaines de millions d’euros et, dans certains cas, déclenchent des incendies. Les incidents montrent que la simplicité technique de l’exploitation contraste avec l’impact psychologique sur les exploitants.

Des recherches antérieures (SynAcktiv 2023, Claroty 2025, DIVD/HackDefense 2023) ont déjà mis en évidence des failles telles que CVE‑2025‑41450 (contournement d’authentification), CVE‑2023‑25915 et CVE‑2025‑41451 (injection de commandes OS) ou CVE‑2023‑25914 (traversée de chemin). Malgré ces divulgations, Censys recense encore plusieurs centaines d’appareils Danfoss accessibles publiquement, ainsi qu’environ mille contrôleurs Copeland et Dixell.

Analyse technique des vulnérabilités

Le firmware le plus récent étudié (version 5.3.2) tourne sur un processeur i.MX6 sous Danux, une distribution Linux dérivée de Yocto. L’appareil expose un serveur NGINX qui redirige les requêtes *.cgi vers le binaire monolithique sm_app. Ce dernier agit comme un mini‑RTOS en espace utilisateur, gérant 52 tâches dont Task_Web et Task_Ethernet. L’absence de séparation entre le serveur web et la logique applicative crée un point d’entrée unique où chaque requête est traitée sans authentification préalable.

En moins d’une heure d’inspection manuelle, les chercheurs de Midnight Blue ont identifié six vulnérabilités RCE zéro‑day, toutes exploitables avant authentification. La découverte repose sur l’émulation du firmware avec QEMU‑armel et l’injection de code via LD_PRELOAD. Le processus d’émulation se fait ainsi :

sudo chroot . /qemu-armel-static /bin/sh
$ gcc -shared -g -fPIC -o libpreload.so preload.c
$ sudo chroot . /qemu-armel-static -E LD_PRELOAD=/libpreload.so /danfoss/sm_app

Une fois le serveur web lancé, une requête HTTP simple suffit à déclencher le code injecté :

curl -v -d '' http://127.0.0.1:8080/xml.cgi

La réponse HTTP montre que le serveur accepte les requêtes sans aucune contrainte d’authentification, confirmant le vecteur d’exploitation. La nature « pré‑auth » signifie que l’attaquant n’a besoin que d’une adresse IP reachable, rendant la protection par simple mise à jour de correctifs insuffisante.

Recommandations de mitigation

Les mesures de réduction d’exposition sont prioritaires : placer les contrôleurs derrière un VPN, un APN privé ou appliquer des listes de contrôle d’accès IP très restrictives. La simple modification des identifiants par défaut ou l’application de correctifs ponctuels ne suffit pas, car la surface d’attaque reste accessible tant que le service web est exposé. Les opérateurs doivent également envisager la suppression du serveur NGINX public et le remplacement des points d’entrée CGI par des API authentifiées.

Le processus de divulgation coordonnée avec Danfoss est en cours, mais les informations publiées soulignent la nécessité d’une stratégie de défense basée sur la segmentation réseau plutôt que sur la correction de chaque faille individuelle.