Make the BackupUI and MigrationWizard use remoteTypes
Categories
(Firefox :: Profile Backup, defect)
Tracking
()
People
(Reporter: mccr8, Assigned: mccr8)
References
Details
(Keywords: csectype-sandbox-escape, reporter-external, sec-high, Whiteboard: [adv-main150.0.3+][adv-esr140.11+][adv-esr115.36+])
Attachments
(6 files)
|
48 bytes,
text/x-phabricator-request
|
freddy
:
sec-approval+
|
Details | Review |
|
48 bytes,
text/x-phabricator-request
|
phab-bot
:
approval-mozilla-beta+
|
Details | Review |
|
48 bytes,
text/x-phabricator-request
|
phab-bot
:
approval-mozilla-release+
|
Details | Review |
|
48 bytes,
text/x-phabricator-request
|
phab-bot
:
approval-mozilla-esr140+
|
Details | Review |
|
48 bytes,
text/x-phabricator-request
|
phab-bot
:
approval-mozilla-esr115+
|
Details | Review |
|
11 bytes,
text/plain
|
Details |
This issue was originally reported by gaddofpwn in bug 2038573. There are a number of interesting issues we may want to fix in that report, so I am splitting off my patch for one issue here. I have marked this as sec-bounty? on their behalf here to ensure we track it.
The basic issue here is that the BackupUI actor can't use remoteTypes because it runs in both the parent process and the privilegedAbout process. Instead, it uses some checks in receiveMessage, but these can be bypassed. BackupUI is very powerful, so if a compromised content process can access it, it can be leveraged into a sandbox escape.
The fix here is to hack up a way to specify a remoteTypes that matches the parent in JSActorProtocol::RemoteTypePrefixMatches and then use that for BackupUI and MigrationUtils (which has the same kind of check).
| Assignee | ||
Updated•4 months ago
|
| Assignee | ||
Comment 1•4 months ago
|
||
BackupUI is not present on ESR115, but MigrationWizard. I'm not sure if it is as dangerous.
| Assignee | ||
Comment 2•4 months ago
|
||
I've locally run the tests in browser/components/backup/tests/ and browser/components/migration/tests/ and they seem okay. The main risk here is that we run it in a regular content process somehow and we don't test that.
| Assignee | ||
Comment 3•4 months ago
|
||
| Assignee | ||
Comment 4•4 months ago
|
||
Comment on attachment 9585150 [details]
(secure)
Security Approval Request
- How easily could an exploit be constructed based on the patch?: The basic issue is rather obvious from the patch, but based on bug 2038573 it does take some cleverness to exploit it, plus you need content process arbitrary code execution to even get at it.
- Do comments in the patch, the check-in comment, or tests included in the patch paint a bulls-eye on the security problem?: No
- Which branches (beta, release, and/or ESR) are affected by this flaw, and do the release status flags reflect this affected/unaffected state correctly?: all, yes
- If not all supported branches, which bug introduced the flaw?: None
- Do you have backports for the affected branches?: No
- If not, how different, hard to create, and risky will they be?: Should be trivial. ESR115 will have to drop the BackUI part.
- How likely is this patch to cause regressions; how much testing does it need?: The risk is that these two actors actually do run in a regular content process in some cases, in which case that specific functionality will be broken.
- Is the patch ready to land after security approval is given?: Yes
- Is Android affected?: No
Updated•4 months ago
|
| Assignee | ||
Comment 5•4 months ago
|
||
I think these actors are desktop-only but I could be wrong.
Updated•4 months ago
|
Updated•4 months ago
|
Comment 6•4 months ago
|
||
firefox-beta Uplift Approval Request
- User impact if declined/Reason for urgency: sec-high
- Code covered by automated testing?: yes
- Fix verified in Nightly?: no
- Needs manual QE testing?: no
- Steps to reproduce for manual QE testing:
- Risk associated with taking this patch: low
- Explanation of risk level: Might break the backupUI or MigrationWizard functionality if it is used in a different process than we do on testing.
- String changes made/needed?: none
- Is Android affected?: no
| Assignee | ||
Comment 7•4 months ago
|
||
Original Revision: https://phabricator.services.mozilla.com/D299722
Comment 8•4 months ago
|
||
firefox-release Uplift Approval Request
- User impact if declined/Reason for urgency: sec-high
- Code covered by automated testing?: yes
- Fix verified in Nightly?: no
- Needs manual QE testing?: no
- Steps to reproduce for manual QE testing:
- Risk associated with taking this patch: low
- Explanation of risk level: Might break the backupUI or MigrationWizard functionality if it is used in a different process than we do on testing.
- String changes made/needed?: none
- Is Android affected?: no
| Assignee | ||
Comment 9•4 months ago
|
||
Original Revision: https://phabricator.services.mozilla.com/D299722
Comment 10•4 months ago
|
||
firefox-esr140 Uplift Approval Request
- User impact if declined/Reason for urgency: sec-high
- Code covered by automated testing?: yes
- Fix verified in Nightly?: no
- Needs manual QE testing?: no
- Steps to reproduce for manual QE testing:
- Risk associated with taking this patch: low
- Explanation of risk level: Might break the backupUI or MigrationWizard functionality if it is used in a different process than we do on testing.
- String changes made/needed?: none
- Is Android affected?: no
| Assignee | ||
Comment 11•4 months ago
|
||
This folds in the first patch from bug 2005849 which only shuffles code around.
Original Revision: https://phabricator.services.mozilla.com/D299722
| Assignee | ||
Comment 12•4 months ago
|
||
This folds in the first patch from bug 2005849 which only shuffles code around.
The BackupUI actor is not present in ESR115, so this only needs to fix
MigrationWizard.
Original Revision: https://phabricator.services.mozilla.com/D299722
Updated•4 months ago
|
Comment 13•4 months ago
|
||
firefox-esr115 Uplift Approval Request
- User impact if declined/Reason for urgency: sec-high
- Code covered by automated testing?: yes
- Fix verified in Nightly?: no
- Needs manual QE testing?: no
- Steps to reproduce for manual QE testing:
- Risk associated with taking this patch: low
- Explanation of risk level: Might break the backupUI or MigrationWizard functionality if it is used in a different process than we do on testing.
- String changes made/needed?: none
- Is Android affected?: no
Comment 14•4 months ago
|
||
Updated•4 months ago
|
Updated•4 months ago
|
Comment 15•4 months ago
|
||
| 150.0.3 uplift | ||
Updated•4 months ago
|
Updated•4 months ago
|
Comment 16•4 months ago
|
||
| uplift | ||
| Assignee | ||
Comment 17•4 months ago
|
||
I got an email from Lando saying "Lando: Landing of D299722 failed!" about half an hour ago, but as far as I can see it has landed on autoland successfully so I'm going to ignore that.
Comment 18•4 months ago
|
||
(In reply to Andrew McCreight [:mccr8] from comment #17)
I got an email from Lando saying "Lando: Landing of D299722 failed!" about half an hour ago, but as far as I can see it has landed on autoland successfully so I'm going to ignore that.
That's safe to ignore, it was pushed directly since autoland was closed
Comment 19•4 months ago
•
|
||
Yes, you can ignore it. The sheriffs manually landed it because autoland was closed... making the automatic request fail. I tried to cancel the request but that failed as well.
oops didnt see Donal's message. What he said!
Updated•4 months ago
|
Comment 20•4 months ago
|
||
Updated•4 months ago
|
Updated•4 months ago
|
Updated•4 months ago
|
Updated•4 months ago
|
Comment 21•4 months ago
|
||
| uplift | ||
Updated•4 months ago
|
Updated•4 months ago
|
Updated•4 months ago
|
Comment 22•4 months ago
|
||
| uplift | ||
Comment 23•4 months ago
|
||
Updated advisory.txt
Updated•4 months ago
|
Comment 25•4 months ago
|
||
| 140.10.3 uplift | ||
Updated•4 months ago
|
Comment 26•4 months ago
|
||
| 115.35.3 uplift | ||
Updated•4 months ago
|
Updated•4 months ago
|
Updated•4 months ago
|
Comment 27•3 months ago
|
||
This was the main "sandbox escape" fix and CVE for the pwn2own exploit, but we're going to move the bounty request to the reporter's own bug for clarity
Updated•16 days ago
|
Description
•