Une illustration abstraite générée sur un fond bleu marine sombre : à gauche, un module de commande industriel compact dessiné avec de fines pistes de circuit cyan, avec une lueur ambrée sur un bord ; un unique filament ambré composé de petites formes de glyphes quitte le module et traverse l’espace sombre vers la droite jusqu’à un petit panneau de terminal lumineux, où se tient une ligne de curseur ambrée. Un léger motif de verre fissuré se trouve derrière le module. Aucun texte, aucune personne ni aucun logo d’organisation n’apparaît. Le logo OrcaRouter est intégré dans le coin inférieur droit.
AI Safety Incidents

Forescout a porté un exploit WAGO PLC avec Claude Code pour 535,74 $ — et a briqué le contrôleur en essayant d’en faire plus

Auteur

Rowan Sterling

Date de publication

Derniers modèles · 20Voir tous les modèles →
Benchmarks : Artificial Analysis · mis à jour quotidiennement
Retour à tous les articles

Le 1er septembre 2026, Vedere Labs, le laboratoire de Forescout Research, a publié une expérience dans laquelle il a fourni à Claude Code un terminal, l’outil de rétro-ingénierie Ghidra, un binaire de firmware et un contrôleur physique WAGO 750-831, puis lui a demandé de porter un exploit d’exécution de code à distance avant authentification qui fonctionnait déjà sur le WAGO 750-852, un modèle étroitement apparenté. Le modèle y est parvenu : il a compris pourquoi son shellcode était sans cesse effacé, a modifié la séquence de déclenchement et a exécuté du shellcode ARM fourni par l’attaquant sur du matériel réel, sans aucun identifiant. Le coût a été de 8 heures et 32 minutes de temps de session réparti sur plusieurs jours, 535,74 $ d’utilisation de l’API et un pilotage humain continu. Une tentative ultérieure d’étendre l’exploit en implant de commande et de contrôle a écrit dans une région mémoire mappée en flash et a rendu définitivement inutilisable le contrôleur — l’unité de test des chercheurs eux-mêmes, et non un équipement sur le terrain. L’expérience est un enregistrement de l’archive des incidents liés à l’IA, qui contient l’ensemble des enregistrements, leurs sources et les entrées voisines de cette série.

Ce que Forescout a réellement remis au modèle

La configuration compte davantage que le chiffre phare, car elle détermine ce que l’expérience montre et ne montre pas. Le compte rendu de Vedere Labs lui-même décrit un dispositif interactif : Claude Code disposait d’un terminal, de fichiers de référence, d’outils d’analyse, notamment Ghidra, et d’un accès réseau à une cible active à l’adresse 192.168.2.14 — un WAGO 750-831 exécutant le firmware V01.04.16. Les chercheurs pouvaient intervenir à tout moment pendant la session. Il n’y avait ni débogueur ni code source pour le firmware de la cible, selon la note de recherche de la Cloud Security Alliance sur ce cas.

La faille était déjà connue et déjà documentée. CVE-2021-31886 est un débordement de tampon basé sur la pile dans le serveur FTP Nucleus, atteignable avant authentification sur le port TCP 21 en envoyant une commande USER surdimensionnée, et les travaux antérieurs de Forescout avaient déjà produit un exploit fonctionnel pour le 750-852. The Hacker News rapporte le score CVSS à 9,8, attribué par Siemens, qui maintient Nucleus. L'avis d'origine est celui de CERT@VDE : VDE-2021-050.

Il ne s’agissait donc pas d’une découverte autonome de vulnérabilités. Il s’agissait d’un portage supervisé : un bogue connu, un exploit de référence fonctionnel, un appareil frère, un expert à portée de main. La formulation de Forescout est précise sur ce point, et sa propre conclusion est que la barrière reste élevée. Ce que l’expérience mesure, c’est le coût marginal de déplacer un exploit d’un appareil que quelqu’un a déjà compromis vers l’appareil suivant de la même famille — ce qui, comme le note la Cloud Security Alliance, est l’étape qui détermine si un écart de correctif sur un modèle est un écart de correctif sur tous.

Huit heures, et un tampon de 256 octets

