{"id":"CVE-2026-111617","kind":"vulnerability","aliases":["CVE-2026-111617"],"related":[],"title":"WHartTest: missing authentication lets anyone hijack WebSocket test sessions","description":"WHartTest through 2.8.1 contains a missing authentication vulnerability that allows unauthenticated attackers to connect to the /ws/ui/web/ and /ws/ui/actuator/ WebSocket endpoints because UiAutomationConsumer accepts every connection. Attackers can register an actuator with a client-supplied id to intercept other users' test-case payloads, receive broadcast step results, and spoof results and screen frames into victim sessions.","summary":"WHartTest through 2.8.1 accepts WebSocket connections on its UI endpoints without checking identity. An unauthenticated attacker can read other users' test-case payloads and step results, and inject spoofed results and screen frames into victim sessions.","severity":"medium","cvss":6.9,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["other","self-hosted","test-automation","whartest"],"not_affected_if":["local-only-access","no-websocket-exposure"],"how_to_check":"- Check the installed WHartTest version and confirm whether it is `2.8.1` or earlier.\n- Confirm whether the `/ws/ui/web/` and `/ws/ui/actuator/` endpoints are reachable from untrusted networks.\n- Look at `UiAutomationConsumer` in the WHartTest source for an authentication check on WebSocket connect.","fix":"- Upgrade WHartTest past `2.8.1` once a fixed release is published; the sources do not name a fixed version.\n- Until patched, block external access to `/ws/ui/web/` and `/ws/ui/actuator/` at the reverse proxy or firewall.","status":"open","published_at":"2026-10-16T18:17:41+00:00","first_seen_at":"2026-10-23T21:57:13+00:00","triaged_at":"2026-10-25T03:42:30+00:00","updated_at":"2026-10-25T03:42:30+00:00","category":"other","confidence":0.7,"triage":{"at":"2026-10-25T03:42:30Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade WHartTest past `2.8.1` once a fixed release is published; the sources do not name a fixed version.\n- Until patched, block external access to `/ws/ui/web/` and `/ws/ui/actuator/` at the reverse proxy or firewall.","reach":"network","title":"WHartTest: missing authentication lets anyone hijack WebSocket test sessions","impact":"medium","summary":"WHartTest through 2.8.1 accepts WebSocket connections on its UI endpoints without checking identity. An unauthenticated attacker can read other users' test-case payloads and step results, and inject spoofed results and screen frames into victim sessions.","category":"other","nicknames":[],"who_cares":["whartest","self-hosted","test-automation"],"confidence":0.7,"needs_auth":"no","worst_case":"Attackers read test payloads and inject spoofed results into sessions","analyst_note":"Find the fixed WHartTest version and whether the endpoints are enabled by default; check the NVD entry linked in the sources.","how_to_check":"- Check the installed WHartTest version and confirm whether it is `2.8.1` or earlier.\n- Confirm whether the `/ws/ui/web/` and `/ws/ui/actuator/` endpoints are reachable from untrusted networks.\n- Look at `UiAutomationConsumer` in the WHartTest source for an authentication check on WebSocket connect.","needs_analyst":true,"not_affected_if":["local-only-access","no-websocket-exposure"],"who_is_affected":"Teams that run WHartTest's web UI and expose its WebSocket endpoints beyond a trusted machine or network are exposed, because the consumer accepts every connection without authentication. Teams that run it only on a local workstation with no network exposure are at much lower risk. The sources do not say whether a default configuration enables these endpoints.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000678,"input_tokens":3371,"output_tokens":681,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-111617':12A,15A '-2026':11A,14A '/ws/ui/actuator':79C '/ws/ui/web':77C '2.8.1':26B,63C 'accept':27B,84C 'actuat':91C 'allow':70C 'anyon':5A 'attack':39B,72C,87C 'authent':3A,67C 'autom':22B 'broadcast':107C 'case':46B,104C 'check':35B 'client':95C 'client-suppli':94C 'connect':29B,74C,86C 'contain':64C 'cve':10A,13A 'endpoint':33B,81C 'everi':85C 'frame':57B,115C 'hijack':6A 'host':19B 'id':97C 'ident':36B 'inject':52B 'intercept':99C 'let':4A 'miss':2A,66C 'payload':47B,105C 'read':41B 'receiv':106C 'regist':89C 'result':50B,54B,109C,112C 'screen':56B,114C 'self':18B 'self-host':17B 'session':9A,60B,118C 'spoof':53B,111C 'step':49B,108C 'suppli':96C 'test':8A,21B,45B,103C 'test-autom':20B 'test-cas':44B,102C 'ui':32B 'uiautomationconsum':83C 'unauthent':38B,71C 'user':43B,101C 'victim':59B,117C 'vulner':68C 'websocket':7A,28B,80C 'whartest':23B 'wharttest':1A,24B,61C 'without':34B","nicknames":[],"mitigations":[],"who_affected":"Teams that run WHartTest's web UI and expose its WebSocket endpoints beyond a trusted machine or network are exposed, because the consumer accepts every connection without authentication. Teams that run it only on a local workstation with no network exposure are at much lower risk. The sources do not say whether a default configuration enables these endpoints.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-16T18:17:41+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-111617","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-111617","severity":null,"published_at":"2026-10-16T18:17:41+00:00","modified_at":"2026-10-16T20:17:20+00:00","first_seen_at":"2026-10-23T21:57:13+00:00","fetched_at":"2026-10-23T22:28:55+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}