Vulnerabilidades do Geovision GV-I/O Box 4E
🔔 Criar alerta RSS Verificador de versão
CVEs publicadas que afetam Geovision GV-I/O Box 4E: 8 registro(s), com versões afetadas e correções.
CVE-2026-12851
Crítica · 9.1
CWE-78 24/06/2026
Injeção de comando do sistema operacional no GeoVision GV-I/O Box 4E via libNetSetObj.so
Existem múltiplas vulnerabilidades de injeção de comando do sistema operacional na funcionalidade libNetSetObj.so do GeoVision GV-I/O Box 4E 2.09. Um pacote de rede especialmente elaborado pode levar à execução de comandos. Um atacante pode enviar uma requisição de rede para acionar essa vulnerabilidade.
libNetSetObj.so é uma biblioteca interna usada por diversos binários do dispositivo para configurar a pilha de rede (iniciar e parar vários serviços, configurar IP, máscara de rede, gateway, DNS etc.).
CNetSetObj::m_F_n_Set_DNS_Addr command injection
A função a seguir pode receber até dois endereços, não realiza sanitização e então chama system. Trata-se de uma clássica vulnerabilidade de injeção de comando. A função é alcançável tanto pelo serviço DVRSearch, exposto na rede, quanto pelo endpoint Network.cgi.
Trecho de código do advisório, reproduzido sem alteração: int __fastcall CNetSetObj::m_F_n_Set_DNS_Addr(CNetSetObj *this, char *dns1, char *dns2) { int result; char v5[80]; if ( !dns1 ) result = 0; if ( dns1 ) { sprintf(v5, "/bin/echo nameserver %s > /etc/resolv.conf", dns1); system(v5); if ( dns2 ) { sprintf(v5, "/bin/echo nameserver %s >> /etc/resolv.conf", dns2); system(v5); } return 1; } return result;
CVE-2026-12850
Crítica · 9.1
CWE-78 24/06/2026
Injeção de Comando do Sistema Operacional no GeoVision GV-I/O Box 4E via libNetSetObj.so
Existem múltiplas vulnerabilidades de injeção de comando do sistema operacional na funcionalidade libNetSetObj.so do GeoVision GV-I/O Box 4E 2.09. Um pacote de rede especialmente elaborado pode levar à execução de comandos. Um atacante pode enviar uma requisição de rede para acionar essa vulnerabilidade.
A libNetSetObj.so é uma biblioteca interna usada por diversos binários do dispositivo para configurar a pilha de rede (iniciar e parar diversos serviços, configurar IP, máscara de rede, gateway, DNS etc.).
Comando de injeção em CNetSetObj::m_F_n_Set_Gate_way
A função a seguir recebe uma string como endereço de gateway (o registro escreve 'gatewy'), não realiza nenhuma sanitização e chama system. Trata-se de uma injeção de comando clássica. A função é acessível tanto pelo serviço DVRSearch, exposto na rede, quanto pelo endpoint Network.cgi. O trecho de código do registro mostra a assinatura int __fastcall CNetSetObj::m_F_n_Set_Gate_way(const char **this, char *gw, char *dev), que monta comandos de rota com o valor de gateway, marcados no código como string gw controlada pelo atacante, e os passa à função system.
CVE-2026-12849
Crítica · 9.1
CWE-78 24/06/2026
Injeção de comando do sistema operacional no GeoVision GV-I/O Box 4E (libNetSetObj.so)
Múltiplas vulnerabilidades de injeção de comando do sistema operacional existem na funcionalidade libNetSetObj.so do GeoVision GV-I/O Box 4E 2.09. Um pacote de rede especialmente elaborado pode levar à execução de comandos. Um atacante pode enviar uma requisição de rede para acionar a vulnerabilidade.
libNetSetObj.so é uma biblioteca interna usada por vários binários do dispositivo para configurar a pilha de rede (iniciar e parar diversos serviços, configurar IP, máscara de rede, gateway, DNS etc.).
Injeção de comando em CNetSetObj::m_F_n_Set_Net_Mask
A função a seguir recebe uma string como endereço de máscara de rede, não realiza nenhuma sanitização e chama system. Trata-se de uma injeção de comando clássica. A função é alcançável tanto pelo serviço DVRSearch, exposto na rede, quanto pelo endpoint Network.cgi. A função recebe um ponteiro com o nome da interface e a string da máscara; ela monta um comando de shell com sprintf, usando um formato de ifconfig com a interface e a máscara, e então executa esse comando com system. O valor da máscara é controlado pelo atacante.
CVE-2026-12848
Crítica · 10.0
CWE-121 24/06/2026
Estouro de buffer baseado em pilha no DVRSearch do GV-I/O Box via UDP (CVE-2026-12848)
GV-I/O Box 4E é um dispositivo embarcado inteligente com 4 entradas e 4 saídas de relé, que pode ser controlado via Ethernet e RS-485.
DVRSearch é um serviço executado por padrão no IOBox e que escuta mensagens UDP na porta 10001. Qualquer usuário na rede pode enviar mensagens a esse serviço e interagir com ele.
Ao receber uma mensagem UDP, o servidor lê no máximo 1460 bytes para um buffer local, e um ponteiro para esse buffer é armazenado em uma variável global:
#### Estouro de pilha no campo DNS
O código a seguir é vulnerável a um estouro de pilha controlado pelo atacante:
v8 = strlen(g_network_config->dns_addr);
memcpy(&reply_buf[248], g_network_config->dns_addr, v8);
CVE-2026-12847
Crítica · 10.0
CWE-121 24/06/2026
Estouro de buffer na pilha no DVRSearch do GV-I/O Box 4E
O GV-I/O Box 4E é um dispositivo embarcado inteligente com 4 entradas e 4 saídas de relé que pode ser controlado via Ethernet e RS-485.
O DVRSearch é um serviço executado por padrão no IOBox que escuta mensagens UDP na porta 10001. Qualquer usuário na rede pode enviar mensagens a esse serviço e interagir com ele.
Ao receber uma mensagem UDP, o servidor lê no máximo 1460 bytes para um buffer local, e um ponteiro para o buffer é armazenado em uma variável global:
#### Estouro de pilha no campo gateway
O código a seguir é vulnerável a um estouro de pilha controlado pelo atacante:
v7 = strlen(g_network_config->gateway);
memcpy(&reply_buf[216], g_network_config->gateway, v7);
CVE-2026-12846
Crítica · 10.0
CWE-121 24/06/2026
GeoVision GV-I/O Box 4E: estouro de buffer na pilha no serviço DVRSearch
O GV-I/O Box 4E é um dispositivo embarcado inteligente com 4 entradas e 4 saídas de relé, controlável por Ethernet e RS-485.
O DVRSearch é um serviço executado por padrão no IOBox que escuta mensagens UDP na porta 10001. Qualquer usuário na rede pode enviar mensagens a esse serviço e interagir com ele.
Ao receber uma mensagem UDP, o servidor lê no máximo 1460 bytes para um buffer local, e um ponteiro para o buffer é armazenado em uma variável global:
#### Estouro de pilha no campo Net Mask
O código a seguir é vulnerável a um estouro de pilha controlado pelo atacante:
v6 = strlen(g_network_config->net_mask);
memcpy(&reply_buf[184], g_network_config->net_mask, v6);
CVE-2026-12486
Crítica · 9.1
CWE-78 24/06/2026
Injeção de comando do SO no GeoVision GV-I/O Box 4E (libNetSetObj.so)
Existem múltiplas vulnerabilidades de injeção de comando no SO na funcionalidade libNetSetObj.so do GeoVision GV-I/O Box 4E 2.09. Um pacote de rede especialmente elaborado pode levar à execução de comandos. Um atacante pode enviar uma requisição de rede para acionar esta vulnerabilidade.
libNetSetObj.so é uma biblioteca interna usada por vários binários do dispositivo para configurar a pilha de rede (iniciar e parar diversos serviços, configurar IP, máscara de rede, gateway, DNS etc.).
Injeção de comando do SO em CNetSetObj::m_F_n_Set_IP_Addr
A função a seguir recebe uma string como endereço IP, não realiza nenhuma sanitização e chama system. Trata-se de uma injeção de comando clássica. A função é alcançável tanto pelo serviço DVRSearch, exposto na rede, quanto pelo endpoint Network.cgi.
O trecho de código mostra a função int __fastcall CNetSetObj::m_F_n_Set_IP_Addr(const char **this, char *ip_addr), que verifica os parâmetros, monta com sprintf um comando de ifconfig concatenando o endereço IP controlado pelo atacante, executa esse comando com system e retorna 1.
CVE-2026-12485
Crítica · 10.0
CWE-121 24/06/2026
Estouro de buffer baseado em pilha no DVRSearch do GeoVision GV-I/O Box 4E
O GV-I/O Box 4E é um dispositivo embarcado inteligente com 4 entradas e 4 saídas de relé, que pode ser controlado via Ethernet e RS-485.
O DVRSearch é um serviço executado por padrão no IOBox que escuta mensagens UDP na porta 10001. Qualquer usuário da rede pode enviar mensagens a esse serviço e interagir com ele.
Ao receber uma mensagem UDP, o servidor lê no máximo 1460 bytes para um buffer local, e um ponteiro para esse buffer é armazenado em uma variável global.
#### Estouro de pilha no campo de IP
O trecho de código a seguir é vulnerável a um estouro de pilha controlado pelo atacante: a cópia do campo de endereço IP para o buffer de resposta usa como tamanho o comprimento da string de IP armazenada na configuração.