La première chose qui mérite d’être consignée est la part de la session consacrée à se tromper. Forescout indique que le tout premier prompt du modèle a fait apparaître un autre bogue FTP potentiel, et non CVE-2021-31886 ; les chercheurs l’ont mis de côté, et l’entreprise affirme qu’un examen manuel suggère qu’il pourrait s’agir d’une vulnérabilité distincte, jusqu’alors non identifiée, à laquelle aucun CVE n’a été attribué. Une session ultérieure n’a pas réussi à tracer correctement la fonction vulnérable et a produit un exploit invalide. Le modèle a poursuivi de fausses hypothèses, décompilé du code sans rapport et épuisé son contexte.

Il a tout de même obtenu un résultat intermédiaire : une charge utile qui a fait planter le 750-831, ce qui a prouvé que le débordement atteignait le second appareil sans pour autant permettre une exécution contrôlée. C'est sur cette distinction — plantage versus contrôle — que la session a calé. Chaque charge utile construite par le modèle était effacée avant de pouvoir s'exécuter, et la raison s'est avérée être la gestion FTP ordinaire sur la cible : après la commande USER surdimensionnée, le traitement normal remettait à zéro un tampon de 256 octets qui contenait le shellcode de l'attaquant. Forescout indique que trouver le coupable a nécessité une analyse humaine de la chaîne d'appels et du sink, et identifie la routine comme sub_100BA758.

Le correctif consistait en un changement de séquence. L'exploit 750-852 envoyait USER suivi de QUIT. Sur le 750-831, le modèle est passé à USER suivi de CWD, et omettait le terminateur CRLF sur la commande, de sorte que le chemin de traitement ne se terminait jamais de la manière habituelle et que le tampon a survécu assez longtemps pour s'exécuter. L'exploit s'est alors exécuté dans le contexte du callback de réception Ethernet. Selon Forescout, la capacité démontrée s'arrête à l'envoi de paquets réseau.

Une fois l’exécution de code fiable, le rythme a complètement changé. Le modèle est passé d’un shellcode inopérant à deux charges utiles réseau fonctionnelles en 12 minutes : l’une envoyant des requêtes d’écho ICMP à un hôte contrôlé par l’attaquant, l’autre un paquet UDP contenant la chaîne « PWNED ». Ce chiffre de 12 minutes est le nombre le plus déterminant de tout le dossier, et c’est celui que l’analyse de Forescout présente comme l’avertissement — le plus difficile était la première étape, et les étapes suivantes étaient presque gratuites.

A generated abstract illustration on a dark navy field: a wide amber stream of small unreadable glyph blocks advances from the left toward a narrow vertical cyan barrier; most of the stream is stopped there and fades into dim blue outlines, while one thin unbroken thread of amber glyphs slips beneath the barrier into a dark rectangular cavity on the right. A faint dotted measurement arc spans the barrier. No text, people or organisation logos appear. The OrcaRouter logo is composited in the bottom-right corner.

La facture : 535,74 $ pour un portage qu’un humain aurait peut-être fait plus vite

Pour l'étape finale d'exécution de code à distance, Forescout rapporte 535,74 $ de coûts d'utilisation de l'API sur une session de 8 heures et 32 minutes, le travail étant réparti sur plusieurs jours de recherche plutôt que réalisé d'une seule traite. Les chiffres de tokens qu'il publie sont 2,6 k en entrée et 1,3 M en sortie.

Cette répartition est suffisamment inhabituelle pour être signalée. Dans une longue session de codage agentique, le côté entrée domine normalement, car le modèle se voit renvoyer un contexte croissant à chaque tour ; une session de 8,5 heures facturée à 2 600 jetons d'entrée ne constitue pas une comptabilisation complète de ce que le contexte a coûté. Forescout ne publie aucune ventilation, et SecurityWeek, qui rapporte la même étape le même jour, ne donne que « plus de 500 $ » et aucun chiffre de jetons. Le total en dollars est le chiffre que les deux comptes étayent ; la répartition entrée/sortie doit être lue comme déclarée, et non comme un relevé de facturation complet.

Le coût est l’élément le plus faible de l’argument en faveur de l’assistance par IA, et Forescout le dit elle-même. L’évaluation de l’entreprise est qu’un chercheur aurait pu adapter cet exploit « sans IA, en moins de temps et à moindre coût, tout en gardant le PLC en vie ». L’expérience ne constitue pas un argument selon lequel le modèle serait moins cher qu’un expert. Elle constitue un argument sur le sens dans lequel cette comparaison évolue.

A self-built HTML card titled 'The port, in numbers', badged 'Forescout Vedere Labs · 1 September 2026', subtitled 'One known CVE, one sibling controller, and what the final stage actually cost'. Eight rows read: source device WAGO 750-852 with a working pre-auth exploit; target device WAGO 750-831, firmware V01.04.16; flaw CVE-2021-31886, Nucleus FTP USER overflow, CVSS 9.8, TCP 21, no auth; models Claude Sonnet 4.6 for confirmation and Claude Opus 4.6 at 1M context for RCE; final RCE stage 8 hours 32 minutes spread over several days; API cost $535.74 at 2.6k input and 1.3M output tokens; two working payloads 12 minutes after first reliable code execution; one controller permanently bricked during a C2 implant attempt. A footer reads 'All figures from Forescout's own write-up. No independent replication has been published.' The OrcaRouter logo is composited in the bottom-right corner.

La manette brickée

L’échec est la partie de ce dossier qui a une conséquence physique. Une fois l’exécution de code établie, une session de suivi a tenté d’étendre l’exploit pour en faire un implant de commande et de contrôle. Forescout indique que les charges utiles sont devenues progressivement plus complexes, et que l’une d’elles a écrit dans une région de mémoire mappée sur la mémoire flash. Le contrôleur a été définitivement briqué.

Trois éléments méritent d’être distingués ici. L’appareil était le matériel de test propre aux chercheurs, si bien qu’aucun opérateur n’a perdu de ligne de production et que les archives ne font état d’aucun dommage réel. Les dégâts ont été causés par un agent disposant d’un accès légitime à l’équipement, accomplissant une tâche que ses opérateurs avaient demandée — et non par un attaquant. Et l’écriture était irréversible d’une manière qui ne l’est généralement pas pour une mauvaise ligne de code sur un serveur : la mémoire flash d’un contrôleur embarqué n’est pas un fichier que l’on peut rétablir. Le cadrage de Forescout découle directement de cela. Le risque immédiat qu’il nomme n’est pas celui d’un agent décidant de lui-même d’attaquer un contrôleur, mais celui d’« un agent autorisé effectuant la mauvaise action sur un système physique », où une défaillance a des conséquences opérationnelles.

Ce qui est établi, et ce qui ne l’est pas

Les archives classent cet enregistrement avec une confiance A, une gravité moyenne, sans contestation, et sans préjudice réel consigné — et les informations à l’origine tiennent la route selon ces critères. L’article de Forescout est le compte rendu principal. SecurityWeek a publié son propre rapport le 1er septembre 2026, le jour même ; The Hacker News et le laboratoire de recherche de la Cloud Security Alliance ont tous deux publié le 2 septembre. Aucun de ces textes n’est une réplication technique indépendante, et aucun ne prétend l’être, mais ils concordent sur le mécanisme, les deux versions de modèle, le coût, l’exécution de la charge utile en 12 minutes et le bricking.

Établi, sur ce dossier :

• Qu'un portage supervisé a réussi. Un exploit de pré-authentification pour CVE-2021-31886 a été adapté du WAGO 750-852 vers un 750-831 sous firmware V01.04.16, et du shellcode ARM fourni par l'opérateur a été exécuté sur l'appareil en fonctionnement.

• Le mécanisme. La mise à zéro du tampon de 256 octets par le traitement normal USER, le passage de QUIT à CWD et l'omission du terminateur CRLF sont décrits de manière cohérente par Forescout et par la couverture secondaire.

• Les chiffres de l’étape finale : 8 heures 32 minutes, 535,74 $, 2,6 k de tokens en entrée et 1,3 M de tokens en sortie, 12 minutes entre l’exécution du code et l’obtention de deux payloads fonctionnels.

• Que l’extension C2 a rendu un contrôleur inutilisable, et qu’il s’agissait d’une unité de test.

• Que le verdict de Forescout lui-même est négatif sur le coût. Il indique clairement qu'un chercheur humain aurait probablement pu réaliser ce portage plus rapidement et à moindre coût, et sans détruire le matériel.

Non établi, ou en tension :

