New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 849355 link

Starred by 1 user

Issue metadata

Status: Archived
Owner:
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: 2018-06-18
OS: Linux , Windows , Chrome , Mac , Fuchsia
Pri: 1
Type: Bug-Security



Sign in to add a comment

Clickjacking on the inline extension installation dialog

Reported by luan.her...@hotmail.com, Jun 4 2018

Issue description

VULNERABILITY DETAILS
The inline extension installation dialog is vulnerable to clickjacking, making it possible to trick a victim into installing a Chrome Extension without their knowledge.

Chrome has a mitigation in place that turns the "Add Extension" button non-clickable for a few seconds after the dialog opens. We can bypass it by opening a popup above the dialog and asking the user to double-click into a specific place. On the first click we close the popup and on the second click the person will end up clicking on the "Add Extension" button.

I think a possible fix would be to turn the "Add Extension" button non-clickable for a few seconds every time the dialog/page loses focus, not only when it's first opened.

I also used the beforeunload dialog to make the attack stealthier, because when called, it dismisses the message informing the user an extension was successfully installed.

VERSION
Version 67.0.3396.62 (Official Build) (64-bit)
Version 68.0.3438.3 (Official Build) dev (64-bit)

REPRODUCTION CASE
1. Download index.html
2. Change the extension id on the link tag to one that you own.
3. Host under the domain that has been configured to perform inline installation.
4. Open index.html and click on the link.
5. Double-click on the ">>" button a few times to display the next image in the gallery.

Here is a video simulating the attack:
https://www.youtube.com/watch?v=KOJ6r2sbfAM

*The popup will probably be misaligned because I created the PoC only having my screen resolution in mind.
 
index.html
854 bytes View Download
Components: Platform>Extensions
Labels: OS-Chrome OS-Fuchsia OS-Linux OS-Mac OS-Windows
Owner: rdevlin....@chromium.org
Status: Assigned (was: Unconfirmed)
Devlin: Mostly a duplicate of bug 394518, but handing over to you to decide about delaying for the first time vs every time.
I thought bug 394518 had already been fixed given I reported  bug 544573  (which was marked as duplicate) and later on the delay was added and my duplicate made public.
Despite the allpublic label,  bug 544573  isn't public yet because of the Restrict-View-SecurityTeam. Is that what you meant?
Yeah, sorry. Got confused by it.
No problem. Not sure why we allpublic was added in the first place to that bug.
Labels: Team-Security-UX Security_Impact-Stable
Labels: M-68
Why is issue 394518 Low severity? Being able to trick people into installing extensions is quite bad?
Cc: ackermanb@chromium.org

Comment 9 by wfh@chromium.org, Jun 14 2018

Labels: Needs-Feedback
https://codereview.chromium.org/2716353003 landed and is in 59.0.3064.0 onwards, so can you re-test on dev channel and tell us whether you think this 500ms is enough mitigation?
#9 - I tested on 69.0.3461.0 and still was able to reproduce the attack described in #0. It seems the delay is only being applied once (when the inline dialog is invoked) instead of being applied every time the dialog loses and regains focus.

Comment 11 by wfh@chromium.org, Jun 14 2018

Labels: Security_Severity-Medium
Cc: palmer@chromium.org mea...@chromium.org wfh@chromium.org
Correct - the delay only applies on first instance.

That said, the idea that our security and privacy dialogs should react to refocusing, resurfacing, etc was reported back in 2010 (7.5 years ago) in issue 63773 (which is fully public).  I'm not sure this describes anything different than the combination of that and issue 394518.

Additionally, inline installation is now publicly deprecated [1].

I'm not sure there's much to do here that isn't described in existing bugs (with the remaining work primarily dupe-able into issue 63773).

wfh@, meacer@, palmer@: any objections to duping into that issue?

[1] https://blog.chromium.org/2018/06/improving-extension-transparency-for.html
NextAction: 2018-06-18
#12 wasn't directed at me but I want to share things from my perspective:

