- Impact: Remote command execution via the in-game WebSocket command server from a malicious website.
- Root cause: Origin validation used
startsWith, so any origin prefixed with an allowed domain (e.g.,https://ui-utils.com.attacker.tld) was treated as trusted. Browsers enforceOrigin, so a hostile page could supply that value and get authorized. - Fix: Require exact origin equality (
origin::equals) in both WebSocket entry points. This blocks prefix-based spoofing while keeping the allowlist intact.
- The WebSocket command server authorizes a connection solely by comparing the request
Originheader against an allowlist. Before the fix it accepted any origin that started with an allowed value.