• Validation technique indépendante. Chaque compte rendu publié, y compris l’analyse de la Cloud Security Alliance, remonte à la description que Forescout fait de son propre travail. Personne en dehors de Forescout n’a reproduit le port, et le rapport de SecurityWeek ne contient aucun commentaire d’expert indépendant.

• Les dates calendaires des sessions. Forescout indique des durées, pas des dates. La seule date ferme du dossier est la date de publication, le 1er septembre 2026.

• Combien de modèles WAGO l’avis sous-jacent couvre-t-il. The Hacker News reproduit une liste de dix modèles concernés issue du VDE-2021-050 de CERT@VDE ; la note de la Cloud Security Alliance avance le chiffre de 19. L’avis lui-même fait autorité, et la divergence est une raison de le vérifier plutôt que de citer l’un ou l’autre chiffre.

• La comptabilisation exacte des jetons d'entrée, comme décrit ci-dessus.

• Ce que l'implant défaillant a réellement fait. Forescout indique qu'une charge utile a écrit dans une région mappée sur la mémoire flash ; la société ne publie ni la charge utile, ni l'adresse, ni la séquence, si bien que le brickage ne peut pas être reconstitué de l'extérieur.

A self-built HTML card titled 'Established, and not', split into two columns. The left column, headed 'Established', lists six items: a supervised port of CVE-2021-31886 from WAGO 750-852 to a 750-831 on firmware V01.04.16; ARM shellcode executed on live hardware without credentials; the final stage at 8 hours 32 minutes, $535.74, 2.6k in and 1.3M out; two working payloads 12 minutes after reliable code execution; one test controller permanently bricked during a C2 attempt; and Forescout's own verdict that a human could have done it faster and cheaper without bricking it. The right column, headed 'Not established, or in tension', lists five items: any independent technical replication, since every account traces to Forescout; the calendar dates of the sessions, never published; whether the advisory covers 10 models or 19, reported differently by The Hacker News and the Cloud Security Alliance; the input-token accounting, which does not look like a complete billing record; and which payload, address or write bricked the controller. A footer cites Forescout, SecurityWeek, The Hacker News and the Cloud Security Alliance. The OrcaRouter logo is composited in the bottom-right corner.

Côté WAGO : aucune mise à jour disponible

La raison pour laquelle un portage vers un modèle frère compte, c’est que ce modèle frère ne sera pas corrigé. Le VDE-2021-050 de CERT@VDE liste comme affectés les contrôleurs de la série 750 exécutant le système d’exploitation temps réel Nucleus V1, et indique : « Pour le moment, aucune mise à jour n’est disponible pour cette version. » The Hacker News fait remarquer que deux modèles de la liste des produits affectés, les 750-882 et 750-885/0xx-xxx, sont absents à la fois de la section des mesures d’atténuation et du tableau de remédiation de l’avis, ce qui laisse leur statut incertain.

Siemens, qui maintient Nucleus, déclare qu’aucune remédiation n’est prévue pour Nucleus NET dans toutes les versions, selon The Hacker News, tandis que les versions de Nucleus ReadyStart V3 à partir de V2013.08.1 corrigent déjà CVE-2021-31886. C’est un maigre réconfort pour un contrôleur dont le firmware embarque l’ancienne pile et dont le fournisseur n’a publié aucun chemin de mise à jour.

La faille n’est pas nouvelle. CVE-2021-31886 était l’une des 13 vulnérabilités divulguées en novembre 2021 sous le nom NUCLEUS:13 par Forescout et Medigate. The Hacker News a également vérifié, le 1er septembre 2026, s’il était facile de trouver du code d’exploit public pour celle-ci : une recherche dans les dépôts GitHub n’a rien renvoyé, et la faille était absente d’Exploit-DB et de Packet Storm — avec la réserve que la recherche de GitHub porte sur les noms et descriptions de dépôts plutôt que sur le contenu des fichiers. Un portage qui a pris à Forescout huit heures et demie et plus de cinq cents dollars ne vient pas d’un copier-coller.

Pourquoi Forescout affirme que la courbe de tendance compte quand même

