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
zephyr-lwm2m-firmware-update-oob-read-cve-2026-10672-truncated-package-uri — Exploit de prueba de concepto para CVE-2026-10672, una lectura fuera de los límites en el cliente de actualización de firmware LwM2M de Zephyr RTOS. Incluye una reproducción independiente en C y un servidor CoAP/LwM2M malicioso para pruebas. | Kitploit
Herramientas/GitHubGitHub/hunt-benito/zephyr-lwm2m-firmware-update-oob-read-cve-2026-10672-truncated-package-uri
Seguridad de Sistemas EmbebidosSeguridad IoTAnálisis de VulnerabilidadesExplotaciónFuzzingPapers e InvestigaciónAprendizaje y EducaciónExplotación de Binarios

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
GitHub
hunt-benito/zephyr-lwm2m-firmware-update-oob-read-cve-2026-10672-truncated-package-uri

zephyr-lwm2m-firmware-update-oob-read-cve-2026-10672-truncated-package-uri

Exploit de prueba de concepto para CVE-2026-10672, una lectura fuera de los límites en el cliente de actualización de firmware LwM2M de Zephyr RTOS. Incluye una reproducción independiente en C y un servidor CoAP/LwM2M malicioso para pruebas.

Ver Repositorio
hace 1 mesAún no revisado

CVE-2026-10672 — Prueba de Concepto de Lectura Fuera de Límites en la Actualización de Firmware LwM2M de Zephyr

Prueba de concepto para CVE-2026-10672, una lectura fuera de límites en el cliente de extracción de actualización de firmware LwM2M de Zephyr RTOS (subsys/net/lib/lwm2m/lwm2m_pull_context.c).

Vulnerabilidad

  • CVE: CVE-2026-10672
  • CVSS: 8.2 Alto (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:L)
  • CWE: CWE-125 (Lectura Fuera de Límites)
  • Componente: lwm2m_pull_context_start_transfer() en lwm2m_pull_context.c
  • Causa raíz: memcpy(context.uri, uri, LWM2M_PACKAGE_URI_LEN) copia exactamente 128 bytes en char uri[128] sin un terminador nulo cuando la URI del Paquete (/5/0/1) proporcionada por el servidor es ≥ 128 bytes. Las posteriores strlen(context.uri), http_parser_parse_url(), y la opción CoAP PROXY_URI anexan y luego leen más allá del búfer en la memoria de la estructura adyacente (is_firmware_uri, los punteros a función result_cb / write_cb, y el contexto de conexión DTLS). Los bytes sobre-leídos son exfiltrados en la solicitud CoAP saliente.
  • Búfer: context.uri[128] (CONFIG_LWM2M_SWMGMT_PACKAGE_URI_LEN, predeterminado 128; LWM2M_PACKAGE_URI_LEN está #definedo a ese valor)
  • Afectado: Zephyr v3.0.0 hasta v4.4.0 (la refactorización del contexto de extracción que introdujo la copia se lanzó por primera vez en v3.0.0)
  • Corregido: Zephyr v4.4.1 y v4.3.1
  • Commit de corrección: 99a164df5cea5af76e32b57c6d51854f018969a2 — añade strlen(uri) >= sizeof(context.uri) → -ENOMEM y cambia a strcpy().

Contenido

ArchivoPropósito
poc.c

Compilar y ejecutar la reproducción en C

root@kitploit:~
gcc -O0 -g -o poc poc.c
./poc

Esperado: una URI de Paquete de 200 bytes produce una opción CoAP PROXY_URI de 141 bytes — la URI de 128 bytes más 13 bytes filtrados de context.is_firmware_uri, relleno de estructura, y los punteros a función result_cb/write_cb. La ruta de código corregida rechaza la URI con -ENOMEM y no copia nada.

Confirmación con ASan

root@kitploit:~
gcc -O0 -g -fsanitize=address -o poc-asan poc.c
./poc-asan

La sonda asigna exactamente 128 bytes, los llena con bytes no NUL (reflejando un context.uri lleno sin terminador) y llama a strlen():

root@kitploit:~
ERROR: AddressSanitizer: heap-buffer-overflow
READ of size 129 at 0x...
0x... is located 0 bytes after 128-byte region [...,0x...)

Ejecutar el servidor LwM2M malicioso

root@kitploit:~
# Build and inspect the CoAP packets without sending:
python3 lwm2m_evil_server.py --dry-run --uri-len 200

# Send to a vulnerable client (NoSec CoAP, UDP/5683):
python3 lwm2m_evil_server.py --target 10.0.0.42 --port 5683 --uri-len 200 --listen 2

El script emite una PUT CoAP /5/0/1 (escritura LwM2M del recurso URI del Paquete) seguida de una POST CoAP /5/0/2 (Ejecución LwM2M Update, que inicia la extracción del firmware y desencadena el error). En LwM2M de producción, la sesión se ejecuta sobre DTLS (UDP/5684); el atacante en alcance es un servidor de gestión malicioso/comprometido, o un adversario en la ruta cuando la autenticación del servidor DTLS no está aplicada.

Artículo completo

https://www.hunt-benito.com/blog/zephyr-lwm2m-firmware-update-oob-read-cve-2026-10672-truncated-package-uri/

Aviso legal

Solo para fines educativos y de investigación de seguridad autorizados. No utilice estas herramientas contra dispositivos que no posea o para los que no tenga permiso explícito para probar.

Descargar herramienta
Reproducción independiente en C de las rutas de código vulnerables/corregidas. Vuelve a declarar fielmente struct firmware_pull_context (el búfer uri[128] más los campos adyacentes que se sobreleen) y el consumidor de CoAP PROXY_URI con fugas.
lwm2m_evil_server.pyServidor CoAP/LwM2M mínimo que entrega la URI de Paquete sobredimensionada a /5/0/1 de un cliente vulnerable a través de UDP (modo NoSec) — la mitad de la entrega en red del ataque. Sin dependencias externas.