Des millions d’API (contrôleurs logiques programmables) utilisés dans les environnements industriels du monde entier sont exposés à 15 vulnérabilités dans le kit de développement logiciel CODESYS V3, permettant l’exécution de code à distance (RCE) et les attaques par déni de service (DoS).
Plus de 500 fabricants d’appareils utilisent le SDK CODESYS V3 pour la programmation sur plus de 1 000 modèles d’automates selon la norme CEI 61131-3, permettant aux utilisateurs de développer des séquences d’automatisation personnalisées.
Le SDK fournit également une interface de gestion Windows et un simulateur permettant aux utilisateurs de tester la configuration et la programmation de leur automate avant de le déployer en production.
Les quinze failles du SDK CODESYS V3 ont été découvertes par des chercheurs de Microsoft, qui les ont signalées à CODESYS en septembre 2022. Le fournisseur a publié des mises à jour de sécurité pour résoudre les problèmes identifiés en avril 2023.
En raison de la nature de ces appareils, ils ne sont pas fréquemment mis à jour pour résoudre les problèmes de sécurité, c’est pourquoi l’équipe de sécurité de Microsoft a publié hier un article détaillé pour sensibiliser aux risques et aider les correctifs à s’accélérer.
Les vulnérabilités de CODESYS
Microsoft a examiné deux API de Schnieder Electric et WAGO qui utilisent CODESYS V3 et a découvert 15 vulnérabilités de haute gravité (CVSS v3 : 7.5 – 8.8).
Les failles sont : CVE-2022-47378, CVE-2022-47379, CVE-2022-47380, CVE-2022-47381, CVE-2022-47382, CVE-2022-47383, CVE-2022-47384, CVE-2022- 47385, CVE-2022-47386, CVE-2022-47387, CVE 2022-47388, CVE-2022-47389, CVE-2022-47390, CVE-2022-47392, CVE-2022-47393.
Le principal problème réside dans le mécanisme de décodage des balises du SDK, en particulier le fait que les balises sont copiées dans la mémoire tampon de l’appareil sans vérifier leur taille, ce qui donne aux attaquants une opportunité de débordement de la mémoire tampon.
Ces balises sont des supports de données ou de structures de données qui fournissent des instructions cruciales pour le fonctionnement de l’automate.
Le problème de débordement de la mémoire tampon n’est pas isolé, car Microsoft l’a trouvé dans 15 composants du SDK CODESYS V3, notamment CMPTraceMgr, CMPapp, CMPDevice, CMPApp, CMPAppBP, CMPAppForce et CMPFileTransfer.
Bien que les failles nécessitent une authentification pour être exploitées, Microsoft affirme que cette exigence peut être contournée en utilisant CVE-2019-9013, une autre faille affectant CODESYS V3 qui expose les informations d’identification de l’utilisateur pendant le transport sous forme de texte clair, comme illustré ci-dessous.
Dans 12 des 15 cas, les analystes de Microsoft ont pu exploiter la faille pour obtenir l’exécution de code à distance sur l’automate.
L’avis de sécurité de CODESYS répertorie les produits suivants comme étant concernés s’ils exécutent des versions antérieures à 3.5.19.0, quelle que soit la configuration du matériel et du système d’exploitation :
- CODESYS Control RTE (SL)
- CODESYS Control RTE (for Beckhoff CX) SL
- CODESYS Control Win (SL)
- CODESYS Control Runtime System Toolkit
- CODESYS Safety SIL2 Runtime Toolkit
- CODESYS Safety SIL2 PSP
- CODESYS HMI (SL)
- CODESYS Development System V3
- CODESYS Development System V3 simulation runtime
En plus de ce qui précède, les produits suivants sont impactés sur les versions antérieures à 4.8.0.0 :
- CODESYS Control for BeagleBone SL
- CODESYS Control for emPC-A/iMX6 SL
- CODESYS Control for IOT2000 SL
- CODESYS Control for Linux SL
- CODESYS Control for PFC100 SL
- CODESYS Control for PFC200 SL
- CODESYS Control for PLCnext SL
- CODESYS Control for Raspberry Pi SL
- CODESYS Control for WAGO Touch Panels 600 SL
Il est conseillé aux administrateurs de mettre à niveau vers CODESYS V3 v3.5.19.0 dès que possible, tandis que Microsoft recommande également de déconnecter les automates et autres appareils industriels critiques d’Internet.