One message in Twitch chat gave a hacker full control over a streamer's PC through OBS
Security researcher Dylan Ifrig-Bourfa from the Swiss branch of Orange Cyberdefense (SCRT team) demonstrated an attack chain where a single Twitch chat message leads to arbitrary code execution on a streamer PC.
The attack required a vulnerable chat overlay, the OBS Studio built-in browser running without a sandbox, and an outdated version of the V8 engine with a bug already being exploited in real-world attacks. OBS itself ran with default settings throughout.
The whole thing started with a screenshot. An acquaintance of the researcher used AI vibe-coding to whip up a small chat overlay for OBS and posted a screenshot showing part of the code. One line inserted chat messages into the page as raw HTML, with no sanitization at all, opening the door to a classic XSS attack.
A chat overlay is essentially a tiny webpage that OBS displays over the stream through a "Browser" source. These sources run on Chromium via the CEF framework (Chromium Embedded Framework) and get used for chats, donation alerts, animations, and other widgets. That means a simple viewer message widget actually runs inside a full browser on the streamer machine.
Earlier attacks of this kind revolved around the local OBS WebSocket server, which lets someone switch scenes or stop a stream. That path is mostly closed now, since the WebSocket server is disabled by default and requires an auto-generated password when enabled. Ifrig-Bourfa aimed for something more ambitious – a single message, a current OBS version, default settings, and zero action needed from the streamer.
The key piece of the puzzle turned out to be the built-in browser configuration. Chrome normally isolates rendering processes inside a sandbox, so even after a successful memory exploit, an attacker still needs a separate vulnerability to break out of it. OBS, however, initializes CEF with the settings.no_sandbox = true parameter, and that line still sits in the obs-browser plugin source code.
The second issue comes down to how old the engine is. The latest version at the time of testing, OBS 32.2.2, used Chromium 127.0.6533.120 and V8 12.7.224.18, both vulnerable to CVE-2024-7971. This type confusion bug in V8 affects every Chromium version prior to 128.0.6613.84, and Google patched it in Chrome 128 back on August 21, 2024.
This isn't a theoretical risk either. Microsoft tracked its exploitation by a North Korean group it calls Citrine Sleet, and CISA added CVE-2024-7971 to its catalog of known exploited vulnerabilities. In the attacks Microsoft documented, hackers needed an additional flaw to escape the sandbox after breaking V8. Inside OBS, that barrier simply doesn't exist.
The full chain looks like this:
a viewer sends a malicious message in Twitch chat
the vulnerable overlay renders it as HTML, triggering JavaScript execution in the OBS browser
the script exploits CVE-2024-7971 and achieves native code execution in the render process
with the sandbox disabled, the attacker instantly gains control of the system
No public exploit existed for this specific CEF version in OBS, so the researcher built his own using Chromium remote debugging and the DevTools protocol. He deliberately withheld the technical details of the exploit. The full chain was reproduced on a fully updated Windows 11 machine.
Ifrig-Bourfa noted specifically that a fresh OBS install isn't vulnerable to just any random chat viewer. The overlay itself is the entry point, since it renders user content without sanitizing it. Once that page loads, though, OBS needs no additional weaknesses – no WebSocket configuration, no admin rights, no clicks from the streamer.
Chat isn't the only route either. Any page under an attacker control, loaded into a "Browser" source or a browser dock panel in OBS, can potentially skip straight to the browser exploitation stage. The chat vulnerability just makes the attack remote and removes the need for any victim action.
The OBS team confirmed fixes are already in the works. The main obstacle to updating the browser was the new Chrome Runtime, which until recently lacked support for the off-screen rendering OBS needs. Chromium 127 hit the stable channel back in July 2024, so the engine in OBS 32.2.2 is roughly two years behind.
A pull request moving obs-browser to CEF 128 or newer closes this specific V8 bug and is planned for OBS Studio 33.0. Developers are also testing re-enabling the CEF sandbox, which was originally disabled due to authorization issues with certain service integrations. The team believes those issues have likely been resolved in newer CEF versions.
Until the update ships, protection falls entirely on streamers and overlay creators. Ifrig-Bourfa recommends treating any content in a "Browser" source as unsafe and never rendering viewer messages as HTML – text should display strictly as text, and if HTML rendering is genuinely needed, it must be sanitized.