Une faille de CODESYS permet l’exécution de code à distance

Une faille critique dans un serveur Web du logiciel d’automatisation CODESYS, utilisé pour les systèmes de contrôle d’ingénierie, a été découverte. Cette faille pourrait permettre à un pirate informatique distant et non authentifié de faire planter un serveur ou d’exécuter du code.

La faille a une note CVSS v.2 de 10 sur 10 et nécessite peu de compétences pour l’exploiter, a déclaré la société. Il s’agit d’un débordement de tampon sur le tas, une classe de vulnérabilité où la région de la mémoire utilisée par un processus pour stocker des variables dynamiques (le tas) peut être dépassée et donc devenir inaccessible aux autres processus.

Dans le cas présent, la faille (CVE-2020-10245) se trouve dans le serveur Web CODESYS, qui est utilisé pour afficher les écrans de visualisation du système CODESYS dans un navigateur Web.

“Cela pourrait faire planter le serveur Web, conduire à une condition de déni de service ou être utilisé pour l’exécution de code à distance”, selon l’avis de la société [PDF]. «Comme le serveur Web fait partie du système d’exécution CODESYS, cela peut entraîner un comportement imprévu du système d’exécution complet.»

codesys

CODESYS est une suite logicielle utilisée par les spécialistes de l’automatisation comme environnement de développement pour la programmation des applications de contrôleur, souvent trouvé dans les environnements industriels, selon son site Web. Développé par la société allemande Smart Software Solutions (3S) pour rendre la création de solutions automatisées plus pratique, il s’agit d’un environnement de développement indépendant de la plate-forme qui est compatible avec le matériel du contrôleur logique programmable (PLC) et de nombreux autres composants d’automatisation disponibles depuis des centaines d’entreprises.

Détails de la faille de CODESYS

Le problème est causé par le fait qu’une bibliothèque de serveur Web appelée CmpWebServerHandlerV3.dll (version 3.5.15.20) ne valide pas correctement les données fournies par l’utilisateur et envoyées au point de terminaison URL du serveur Web. Un pirate informatique pourrait ainsi exploiter la faille de sécurité en demandant une taille d’allocation mémoire très importante via un message WEB_CLIENT_OPENCONNECTION envoyé au composant CmpWebServerHandlerV3, selon une analyse publiée par Tenable.

Plus précisément, “la faille est due au fait que la fonction MemGCGetSize ajoute 0x5c octets à la taille d’allocation demandée pendant l’opération d’allocation de mémoire”, explique l’article d’analyse. «Les 0x5c octets supplémentaires semblent être utilisés à des fins de collecte de la mémoire. La fonction MemGCGetSize est appelée dans la fonction SysMemAllocData, qui est utilisée par de nombreux composants de CODESYS pour allouer de la mémoire à partir du tas. »

codesys

Tenable a ajouté: «Le composant CmpWebServerHandlerV3 (lorsqu’il est à l’état 0) tente d’allouer -1 (0xffffffff) octets au tampon de communication. Lorsque la fonction SysMemAllocData est appelée, la taille d’allocation de mémoire est débordée et une petite mémoire tampon (0xffffffff + 0x5c = 0x5b) est réellement allouée. »

Dans une preuve de concept (PoC) publiée sur GitHub, un exploit est utilisé pour mettre fin au processus «CODESYSControlService.exe» de 32 bits sur le serveur Web.

Dans CODESYS version 3, le serveur Web (CmpWebServer et CmpWebServerHandler) est une partie facultative du système d’exécution CODESYS. La société a déclaré que toutes les versions des systèmes d’exécution CODESYS V3 contenant une version du serveur Web antérieure à la version V3.5.15.40 sont affectées, quel que soit le type de processeur ou le système d’exploitation, indique le communiqué. Il existe un correctif, les utilisateurs doivent donc mettre à jour vers la dernière version (V3.5.15.40).

Si cet article vous a plu, jetez un œil à notre article précédent.

S’abonner
Notifier de
guest
0 Commentaires
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x