
Safari 跨域读取视频
WebKit WebGPU importExternalTexture Cross-Origin Information Disclosure. Safari < 26.5.2.
Verifikationsseite (mit Safari < 26.5.2 öffnen):
https://cve43700-attacker.vercel.app
Cross-Origin Video:
https://cve43700-victim.vercel.app/colorcycle.mp4
[BYPASS] + Einzelbild [LEAK] RGBA = [...] -> Rot/Grün/Blau/Weiß[PATCHED] importExternalTexture blocked: SecurityErrorGPUDevice.importExternalTexture({source: HTMLVideoElement}) importiert ein Video als GPU-abtastbare GPUExternalTexture. Vor dem Fix gab es keine Cross-Origin-Prüfung für taintsOrigin des Videos, sodass getaintete Videos aus anderen Ursprüngen ohne CORS ebenfalls importiert werden konnten. Anschließend werden mit einem WGSL-Shader abgetastet, copyTextureToBuffer + mapAsync die Pixel zurück nach JS gelesen, wodurch die Same-Origin-Policy umgangen und Cross-Origin-Videoframes preisgegeben werden.
Der Fix (Commit 67b563b8, Bug 315368) hat sowohl im Cache-Treffer-Pfad als auch im Neuerstellungspfad von GPUDevice::importExternalTexture checkVideoElementOriginTaint ergänzt, sodass für getaintete Videos direkt ein SecurityError ausgelöst wird.