GeoVision GV-I/O Box 4E 2.09의 libNetSetObj.so 기능에 다양한 OS 명령 주입 취약점이 존재합니다. 특별히 제작된 네트워크 패킷으로 인해 명령이 실행될 수 있습니다. 공격자는 이 취약점을 트리거하기 위해 네트워크 요청을 보낼 수 있습니다. `libNetSetObj.so`는 네트워크 스택을 구성하기 위해 장치의 다양한 바이너리에서 사용되는 내부 라이브러리입니다(다양한 서비스 시작 및 중지, IP, 넷마스크, 게이트웨이, DNS 등 구성). #### CNetSetObj::m_F_n_Set_IP_Addr 명령 주입
GeoVision GV-I/O Box 4E 2.09의 libNetSetObj.so 기능에 다양한 OS 명령 주입 취약점이 존재합니다. 특별히 제작된 네트워크 패킷으로 인해 명령이 실행될 수 있습니다. 공격자는 이 취약점을 트리거하기 위해 네트워크 요청을 보낼 수 있습니다.
libNetSetObj.so는 네트워크 스택을 구성하기 위해 장치의 다양한 바이너리에서 사용되는 내부 라이브러리입니다(다양한 서비스 시작 및 중지, IP, 넷마스크, 게이트웨이, DNS 등 구성).
다음 함수는 문자열을 IP 주소로 사용하고 삭제를 수행하지 않으며 system을 호출합니다. 이는 전형적인 명령 주입 취약점입니다. 이 기능은 네트워크에 노출된 DVRSearch 서비스와 Network.cgi 엔드포인트 모두에서 접근할 수 있습니다.
int __fastcall CNetSetObj::m_F_n_Set_IP_Addr(const char **this, char *ip_addr)
{
부울 v2; // zf
문자 v4[72]; // [sp+0h] [bp-48h] BYREF
v2 = *이것 == 0;
if ( *this )
v2 = ip_addr == 0;
만약 (v2)
0을 반환합니다.
sprintf(v4, "/sbin/ifconfig %s %s", *this, ip_addr); // 공격자가 제어하는 IP 주소
시스템(v4);
1을 반환합니다.
}
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 91.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 91.00 |
VPI 공식 vpi-v1 기준