Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-56111 — Exploit de prueba de concepto para CVE-2026-56111, una escritura fuera de los límites en el manejador M421 de G-code del Firmware Marlin, que demuestra corrupción de memoria restringida mediante comandos G-code manipulados. | Kitploit
Herramientas/GitHubGitHub/christbowel/cve-2026-56111
Seguridad de Sistemas EmbebidosAnálisis de VulnerabilidadesExplotaciónFuzzingSeguridad de HardwareExplotación de Binarios
GitHubchristbowel/cve-2026-56111

CVE-2026-56111

Exploit de prueba de concepto para CVE-2026-56111, una escritura fuera de los límites en el manejador M421 de G-code del Firmware Marlin, que demuestra corrupción de memoria restringida mediante comandos G-code manipulados.

Ver Repositorio
13hace 2 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-56111 - Escritura fuera de los límites en Marlin M421

Prueba de concepto para CVE-2026-56111, una escritura fuera de los límites en el manejador de código G M421 de Marlin Firmware cuando se compila con MESH_BED_LEVELING.

  • Advisory: https://www.vulncheck.com/advisories/marlin-firmware-out-of-bounds-write-via-m421-g-code-handler
  • Afectado: Marlin <= 2.1.2.7, corregido en el commit 1f255d1
  • Gravedad: Alta (CVSS 8.3)

El error

El manejador M421 de MBL solo verifica que los índices I/J no sean negativos. Nunca verifica el límite superior. Luego, set_z() escribe z_values[ix][iy] = z sin comprobación de límites. Un índice más allá de la cuadrícula escribe un float controlado de 32 bits más allá del array z_values, en el estado adyacente del firmware.

La escritura está restringida, no es arbitraria. El destino es z_values + (ix*GRID_Y + iy)*4 bytes, con los índices limitados por int8_t (máximo 127), por lo que la ventana alcanzable es de aproximadamente 2 KB más allá de z_values. Controlas el valor (el float Z) y el desplazamiento (el índice). No controlas una dirección absoluta.

Esta herramienta solo envía la línea de código G. La escritura fuera de los límites ocurre dentro del firmware. Los efectos observables son denegación de servicio, bloqueo del firmware o movimiento corrupto. La escritura exacta en memoria se muestra en el aviso, no por esta herramienta.

Compilación

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

Uso

Elige un canal:

  • --serial <dev> para USB, p. ej. /dev/ttyUSB0 o /dev/ttyACM0 (agrega --baud N si es necesario; muchas placas usan 250000)
  • --tcp <host:port> para impresoras que exponen código G por telnet/red, p. ej. 192.168.1.50:23

modo write

Envía M421 con el índice y valor que elijas:

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

En una cuadrícula predeterminada de 3x3 (índice válido 0..2):

  • -i 3 -j 0 escribe en el desplazamiento 36 bytes, que es z_offset (el offset Z de la cama)
  • -i 5 -j 0 escribe en el desplazamiento 60 bytes, que es el objeto del analizador sintáctico

modo dos

Envía un índice fuera de rango con un valor Z NaN. El NaN se propaga en el cálculo de movimiento y provoca de manera fiable el bloqueo o cuelgue del firmware:

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

Solución

Actualiza a una compilación de Marlin que incluya el commit 1f255d1, el cual limita los índices de la misma manera que ya lo hacen los manejadores ABL y UBL.

Aviso legal

Solo para investigación y pruebas autorizadas. Úsalo únicamente en dispositivos que poseas o para los que tengas permiso explícito para probar. El envío de estos comandos puede bloquear una impresora o interrumpir una impresión.

Descargar herramienta