Closed Bug 1721107 (CVE-2021-38492) Opened 3 years ago Closed 3 years ago

Use of mk:@MSITStore: URI from Firefox can run JavaScript in IE with res: URI

Categories

(Core :: Networking, defect)

defect

Tracking

()

VERIFIED FIXED
93 Branch
Tracking Status
firefox-esr78 92+ verified
firefox-esr91 92+ verified
firefox91 --- wontfix
firefox92 + verified
firefox93 + verified

People

(Reporter: proof131072, Assigned: Gijs)

References

Details

(Keywords: sec-moderate, sec-vector, Whiteboard: [reporter-external] [client-bounty-form] [adv-main92+][adv-esr78.14+][adv-esr91.1+])

Attachments

(2 files)

We are able to reproduce bug id 1549833 and 1552627 (https://bugzilla.mozilla.org/show_bug.cgi?id=1552627) using mk:@MSITStore: URI.

  1. We can run Internet Explorer from chrome, which allows us to run JavaScript at renderer process privilege (Low or AppContainer IL, depending on user's IE11 EPM Sandbox setting).

https://pwning.click/ffscheme.php

  1. Elevation of Privilege- from AppContainer or Low Integrity Level to Medium IL JavaScript execution

https://pwning.click/ffscheme2.php

  1. Other bugs- Security Feature bypass such as running VBScript at Medium Integrity Level, which should be not possible from Internet Zone IE11 : this is possible because IE let attackers reading OS username (Test on https://pwning.click/osuname.php) which allows running downloaded file from the Website after the browser crashes and reopens (the downloaded .html file will open automatically after the crash, which runs Medium IL VBScript).

Reading/running local files and more

https://pwning.click/ffscheme3.php

Fix- Filter mk:@MSITStore: URI

Flags: sec-bounty?
Flags: needinfo?(dveditz)

This is really a MS bug at heart -- when we've talked to them about this they have insisted that if there's a published URL handler then it's intended to be safe. But IE is out of support so it would be good to be able to prevent launching it.

Flags: needinfo?(dveditz)

Chrome originally wontfixed this a while back in crbug 1009268 but then this week came around and fixed it in crbug 1223290 with this patch: https://chromium.googlesource.com/chromium/src/+/5576e533a0da56df93242e2b361a306df2b6c1ec

Reviewed by Eric Lawrence who had earlier said https://bugs.chromium.org/p/chromium/issues/detail?id=1009268#c13, so I trust that we need to also block it.

Group: firefox-core-security → network-core-security
Type: task → defect
Component: Security → Networking
Product: Firefox → Core
Assignee: nobody → gijskruitbosch+bugs
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true

Comment on attachment 9237198 [details]
Bug 1721107 - block mk protocol, r?dveditz

Beta/Release Uplift Approval Request

  • User impact if declined: Security risk
  • Is this code covered by automated tests?: No
  • Has the fix been verified in Nightly?: No
  • Needs manual test from QE?: Yes
  • If yes, steps to reproduce: Try links from comment 0; IE should not open and no dialog should pop up offering to do so.
  • List of other uplifts needed: n/a
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): Simple pref change
  • String changes made/needed: None
Attachment #9237198 - Flags: approval-mozilla-beta?
Flags: qe-verify+

Comment on attachment 9237198 [details]
Bug 1721107 - block mk protocol, r?dveditz

ESR Uplift Approval Request

  • If this is not a sec:{high,crit} bug, please state case for ESR consideration: See beta approval request for details
  • User impact if declined:
  • Fix Landed on Version: 93
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky):
  • String or UUID changes made by this patch:
Attachment #9237198 - Flags: approval-mozilla-esr91?

Because this is effectively a trivial pref set we can push something out with Normandy to release, if desired. Dan, I'm out until Tuesday the 31st, pinging you with this idea in case you think we need to do that and get a fix out before the 92 release (I'm optimistically assuming this will get beta approval).

Flags: needinfo?(dveditz)
Group: network-core-security → core-security-release
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 93 Branch

Is there any reason we wouldn't want this on ESR78 also?

Comment on attachment 9237198 [details]
Bug 1721107 - block mk protocol, r?dveditz

Approved for 92.0b7 and 91.1esr. Will approve for 78.14esr pending confirmation.

Attachment #9237198 - Flags: approval-mozilla-esr91?
Attachment #9237198 - Flags: approval-mozilla-esr91+
Attachment #9237198 - Flags: approval-mozilla-beta?
Attachment #9237198 - Flags: approval-mozilla-beta+
QA Whiteboard: [qa-triaged]

Reproduced the issue using affected build (91.0 RC), verified that the links from comment 0 IE does not open and no dialog popes up when loading them on latest Beta 92, Nightly 93 and ESR 91 builds (Windows 10 and Windows 7). Leaving qe-verify+ for 78.14esr pending confirmation.

Because this is effectively a trivial pref set we can push something out with Normandy to release, if desired.

Moot point now since this already landed on branches, but we didn't need to worry about jumping through Normandy hoops for this. I would've waited a little longer before landing on branches but I guess RC1 builds are coming up fast anyway.

No reason not to land on ESR-78 too since we still support it for another couple of months. People will ask if we don't.

Flags: needinfo?(dveditz)

Comment on attachment 9237198 [details]
Bug 1721107 - block mk protocol, r?dveditz

Approved for 78.14esr.

Attachment #9237198 - Flags: approval-mozilla-esr78+
Flags: sec-bounty? → sec-bounty+

(In reply to Bogdan Maris [:bogdan_maris], Release Desktop QA from comment #11)

Reproduced the issue using affected build (91.0 RC), verified that the links from comment 0 IE does not open and no dialog popes up when loading them on latest Beta 92, Nightly 93 and ESR 91 builds (Windows 10 and Windows 7). Leaving qe-verify+ for 78.14esr pending confirmation.

Also verified fixed using latest 78esr build from treeherder on Windows 10 and 7.

Status: RESOLVED → VERIFIED
QA Whiteboard: [qa-triaged]
Flags: qe-verify+
Whiteboard: [reporter-external] [client-bounty-form] [verif?] → [reporter-external] [client-bounty-form] [adv-main92+]
Whiteboard: [reporter-external] [client-bounty-form] [adv-main92+] → [reporter-external] [client-bounty-form] [adv-main92+][adv-esr78.14+]
Whiteboard: [reporter-external] [client-bounty-form] [adv-main92+][adv-esr78.14+] → [reporter-external] [client-bounty-form] [adv-main92+][adv-esr78.14+][adv-esr91.0.1+]
Attached file advisory.txt
Whiteboard: [reporter-external] [client-bounty-form] [adv-main92+][adv-esr78.14+][adv-esr91.0.1+] → [reporter-external] [client-bounty-form] [adv-main92+][adv-esr78.14+][adv-esr91.1+]
Alias: CVE-2021-38492
Group: core-security-release
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: