
Proof-of-concept exploit for CVE-2026-43700: cross-origin video frame leak in Safari WebGPU via importExternalTexture, bypassing same-origin policy to exfiltrate pixel data using WGSL shaders.
WebKit WebGPU importExternalTexture cross-origin information leak. Safari < 26.5.2.
Verification page (open with Safari < 26.5.2):
https://cve43700-attacker.vercel.app
Cross-origin video:
https://cve43700-victim.vercel.app/colorcycle.mp4
[BYPASS] + frame-by-frame [LEAK] RGBA = [...] -> Red/Green/Blue/White[PATCHED] importExternalTexture blocked: SecurityErrorGPUDevice.importExternalTexture({source: HTMLVideoElement}) imports a video into a GPU-samplable GPUExternalTexture. Before the fix, there was no cross-origin check for taintsOrigin on the video, so cross-origin tainted videos without CORS could also be imported. Then, using WGSL shader sampling, copyTextureToBuffer + mapAsync, the pixels are read back to JavaScript, bypassing the same-origin policy to leak cross-origin video frames.
The fix (commit 67b563b8, bug 315368) added checkVideoElementOriginTaint to both the cache hit path and the new creation path of GPUDevice::importExternalTexture. Tainted videos directly throw a SecurityError.