Skip to content

Commit fe2741b

Browse files
committed
Improved origin normalization for sandboxed content (thanks Security Research Labs for report).
1 parent 160dea6 commit fe2741b

1 file changed

Lines changed: 11 additions & 3 deletions

File tree

src/bg/RequestGuard.js

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -616,8 +616,16 @@
616616
request.documentUrl = request.initiator;
617617
}
618618
}
619-
if (request.frameAncestors && !request.originUrl && request.type == "sub_frame") {
620-
// Gecko sandboxed iframe
619+
if (request.frameAncestors && !request.originUrl && request.type != "main_frame") {
620+
// Gecko sandboxed content
621+
if (request.documentUrl || request.type != "sub_frame") {
622+
// this is a navigation triggered by the framed document: let's use its current URL
623+
request.originUrl = NavCache.getFrame(request.tabId, request.frameId)?.url || "null";
624+
request.documentUrl ||= request.originUrl;
625+
return;
626+
}
627+
// both originUrl and documentUrl are undefined:
628+
// initial sandboxed iframe creation, let's use first viable ancestor
621629
for (let f of request.frameAncestors) {
622630
if (f.url !== "null" && !f.url.startsWith("moz-nullprincipal:")) {
623631
let { url } = f;
@@ -629,7 +637,7 @@
629637
break;
630638
}
631639
}
632-
request.originUrl ||= request.documentUrl;
640+
request.originUrl ||= "null";
633641
}
634642
};
635643

0 commit comments

Comments
 (0)