Skip to content
CVSS 10.0CVSS 10.0 · CRITICAL

CVE-2026-12846

GV-I/O Box 4E is a smart embedded device with 4 input and 4 relays output that can be controlled over Ethernet and RS-485. DVRSearch is a service running by default on the IOBox listening for UDP messages on port 10001. Any user on the network can send messages to this service and interact with it. Upon receiving a UDP message, the server reads at most 1460 bytes into a local buffer and a pointer to the buffer is stored in a global variable: #### Net Mask field stack overflow The following code is vulnerable to a stack overflow that is attacker-controlled: v6 = strlen(g_network_config->net_mask); memcpy(&reply_buf[184], g_network_config->net_mask, v6);

Ver en NVD

Análisis

Esta vulnerabilidad permite la ejecución remota de código (RCE) en dispositivos GV-I/O Box 4E mediante el envío de paquetes UDP maliciosos al servicio DVRSearch. Al explotar un desbordamiento de pila en el procesamiento de la configuración de red, un atacante puede tomar control total del hardware sin autenticación. Con un puntaje CVSS de 10.0, representa un riesgo crítico para la infraestructura de control conectada.

Roles relevantes

HardwareCyberSecurityCBackendLinux

Severidad

Puntaje: 10.0(CRITICAL)
Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
AV: NETWORK
AC: LOW
PR: NONE
UI: NONE
S: CHANGED
C: HIGH
I: HIGH
A: HIGH
Tipo de falla (CWE): CWE-121

EPSS

Sin puntaje EPSS aún (CVE muy reciente).

Descripción técnica

GV-I/O Box 4E is a smart embedded device with 4 input and 4 relays output that can be controlled over Ethernet and RS-485. DVRSearch is a service running by default on the IOBox listening for UDP messages on port 10001. Any user on the network can send messages to this service and interact with it. Upon receiving a UDP message, the server reads at most 1460 bytes into a local buffer and a pointer to the buffer is stored in a global variable: #### Net Mask field stack overflow The following code is vulnerable to a stack overflow that is attacker-controlled: v6 = strlen(g_network_config->net_mask); memcpy(&reply_buf[184], g_network_config->net_mask, v6);

Publicada: 24/6/2026, 5:17:26
Última modificación: 24/6/2026, 5:17:26

Referencias

InicioEventosBlogRecursosEquipo