Fetch Metadata Headers contain invalid value for Sec-Fetch-Site for meta redirects
Categories
(Core :: DOM: Security, defect, P3)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox88 | --- | fixed |
People
(Reporter: terjanq, Assigned: n.goeggi)
References
()
Details
(Keywords: reporter-external, sec-low, Whiteboard: [reporter-external] [client-bounty-form] [verif?][domsecurity-active][adv-main88-])
Attachments
(1 file, 1 obsolete file)
Hello Team,
I discovered an issue with the current implementation of Fetch Metadata. When a page is redirected to another domain through meta redirect <meta http-equiv=refresh content="0;url=https://google.com"> then Sec-Fetch-Site will be set to 'none'.
Furthermore, as a result, if the navigation occurs inside an iframe, e.g.
<iframe srcdoc='<meta http-equiv=refresh content="0;url=https://www.google.com">'>
the following headers will be sent to a web server:
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Because 'none', according to the current specification, should indicate a browser indicated request, it can result in the bypass of Fetch Metadata policy by using iframes. (https://www.w3.org/TR/fetch-metadata/#sec-fetch-site-header)
This, for example, could introduce XS-Leaks that the policy is supposed to protect against.
In case of an awarded bounty for this report, please donate the reward to a charity of your choice.
Comment 1•5 years ago
|
||
Christoph, is this your ballpark?
Comment 2•5 years ago
|
||
Thanks for reporting - we should fix that. Please note that Sec-Fetch Headers are bound to Nightly at the moment, so I guess this bug does not need to be hidden.
Anyway, Anne, I guess simply relying on the referrer here is insufficient. I guess we could additionally check the loadinfo if the channel has been redirected (I assume that meta redirects end up in the loadinfo redirect history).
Or is there anything else I am missing?
Please note that Sec-Fetch Headers are bound to Nightly at the moment, so I guess this bug does not need to be hidden.
I don't mind the report being public.
Comment 4•5 years ago
|
||
Yeah, I thought we discussed the need for an actual user-initiated signal. I don't think we can approximate it.
Updated•5 years ago
|
Updated•5 years ago
|
Comment 5•5 years ago
|
||
Use hasUsergesture in SecFetch
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•4 years ago
|
Comment 8•4 years ago
|
||
| bugherder | ||
Updated•4 years ago
|
Comment 9•4 years ago
|
||
Nightly only doesn't get advisories.
Updated•1 year ago
|
Updated•1 year ago
|
Description
•