Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach exposed WebSocket endpoint
-
DeliveryConnect unauthenticated to /ws/ui/actuator/
-
ExploitRegister actuator with chosen id
-
ExecutionIntercept victim test-case payloads
-
ImpactInject spoofed results and screen frames
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication required for critical functions
MITRE ATT&CK
1 technique across 1 tactic: Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that a WHartTest (through 2.8.1) instance expose its Django Channels WebSocket endpoints /ws/ui/web/ and /ws/ui/actuator/ to the attacker's network, and that a victim be actively running UI-automation test sessions to intercept and spoof. The flaw works against default configurations because UiAutomationConsumer performs no authentication and accepts every connection, so no special feature toggle is needed. The practical limits are network reachability of the WebSocket endpoints (an instance bound to localhost or behind an authenticating reverse proxy is not directly exploitable) and the presence of concurrent victim test traffic worth intercepting or spoofing; impact is confined to test-session confidentiality and integrity, with no availability effect. |
| Impact | This is a genuine but moderate-severity issue, not a top-tier emergency. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) describes a network-reachable, low-complexity, unauthenticated flaw with no user interaction, which maps to the CWE-306 missing-authentication root cause and the description's claim that UiAutomationConsumer accepts every WebSocket connection - these signals are internally consistent. However, impact is explicitly bounded: VC:L/VI:L and VA:N mean limited confidentiality and integrity loss with no availability impact, yielding a 6.9 (Medium) score rather than Critical. No EPSS probability was provided, the CVE is not listed in CISA KEV, and no POC flag was set in the input (the referenced hackmd write-up is a technical analysis rather than a confirmed weaponized exploit). The dominant risk-limiting factor is deployment footprint: WHartTest is an obscure open-source Django-based UI-automation testing tool, so despite the easy unauthenticated vector, real-world exploitation opportunity is narrow and likely opportunistic/targeted rather than widespread. Priority should be driven by whether an organization actually runs WHartTest with exposed WebSocket endpoints, not by the raw vector alone. |
| Exploit ScenarioDerived | An attacker with network access to a WHartTest 2.8.1 instance opens a WebSocket to /ws/ui/web/ or /ws/ui/actuator/ without any credentials, since the consumer accepts all connections. By registering an actuator with a client-supplied id, they intercept other users' test-case payloads and broadcast step results, then inject spoofed results and screen frames into a victim's active session. No public weaponized exploit is confirmed in the input, though a detailed technical write-up referencing the vulnerable code paths exists. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 16, 2026
Unauthenticated WebSocket access in WHartTest through 2.8.1 lets remote attackers connect to the /ws/ui/web/ and /ws/ui/actuator/ endpoints without credentials, register an actuator under a client-supplied id, and thereby intercept other users' test-case payloads while spoofing step results and screen frames into victim UI-automation sessions. Exploitation is practical only where the Django Channels endpoints are network-reachable and concurrent test traffic exists, since the flaw yields limited confidentiality and integrity impact with no availability effect (independent assessment CVSS 3.1 5.3 medium; vendor-published v4.0 score 6.9). No public exploit code has been identified at time of analysis, no confirmed active exploitation (CISA KEV) has been reported, and no vendor-released patch is currently documented in the available data.
RemediationAI
No vendor-released patch identified at time of analysis; until a fixed release is published, the most effective control is to stop exposing the WebSocket endpoints to untrusted networks - bind WHartTest to localhost or place it behind a VPN/SSH tunnel, accepting that remote testers lose direct access. If remote access must be retained, front the instance with an authenticating reverse proxy that enforces a valid session for /ws/ui/ paths; note that Channels handshakes may bypass Django session middleware, so proxy-level authentication is required, which breaks unauthenticated clients and demands careful header forwarding. Network ACLs limiting access to trusted test-runner subnets reduce exposure but provide no protection against a compromised host inside that subnet. If UI automation is not needed, remove the /ws/ui/web/ and /ws/ui/actuator/ routes from asgi.py or stop the Channels worker, at the cost of losing that feature entirely. As a detective control, log and alert on WebSocket connections lacking a valid session cookie and on unexpected actuator id registrations, recognizing that a quiet attacker can evade such monitoring. Confirm patch status against the vendor advisory at https://www.vulncheck.com/advisories/wharttest-through-2.8.1-missing-authentication-on-ui-automation-websocket-endpoints and re-check the referenced code at https://github.com/MGdaasLab/WHartTest/blob/v2.8.1/WHartTest_Django/ui_automation/consumers.py#L129-L186.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The affected component is WHartTest's Django Channels implementation: asgi.py (lines 41-53) routes /ws/ui/web/ and /ws/ui/actuator/ to UiAutomationConsumer, whose connection handling (consumers.py lines 129-186) accepts every incoming WebSocket handshake without validating a Django session, token, or any other credential. This is CWE-306 (Missing Authentication for Critical Function) rather than a parsing or memory-safety defect. Because the actuator identity is taken from the client's own registration message instead of being bound to an authenticated principal, any client can claim an id and subscribe to the same Channels group used to broadcast test-case payloads and step results; the same group then accepts attacker-injected messages as if they were legitimate runner output, allowing falsified results and screen frames to be delivered to victims. Channels' group-broadcast model amplifies the issue: without per-connection authorization there is no isolation between sessions or tenants sharing the same server.
Know when Wharttest gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
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
Unauthenticated network access to WebSocket endpoints gives PR:N/AV:N/AC:L; intercepting payloads and spoofing frames yields C:L/I:L, with no availability impact (A:N).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
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.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
EUVD-2026-103039
GHSA-6gwv-fx4p-w9x8
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB