Where
-Infinity
0
Severity
9.1
OS Command Injection, Command Injection
AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H

Multiple OS command injection vulnerabilities exist in the libNetSetObj.so functionality of GeoVision GV-I/O Box 4E 2.09. A specially crafted network packet can lead to command execution. An attacker can send a network request to trigger this vulnerability.

libNetSetObj.so is an internal library used by various binaries on the device to configure the network stack (start and stop various services, configure IP, Netmask, gateway, dns, etc.)

CNetSetObj::mFnSetDNSAddr command injection

The following function can take up to two addresses, performs no sanitization and then calls system. This is a classic command injection vulnerability. The function is reachable from both the network-exposed DVRSearch service and the Network.cgi endpoint.

int fastcall CNetSetObj::mFnSetDNSAddr(CNetSetObj this, char dns1, char dns2)

{

int result; // r0

char v5[80]; // [sp+0h] [bp-50h] BYREF

if ( !dns1 )

result = 0;

if ( dns1 )

{

sprintf(v5, "/bin/echo nameserver %s > /etc/resolv.conf", dns1); // attacker controlled dns1 field

system(v5);

if ( dns2 )

{

sprintf(v5, "/bin/echo nameserver %s >> /etc/resolv.conf", dns2);

system(v5);

}

return 1;

}

return result;

First published (updated )
Severity
9.1
OS Command Injection, Command Injection
AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H

Multiple OS command injection vulnerabilities exist in the libNetSetObj.so functionality of GeoVision GV-I/O Box 4E 2.09. A specially crafted network packet can lead to command execution. An attacker can send a network request to trigger this vulnerability.

libNetSetObj.so is an internal library used by various binaries on the device to configure the network stack (start and stop various services, configure IP, Netmask, gateway, dns, etc.)

CNetSetObj::mFnSetGateway command injection

The following function takes a string as a gatewy address, performs no sanitization on it and calls system. This is a classic command injection vulnerability. The function is reachable from both the network-exposed DVRSearch service and the Network.cgi endpoint.

int fastcall CNetSetObj::mFnSetGateway(const char this, char gw, char dev)

{

char s[324]; // [sp+4h] [bp-144h] BYREF

if ( !dev && !this || !gw )

return 0;

system("/sbin/route del -net 224.0.0.0 netmask 224.0.0.0");

system("/sbin/route del default ");

if ( dev )

sprintf(s, "/sbin/route add default gw %s dev %s", gw, dev); //attacker controlled gw string

else

sprintf(s, "/sbin/route add default gw %s dev %s", gw, this); //attacker controlled gw string

system(s);

sprintf(s, "/sbin/route add -net 224.0.0.0 netmask 224.0.0.0 gw %s dev %s", gw, this); //attacker controlled gw string

system(s);

return 1;

}

First published (updated )
Severity
9.1
OS Command Injection, Command Injection
AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H

Multiple OS command injection vulnerabilities exist in the libNetSetObj.so functionality of GeoVision GV-I/O Box 4E 2.09. A specially crafted network packet can lead to command execution. An attacker can send a network request to trigger this vulnerability.

libNetSetObj.so is an internal library used by various binaries on the device to configure the network stack (start and stop various services, configure IP, Netmask, gateway, dns, etc.)

CNetSetObj::mFnSetNetMask command injection

The following function takes a string as a net mask address, performs no sanitization on it and calls system. This is a classic command injection vulnerability. The function is reachable from both the network-exposed DVRSearch service and the Network.cgi endpoint.

int fastcall CNetSetObj::mFnSetNetMask(const char this, char netmaskaddr)

{

bool v2; // zf

char v4[72]; // [sp+0h] [bp-48h] BYREF

v2 = this == 0;

if ( this )

v2 = netmaskaddr == 0;

if ( v2 )

return 0;

sprintf(v4, "/sbin/ifconfig %s netmask %s", this, netmaskaddr); // attacker controlled netmaskaddr

system(v4);

return 1;

}

First published (updated )
Severity
9.1
OS Command Injection, Command Injection
AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H

Multiple OS command injection vulnerabilities exist in the libNetSetObj.so functionality of GeoVision GV-I/O Box 4E 2.09. A specially crafted network packet can lead to command execution. An attacker can send a network request to trigger this vulnerability.

libNetSetObj.so is an internal library used by various binaries on the device to configure the network stack (start and stop various services, configure IP, Netmask, gateway, dns, etc.)

CNetSetObj::mFnSetIPAddr command injection

The following function takes a string as an ip address, performs no sanitization and calls system. This is a classic command injection vulnerability. The function is reachable from both the network-exposed DVRSearch service and the Network.cgi endpoint.

int fastcall CNetSetObj::mFnSetIPAddr(const char this, char ipaddr)

{

bool v2; // zf

char v4[72]; // [sp+0h] [bp-48h] BYREF

v2 = this == 0;

if ( this )

v2 = ipaddr == 0;

if ( v2 )

return 0;

sprintf(v4, "/sbin/ifconfig %s %s", this, ipaddr); // attacker controlled ip address

system(v4);

return 1;

}

First published (updated )
Severity
10
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H

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:

DNS field stack overflow

The following code is vulnerable to a stack overflow that is attacker-controlled:

v8 = strlen(gnetworkconfig->dnsaddr);

memcpy(&replybuf[248], gnetworkconfig->dnsaddr, v8);

First published (updated )
Severity
10
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H

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:

Gateway field stack overflow

The following code is vulnerable to a stack overflow that is attacker-controlled:

v7 = strlen(gnetworkconfig->gateway);

memcpy(&replybuf[216], gnetworkconfig->gateway, v7);

First published (updated )
Severity
10
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H

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(gnetworkconfig->netmask);

memcpy(&replybuf[184], gnetworkconfig->netmask, v6);

First published (updated )
Severity
10
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H

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:

IP field stack overflow

The following code is vulnerable to a stack overflow that is attacker-controlled:

v3 = strlen(gnetworkconfig->ipaddr);

memcpy(&replybuf[36], gnetworkconfig->ipaddr, v3);

First published (updated )

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203