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-2026-56111 — Exploit proof-of-concept per CVE-2026-56111, una scrittura fuori dai limiti nel gestore del G-code M421 del Marlin Firmware, che dimostra una corruzione della memoria vincolata tramite comandi G-code appositamente realizzati. | Kitploit
Strumenti/GitHubGitHub/christbowel/cve-2026-56111
Sicurezza Sistemi EmbeddedAnalisi delle VulnerabilitàExploitFuzzingSicurezza HardwareBinary Exploitation
GitHubchristbowel/cve-2026-56111

CVE-2026-56111

Exploit proof-of-concept per CVE-2026-56111, una scrittura fuori dai limiti nel gestore del G-code M421 del Marlin Firmware, che dimostra una corruzione della memoria vincolata tramite comandi G-code appositamente realizzati.

Vedi Repository
11 mese 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-2026-56111 - Scrittura fuori dai limiti in Marlin M421

Proof of concept per CVE-2026-56111, una scrittura fuori dai limiti nel gestore del G-code M421 di Marlin Firmware quando compilato con MESH_BED_LEVELING.

  • Avviso: https://www.vulncheck.com/advisories/marlin-firmware-out-of-bounds-write-via-m421-g-code-handler
  • Versione interessata: Marlin <= 2.1.2.7, risolto nel commit 1f255d1
  • Gravità: Alta (CVSS 8.3)

Il bug

Il gestore MBL M421 controlla solo che gli indici I/J non siano negativi. Non controlla mai il limite superiore. set_z() quindi scrive z_values[ix][iy] = z senza alcun controllo dei limiti. Un indice oltre la griglia scrive un float a 32 bit controllato oltre l'array z_values, nello stato del firmware adiacente.

La scrittura è vincolata, non arbitraria. La destinazione è z_values + (ix*GRID_Y + iy)*4 byte, con gli indici limitati da int8_t (massimo 127), quindi la finestra raggiungibile è di circa 2 KB oltre z_values. Controlli il valore (il float Z) e l'offset (l'indice). Non controlli un indirizzo assoluto.

Questo strumento invia solo la linea di G-code. La scrittura fuori dai limiti avviene all'interno del firmware. Gli effetti osservabili sono denial of service, crash del firmware o movimento corrotto. La scrittura esatta in memoria è mostrata nell'avviso, non da questo strumento.

Compilazione

root@kitploit:~
gcc -O2 -o exp exploit.c

Utilizzo

Scegli un canale:

  • --serial <dev> per USB, ad es. /dev/ttyUSB0 o /dev/ttyACM0 (aggiungi --baud N se necessario; molte schede usano 250000)
  • --tcp <host:port> per stampanti che espongono gcode telnet/rete, ad es. 192.168.1.50:23

modalità write

Invia M421 con l'indice e il valore che scegli:

root@kitploit:~
./exp --serial /dev/ttyUSB0 write -i 3 -j 0 -z 99.0
./exp --tcp 192.168.1.50:23  write -i 5 -j 0 -z 99.0

Su una griglia predefinita 3x3 (indice valido 0..2):

  • -i 3 -j 0 scrive all'offset 36 byte, che è z_offset (l'offset Z del piano)
  • -i 5 -j 0 scrive all'offset 60 byte, che è l'oggetto parser

modalità dos

Invia un indice fuori range con un valore Z NaN. Il NaN si propaga nella matematica del movimento e blocca o crasha in modo affidabile il firmware:

root@kitploit:~
./exp --serial /dev/ttyUSB0 dos
./exp --tcp 192.168.1.50:23  dos

Correzione

Aggiorna a una build di Marlin che include il commit 1f255d1, che limita gli indici nello stesso modo in cui già fanno i gestori ABL e UBL.

Dichiarazione di esclusione di responsabilità

Solo per ricerca e test autorizzati. Utilizzare solo su dispositivi di tua proprietà o per i quali hai esplicita autorizzazione al test. L'invio di questi comandi può bloccare una stampante o interrompere una stampa.

Scarica lo strumento