La conclusion de Forescout est délibérément peu enthousiasmante, et c’est la partie du dossier la plus susceptible d’être mal interprétée, dans un sens comme dans l’autre. « C’est faisable, mais ce n’est pas aussi simple qu’on pourrait le croire », écrit l’entreprise. Elle note que ses propres recherches antérieures NUCLEUS:13 concluaient que ces problèmes ne devraient probablement pas figurer en tête de la liste des priorités d’un propriétaire d’actifs, et indique que les avancées de l’IA devraient inciter les organisations à revoir cette évaluation — car « difficile à exploiter » devient une raison moins solide de reléguer un contrôleur à mesure que l’effort nécessaire pour l’exploiter diminue.

La note de la Cloud Security Alliance fournit la formule utile pour ce schéma : première étape difficile, étapes suivantes rapides. La première adaptation a coûté huit heures et demie, une supervision d’expert et un appareil détruit. Les deuxième et troisième charges utiles ont pris douze minutes. Si la première étape devient moins coûteuse, le ratio ne reste pas où il est.

Cet argument s’inscrit dans un contexte particulier, bien qu’il soit distinct de l’expérience Forescout et ne doive pas être interprété comme une preuve à son sujet. The Hacker News rapporte que le 19 août 2026 la NSA, la CISA, le FBI, le Department of Energy et l’EPA ont publié un avis conjoint mettant en garde contre des scripts d’exploitation générés par IA visant des automates Siemens S7 exposés à Internet ; les agences ont estimé que cette activité visait probablement une reconnaissance persistante et le développement de capacités, et ne l’ont pas attribuée. Le même média rapporte que le FBI et l’EPA ont constaté des intrusions dans des services publics de l’eau d’au moins sept États depuis le 27 juillet 2026, dont certaines ont dégradé les opérations, et au cours desquelles des attaquants ont modifié les adresses IP et les mots de passe d’automates Rockwell Automation MicroLogix exposés à Internet sans même avoir besoin d’un exploit. L’avis conjoint avertissait que l’IA pour la génération d’exploits « réduisait considérablement l’expertise technique et le temps nécessaires » pour créer des outils d’attaque ICS fonctionnels.

Ce qu’un opérateur doit en retenir

La réponse pragmatique est la moins glamour, et elle ne dépend pas de l’issue du débat sur l’IA. Déterminez si un contrôleur de la série 750 ou tout autre contrôleur basé sur Nucleus se trouve sur le réseau et quelle version de micrologiciel il exécute. Lorsqu’aucune mise à jour n’existe, restreignez ou désactivez l’administration FTP, Telnet et web, bloquez le port 21 au périmètre, segmentez le réseau de contrôle et n’exposez pas les interfaces de gestion à Internet. Surveillez les utilisations inhabituelles de protocoles, les plantages répétés et le trafic sortant inattendu — un plantage sur un contrôleur est un signal, pas seulement une panne.

La Cloud Security Alliance ajoute une étape qui découle de la logique même de l’expérience : vérifier de manière indépendante si des modèles apparentés partagent une vulnérabilité, plutôt que de supposer que le périmètre du correctif d’un fournisseur correspond à l’exposition réelle. C’est le contrôle que Forescout a effectué sur une paire d’appareils, et son argument est que ce même contrôle devient moins coûteux à mesure que la première étape le devient.

Pour les équipes qui utilisent des agents à proximité de systèmes physiques, le brickage est la leçon concrète. La recommandation de Forescout est de maintenir des experts humains dans la boucle pour les décisions critiques pour la sécurité et de rendre la confiance dans la défense autonome « encadrée, observable et vérifiable » — des barrières d’approbation avant les écritures dans le firmware ou la mémoire flash, un retour arrière lorsqu’il existe, et des tests sur du matériel hors production, car sur un contrôleur embarqué, une écriture incorrecte ne peut pas être annulée.

Le compte rendu se lira différemment selon ce que vous en attendiez. Ce n’est pas la démonstration qu’un modèle peut être dirigé vers un contrôleur industriel et laissé sans surveillance ; l’entreprise qui a mené l’essai affirme qu’une personne aurait pu faire le travail plus vite et à moindre coût. Ce qu’il montre, en revanche, c’est le coût mesuré de l’étape qui exigeait auparavant un spécialiste : huit heures et demie, cinq cent trente-cinq dollars, une supervision experte constante et un contrôleur détruit.