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

Issue 636974 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug

Blocked on:
issue 63773



Sign in to add a comment

Security: Trick victims into opening downloaded file with a badger (UI clickjack)

Reported by greencar...@hotmail.com, Aug 11 2016

Issue description

VULNERABILITY DETAILS
I noticed that chrome automatically downloads some executable, was wondering if I could make it so that a potential victim would be tricked into opening an executable that was instantly downloaded.

Turns out that if we supply a data URI that is relatively fast to load, we could trick users with a simple 'game' into opening an executable.

As it stands I could not fully execute the file in my windows because of the built in windows smartscreen but in a world where certificates are exposed to be stolen left and right, This could be used to trick chrome users into opening any file.

Let's say im being too gullible. Its still possible to have a user open any other file. Lets say that Adobe PDF gets another zero day (they come a dime a dozen these days) but this exploit doesnt work on chromes built in PDF reader but Adobes reader. This will give an attacker the perfect way of delivering an attack.

I suggest you have the downloaded files (especially if executable) to wait a good 5 seconds before being able to be opened directly.

REPRODUCTION CASE
PoC has been attached


 
form.html
553 bytes View Download

Comment 1 by och...@chromium.org, Aug 11 2016

Status: WontFix (was: Unconfirmed)
Unfortunately, there's little Chrome can do here to prevent elaborate social engineering. 
Labels: -Restrict-View-SecurityTeam
On top of that, these downloads should still be going through the Safe Browsing service.
I didn't realize chrome had data uris go through the safe browsing service, In my testing I did not get any messages from chrome blocking the .bat file.

Could you help me in triggering this feature so I can see if its possible to bypass?
Components: Services>Safebrowsing>VRP
Sure. There are instructions at https://www.google.com/about/appsecurity/chrome-rewards/ (ctrl+f for download protection bypass).

Adding the Safebrowsing VRP component in case anyone more familiar with it wants to chime in. I didn't specifically test this case to see if we were getting a ping, but I believe it's handled.
Thank you.

Yes I can confirm a ping was sent to the server (following instructions)
But cant this be circumvented by adding padding to the data uri? 


Comment 6 by mea...@chromium.org, Aug 11 2016

Cc: jialiul@chromium.org
+jialiul who might be interested in download by data: URL aspect

Comment 7 by mea...@chromium.org, Aug 11 2016

Cc: asanka@chromium.org
This is also directly related to  bug 629637 : .bat files should display a "mark of the web" confirmation before running.

Comment 8 by mea...@chromium.org, Aug 11 2016

And another relevant bug: bug 63773

There is a bunch of bugs where the UI blindly accepts input without checking if it's possible for a human to acknowledge the contents of the dialog. It would be great if we could add some heuristics to all these UI surfaces to prevent this sort of clickjacking.
Agree with #7, mark of the web might be missing, though safe browsing did its job as long as:
(1) user enables safe browsing service on chrome
(2) bat file does not come from whitelisted domains or on private network or hosted as local file  (this is for privacy consideration). 

In your case, I guess safe browsing did not find any known badness in the bat file or you tested locally. 
To verify if safe browsing is kicked in:  goto chrome://histograms, look for "SBClientDownload.CheckDownloadStats"  and see if counter increases.

Blockedon: 63773
Labels: OS-All
Status: Available (was: WontFix)
Reopening this bug and blocking it on bug 63773. There are things we can do to prevent this sort of social engineering that relies on how and where Chrome displays UI surfaces.
Components: Security>UX
Labels: -Type-Bug-Security Type-Bug

Comment 12 by vakh@chromium.org, Aug 26 2016

Components: -Services>Safebrowsing>VRP
Not applicable for VRP since the ping is sent (as per #5).
Labels: Pri-3
Setting priority (low, unfortunately, as I don't think anyone is actively working on this right now).
Components: -Security>UX UI>Browser>SafeBrowsing
Labels: Team-Security-UX

Comment 15 by vakh@chromium.org, Dec 2 2016

SafeBrowsing seems to be working as intended. Perhaps we can remove the SafeBrowsing component from this issue?
Components: -UI>Browser>SafeBrowsing UI>Browser>Downloads
Summary: Security: Tricking potential victims into opening downloaded executable file with a badger (UI clickjack). (was: Security: Tricking potential victims into opening downloaded executable file with a badger.)
Yeah, this isn't a SafeBrowsing issue at all, it's a clickjacking attack against Chrome's native UI.

The malicious site has to evade both SafeBrowsing and the OS' built-in checks for downloaded files in order for the dropped file to run.

To fix, we could consider a variety of approaches, including, as suggested in #1, a visibility timer. (Firefox does this for security surfaces like the download dialog).
Summary: Security: Trick victims into opening downloaded file with a badger (UI clickjack) (was: Security: Tricking potential victims into opening downloaded executable file with a badger (UI clickjack).)

Comment 18 by meacer@google.com, Jul 16 2017

Labels: Security_Impact-Stable Security_Severity-Low
Let's treat this as a security bug. Downloads UI should really not be clickjackable.
Labels: Hotlist-EnamelAndFriendsFixIt
Labels: -Hotlist-EnamelAndFriendsFixIt
Cc: qin...@chromium.org
Owner: shaktisahu@chromium.org
I think it's reasonable to add a small delay to the UI before accepting user interaction.  We can add it specifically to the download UI.  Is there another bug tracking adding this to all browser-related UI?

shaktisahu@ can you take a look when you get a chance?
Status: Assigned (was: Available)

Sign in to add a comment