{"id":12600,"date":"2026-09-04T18:59:31","date_gmt":"2026-09-04T10:59:31","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-57268"},"modified":"2026-09-04T18:59:31","modified_gmt":"2026-09-04T10:59:31","slug":"cve-2026-57268","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-57268","title":{"rendered":"CVE-2026-57268 [HIGH] &#8211; GeoWebPlayer (also called &#8220;Web Plugin&#8221; in the GV-VMS documentation and &#8220;WS Player&#8221; for VMS"},"content":{"rendered":"<p>GeoWebPlayer (also called &#8220;Web Plugin&#8221; in the GV-VMS documentation and &#8220;WS Player&#8221; for VMS-Cloud) is an addon that can be installed with various GeoVision software (GV-VMS, GV-Cloud, &#8230;). 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.<\/p>\n<p>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.<\/p>\n<p>### saveVideo command index-out-of-bound<\/p>\n<p>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:<\/p>\n<p>     v6 = get_entry(a2, &#8220;index&#8221;);<\/p>\n<p>      result = json_is_value_int(v6);<\/p>\n<p>      if ( (_BYTE)result )<\/p>\n<p>      {<\/p>\n<p>        v8 = get_entry(a2, &#8220;index&#8221;);<\/p>\n<p>        index = json_value_to_int(&amp;v8-&gt;value);  \/\/ [1]<\/p>\n<p>        result = CCriticalSection::EnterCritSection(&amp;this-&gt;crit_sections[index]);  \/\/[2]<\/p>\n<p>        if ( result )<\/p>\n<p>        {<\/p>\n<p>          if ( this-&gt;array_of_IPCams[index] )<\/p>\n<p>          {<\/p>\n<p>            if ( this-&gt;array_of_IPCams[index]-&gt;field_20 )<\/p>\n<p>              do_PostMessageA((CViewer *)this-&gt;array_of_IPCams[index], 0x111u, 0x139Fu, v11);<\/p>\n<p>          }<\/p>\n<p>          return (*(int (__thiscall **)(CCriticalSection *))(this-&gt;crit_sections[index].vtbl + 20))(&amp;this-&gt;crit_sections[index]); \/\/[3]<\/p>\n<p>        }<\/p>\n<p>      }<\/p>\n","protected":false},"excerpt":{"rendered":"<p>GeoWebPlayer (also called &#8220;Web Plugin&#8221; in the GV-VMS documentation and &#8220;WS Player&#8221; for VMS-Cloud) is an addon that can be installed with various GeoVision software (GV-VMS, GV-Cloud, &#8230;). It creates <\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-12600","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/12600","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=12600"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=12600"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=12600"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}