Around July 2014, bug 394518 was filled about the possibility of clickjacking on the inline extension dialog. On Oct 18 2015, I filled  bug 544573  about the same issue, in which meacer@ duped into bug 394518 and said he would propose a fix to it.

On Apr 05 2017, 1 year and 5 months after my report being duped, a fix was merged that added a delay only on the first instance of the dialog.

On Jun 04 2018 (1 year and 2 months after the fix), I noticed that the delay was added, but that it was still possible to perform clickjacking using a popup and then decided to submit this bug.

So my question is:
Would you have added the delay every time the dialog loses and regains focus if I hadn't reported this issue? If so, why wasn't that done when the first fix was implemented?

It seems a bit unfair to me to leave a catch-all report from years back open, which isn't being actively looked over and has no prospect of being resolved, and then go around fixing concrete security issues relating to that only when an external reporter outlines a specific case of attack.

What do you guys think?
Project Member

Comment 15 by sheriffbot@chromium.org, Jun 15 2018

Labels: Pri-1
The NextAction date has arrived: 2018-06-18
A few clarifications:

> Would you have added the delay every time the dialog loses and regains focus if I hadn't reported this issue? If so, why wasn't that done when the first fix was implemented?

We have not added any such mechanism, and, to be clear, my recommendation here is that we not do so in an ad-hoc manner for the inline install dialog (given inline install is deprecated).  Additionally, the origin bug from 2010 outlined this exact approach:

> * Disable download items' buttons for the first one second of their existence
> * Disable download items' buttons for the first one second after the hosting Chrome window regains focus
> * Modify the second item above to only occur if the window losing focus was a Chrome window, and only for buttons at least partly overlapped by that Chrome window

(Note that the original report there was just for download items, but was later applied to all security/privacy related UI.)

I think that we *should* fix this for all security/privacy dialogs, even though the inline installation one won't be the driving force since it's going away soon.

> It seems a bit unfair to me to leave a catch-all report from years back open, which isn't being actively looked over and has no prospect of being resolved, and then go around fixing concrete security issues relating to that only when an external reporter outlines a specific case of attack.

I can empathize with this.  On the other hand, issue 63773 has been filed and public for eight years, and describes a lot of the concerns here.  Given the exploit pattern is almost identical for any dialog (i.e., you could take your PoC and just trigger a different dialog) and we already have a meta bug filed to track the issue, I don't think it's beneficial to file different bugs for each potential dialog (especially since when we fix this, it should be a change to the dialog code, rather than any specific dialog).  I think the biggest thing is that we really should prioritize fixing issue 63773, fixing all the dialogs in a comprehensive way.

meacer@, do you think you'll have the cycles to be able to work on this soon?  If not, should we see if we can wrangle someone else to dive into it?

Comment 18 by meacer@google.com, Jun 21 2018

There is now more interest in adding delays to sensitive dialogs in general (dialogs etc), so I might look at it in Q3, but can't make any promises. There is a chance that the cost of fixing all dialogs (i.e. issue 63773) might outweigh its benefits.
Status: Archived (was: Assigned)
We discussed this internally, and agreed that we're going to close this bug out, due to the prior bugs filed at issue 394518 and issue 63773.
Hi, I would like to know if you are ok with me talking publicly about this issue given bug 63773 and  bug 544573  are already public, and also if this bug could be made public.

Thanks!
I personally have no objections (given the other issues are), but I'd like to know what meacer@ thinks.  Please wait for him to chime in.
It saddens me that we don't have much to show for bug 63773 yet, but I don't have any objections either.
Cc: pkasting@chromium.org
Hi, can someone remove the Restrict-View-SecurityTeam label? Thanks!
Cc: awhalley@chromium.org
+awhalley for #24
Labels: -Restrict-View-SecurityTeam allpublic

Sign in to add a comment