Closed Bug 797909 Opened 7 years ago Closed 7 years ago

Docshell sandbox flags should apply to initial about:blank

Categories

(Core :: DOM: Core & HTML, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
mozilla18
Tracking Status
firefox17 + fixed
firefox18 + fixed

People

(Reporter: public, Assigned: smaug)

Details

Attachments

(2 files)

There are two use-cases where people might want to access/modify the sandbox attribute of an iframe before inserting it into the document:
- when trying to detect if the browser supports that feature (as feature-detection scripts are usually in the <head> of the document and the body isn't accessible)
- when trying to create an iframe that is sandboxed from start

In Firefox, the sandbox attribute cannot be accessed or modified before the iframe is inserted into the document.
Testcase please.
Status: NEW → UNCONFIRMED
Ever confirmed: false
Writing the test-case made me realize
Status: UNCONFIRMED → RESOLVED
Closed: 7 years ago
Resolution: --- → INVALID
Summary: Sandbox attribute not accessible/modifiable before the iframe is inserted into the document → Sandbox attribute not modifiable before the iframe is inserted into the document
Oops, I inadvertently submitted the last comment by pressing "Enter" while editing the title, sorry about that.

Writing the test-case made me realize that accessing the attribute was actually possible (I'm pretty sure it wasn't possible a few days ago but anyway), but modifying it isn't.

Opening the attached test case in Firefox will display a text that has been inserted into the a sandboxed iframe, while opening the same test case in Chrome won't display any text but will cause sandbox access violation errors.

In practice this doesn't cause any security problem, it just made me think that it was possible to access the sandboxed iframe content from the parent document when the iframe wasn't sandboxed at all.
Status: RESOLVED → REOPENED
Ever confirmed: true
Resolution: INVALID → ---
Attached file test-case
So the issue is that we're allowing access to the sandboxed iframe, which should be using a nullprincipal, right?

That seems to be because we don't sandbox the initial about:blank?  We should.

There were comments about this in bug 341604 that (incorrectly, it seems) concluded there wasn't a problem here.

Requesting tracking, since this seems like a bad bug to ship...
Summary: Sandbox attribute not modifiable before the iframe is inserted into the document → Docshell sandbox flags should apply to initial about:blank
jst, do you know when imelven gets back?
Assignee: nobody → bugs
Hmm, we do set the sandbox flags to initial about:blank.
Why is that not working
Ah, principal
Attached patch patchSplinter Review
Attachment #668200 - Flags: review?(bzbarsky)
Still trying to push to try. It is very very slow atm.
https://hg.mozilla.org/mozilla-central/rev/fd724f194a1f
Status: REOPENED → RESOLVED
Closed: 7 years ago7 years ago
Resolution: --- → FIXED
(In reply to Boris Zbarsky (:bz) from comment #6)
> jst, do you know when imelven gets back?

I'm told he's back on the 15th.
Tracking based on comment 5, also updating status and milestone for 18 to help with proper triage searching.  Please nominate for uplift - if this doesn't get in before Monday October 8th on Aurora it will need to be nominated for beta.
Target Milestone: --- → mozilla18
Comment on attachment 668200 [details] [diff] [review]
patch

[Approval Request Comment]
Bug caused by (feature/regressing bug #): Bug 341604
User impact if declined: sandbox doesn't work the way it should
Testing completed (on m-c, etc.): landed to m-c
Risk to taking this patch (and alternatives if risky): should be low risk
String or UUID changes made by this patch: NA
Attachment #668200 - Flags: approval-mozilla-aurora?
Comment on attachment 668200 [details] [diff] [review]
patch

thanks - please land before Monday Oct 8th merge day.
Attachment #668200 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Sorry about this, thanks for handling it Olli !
You need to log in before you can comment on or make changes to this bug.