Skip to main content

GeoVision GeoWebPlayer EUVDEUVD-2026-41230

| CVE-2026-57268 HIGH
Improper Validation of Array Index (CWE-129)
2026-07-02 GV GHSA-fxf5-23x5-47m9
8.3
CVSS 3.1 · Vendor: GV
Share

Severity by source

Vendor (GV) PRIMARY
8.3 HIGH
AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:H
vuln.today AI
8.3 HIGH

Browser-driven reach to a localhost server gives AV:N with UI:R; unreliable OOB pointer control gives AC:H; no auth is PR:N; code execution escaping the WebSocket handler yields S:C and C/I/A:H.

3.1 AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:H
4.0 AV:N/AC:H/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GV).

CVSS VectorVendor: GV

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
Required
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

1
Analysis Generated
Jul 02, 2026 - 03:49 vuln.today

DescriptionCVE.org

GeoWebPlayer (also called "Web Plugin" in the GV-VMS documentation and "WS Player" for VMS-Cloud) is an addon that can be installed with various GeoVision software (GV-VMS, GV-Cloud, ...). It creates a websocket server that expands the capabilities of the various web-interfaces provided by the GeoVision software and may be necessary for them to function properly.

The Websocket server can accept various commands coming from localhost. Many of the commands will take an index value that is then used to access various arrays to enter critical sections, perform various actions via function calls, etc. However the index value is usually not checked for valid range, and as such it can be used to access multiple arrays out-of-bound.

saveVideo command index-out-of-bound

When sending the saveVideo command, the index field is extracted from the websocket message [1]. Then without checking the range of the index, it is used to trigger a CriticalSection ([2]) and releases it [3]. The release function call ([3]) is executed using a function pointer which will be read out of bounds potentially leading to code execution:

v6 = get_entry(a2, "index");

result = json_is_value_int(v6);

if ( (_BYTE)result )

{

v8 = get_entry(a2, "index");

index = json_value_to_int(&v8->value); // [1]

result = CCriticalSection::EnterCritSection(&this->crit_sections[index]); //[2]

if ( result )

{

if ( this->array_of_IPCams[index] )

{

if ( this->array_of_IPCams[index]->field_20 )

do_PostMessageA((CViewer *)this->array_of_IPCams[index], 0x111u, 0x139Fu, v11);

}

return (*(int (__thiscall **)(CCriticalSection *))(this->crit_sections[index].vtbl + 20))(&this->crit_sections[index]); //[3]

}

}

AnalysisAI

Out-of-bounds array access in GeoVision's GeoWebPlayer addon (also branded 'Web Plugin' in GV-VMS and 'WS Player' in VMS-Cloud) can lead to remote code execution when the addon's localhost WebSocket server processes a saveVideo command with an attacker-controlled index. Because the addon ships with widely-used GeoVision products (GV-VMS, GV-Cloud) and is reachable from a victim's browser via a malicious web page, a lured user visiting attacker-controlled content can trigger an out-of-bounds function-pointer call. This is a Talos-reported (TALOS-2026-2373) issue with no public exploit identified at time of analysis and is not listed in CISA KEV.

Technical ContextAI

GeoWebPlayer runs a local WebSocket server that bridges GeoVision web interfaces to native functionality; commands are accepted from localhost and dispatched by a native C++ handler. The root cause is CWE-129 (Improper Validation of Array Index): the saveVideo handler extracts the JSON 'index' field and uses it directly to index parallel arrays - crit_sections[], array_of_IPCams[] - without any bounds check. The decompiled flow shows the index driving CCriticalSection::EnterCritSection(&crit_sections[index]) and then a virtual/function-pointer call '(*(...)( crit_sections[index].vtbl + 20))', so an out-of-range index causes both a critical-section object and its vtable/function pointer to be read from arbitrary adjacent memory, and the subsequent indirect call transfers control to whatever is at that computed pointer - the classic path from OOB read to control-flow hijack. The single affected component per CPE is cpe:2.3:a:geovision_inc.:geowebplayer:*.

RemediationAI

Consult the GeoVision cyber security advisory (https://www.geovision.com.tw/cyber_security.php) and apply the fixed GeoWebPlayer/Web Plugin build once published; no exact fix version is identified in the available data, so no vendor-released patch version can be independently confirmed at time of analysis, and the TALOS-2026-2373 report (https://talosintelligence.com/vulnerability_reports/TALOS-2026-2373) should be tracked for coordinated-disclosure fix details. As compensating controls until a confirmed patch is deployed: uninstall or disable the GeoWebPlayer addon on hosts where the web-interface features it enables are not required (trade-off: some GeoVision web UI features such as in-browser video playback may stop working); restrict outbound browsing on machines running GV-VMS/GV-Cloud so operators do not visit untrusted sites while the local WebSocket server is running (trade-off: operational friction on operator workstations); and where feasible add a host firewall/loopback filtering or browser policy that blocks untrusted origins from reaching the local WebSocket listener to reduce the browser-driven trigger surface (trade-off: may require testing to avoid breaking legitimate same-host UI traffic).

CVE-2026-13125 HIGH
8.8 Jul 02

Missing authentication in GeoVision's GeoWebPlayer addon (also branded 'Web Plugin' in GV-VMS and 'WS Player' in VMS-Clo

CVE-2026-57276 HIGH
8.3 Jul 02

Remote code execution in GeoVision GeoWebPlayer (the browser-facing 'Web Plugin'/'WS Player' addon bundled with GV-VMS,

CVE-2026-57275 HIGH
8.3 Jul 02

Cross-site WebSocket-driven buffer overflow in GeoVision GeoWebPlayer (the 'Web Plugin'/'WS Player' addon bundled with G

CVE-2026-57274 HIGH
8.3 Jul 02

Buffer overflow vulnerabilities in GeoVision's GeoWebPlayer WebSocket addon (CWE-120) allow a remote attacker to induce

CVE-2026-57273 HIGH
8.3 Jul 02

Remote code execution in GeoVision GeoWebPlayer (the "Web Plugin"/"WS Player" addon bundled with GV-VMS, GV-Cloud and VM

CVE-2026-57278 HIGH
8.3 Jul 02

Buffer overflow in GeoVision's GeoWebPlayer addon (also branded "Web Plugin" in GV-VMS and "WS Player" in VMS-Cloud) all

CVE-2026-57277 HIGH
8.3 Jul 02

Stack buffer overflow in GeoVision's GeoWebPlayer addon (also branded "Web Plugin" for GV-VMS and "WS Player" for VMS-Cl

CVE-2026-57272 HIGH
8.3 Jul 02

Out-of-bounds array access in GeoVision's GeoWebPlayer add-on (also branded 'Web Plugin' for GV-VMS and 'WS Player' for

CVE-2026-57269 HIGH
8.3 Jul 02

Out-of-bounds array access in GeoVision's GeoWebPlayer (a.k.a. 'Web Plugin' / 'WS Player') addon lets an attacker read m

CVE-2026-57271 HIGH
8.3 Jul 02

Out-of-bounds array indexing in GeoVision's GeoWebPlayer addon (also branded 'Web Plugin' in GV-VMS and 'WS Player' in V

CVE-2026-57270 HIGH
8.3 Jul 02

Out-of-bounds array access in GeoVision GeoWebPlayer (a.k.a. "Web Plugin"/"WS Player"), a websocket-server addon bundled

CVE-2026-57267 HIGH
8.3 Jul 02

Out-of-bounds array access in GeoVision's GeoWebPlayer (the 'Web Plugin'/'WS Player' addon bundled with GV-VMS, GV-Cloud

Share

EUVD-2026-41230 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy