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

Issue 640227 link

Starred by 4 users

Issue metadata

Status: Duplicate
Merged: issue 47395
Owner: ----
Closed: Mar 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug-Security

Blocked on:
issue 880863



Sign in to add a comment

UI spoofing using large custom cursors

Reported by juhon...@gmail.com, Aug 23 2016

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36

Steps to reproduce the problem:
1. Navigate to http://lab.igi.tl/cursory-hack/index.html
2. Move the mouse around a bit
3. Click on the omnibox and start typing

What is the expected behavior?

What went wrong?
The location of the mouse cursor is spoofed and the user unwittingly clicks on the HTML document when intending to focus the omnibox. When the user starts typing, the omnibox content is spoofed by animating the canvas that is used as the cursor.

Custom cursors should not be allowed to escape the viewport.

Did this work before? N/A 

Chrome version: 52.0.2743.116  Channel: stable
OS Version: 10
Flash Version: 

The whole effect is demonstrated in the attached video clip just in case you're unable to repro it yourself. The hack is based on two previous publicly available examples:

http://benjaminbenben.com/cursory-hack/
https://jameshfisher.github.io/cursory-hack/

I wrote my own just to demonstrate that the "feature" can actually be used to do something quite nefarious. I also couldn't find any previous bug ticket referring to the techniques used in the original examples.
 
demo.mov
1.2 MB Download
Labels: Security_Severity-Low
Very unconvincing spoof, marking as low severity.
Components: Blink>DOM
Labels: Security_Impact-Stable
Components: -Blink>DOM Blink>Canvas
Owner: junov@chromium.org
Status: Assigned (was: Unconfirmed)
Junov@, can you please take a look.
This isn't really about Canvas, this is about custom CSS cursors, which are not limited to rendering all of their pixels within the untrusted viewport.

I put up a modified version of the original: https://whytls.com/cursor/ which more clearly shows how that one works. Note that it works well on Windows, but starts to fall apart when full-screened on Mac or when you've elected to show the "Home" button.

Prior bugs: 
https://bugs.chromium.org/p/chromium/issues/detail?id=47395
https://bugs.chromium.org/p/chromium/issues/detail?id=127783

As the "actual" hotspot leaves the HTML viewport, the cursor snaps back to the appropriate system default cursor. If we wanted to address this, we might consider changing our behavior when a CSS cursor is specified such that, as the cursor approaches the top of the browser, we switch over to the default cursor as soon as any pixel of the custom cursor (not just the actual hotspot pixel) exits the viewport.

Comment 5 by juhon...@gmail.com, Aug 26 2016

> we switch over to the default

Or "clip" the CSS cursor so that it doesn't overflow the viewport. If it's possible.

Comment 6 by junov@chromium.org, Oct 5 2016

Components: -Blink>Canvas Blink>CSS
re-triaging to component CSS

Comment 7 by vakh@chromium.org, Mar 6 2017

 Issue 698547  has been merged into this issue.

Comment 8 by junov@chromium.org, Mar 6 2017

Owner: ----
Status: Available (was: Assigned)
Cc: webdesig...@gmail.com
Adding reporter of duplicate issue.
Thanks for letting me view this elawre...(that's all I see as your username) I think the spoofing of the menu button is actually more worrying. Since you can trick the user into actually doing something directly malicous. IE downloading an 'update'. 
Also, I would like to write an article on this is that ok? 
Generally, we'd request that you postpone publication until a fix has been made. Having said that, this particular exploit is already public: https://news.ycombinator.com/item?id=12260444
Alright great. Not sure how I missed that post. It will be interesting what people think of the menu spoofing too. 


Mergedinto: 47395
Status: Duplicate (was: Available)
Project Member

Comment 15 by sheriffbot@chromium.org, Jun 17 2017

Labels: -Restrict-View-SecurityTeam allpublic
This bug has been closed for more than 14 weeks. Removing security view restrictions.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
I suggest this be given another round of consideration. To add another scenario, this page attempts to trick the user into thinking they've clicked on the lock-icon next to their address bar, when in fact they didn't:

https://jonathansampson.github.io/browser-tests/hacks/evil-cursor/
I came upon this issue when a family member shared with me a persistent-popup/fake-virus window while browsing Facebook. That page uses this method to make it difficult for the user to close the tab/window (due to the false-cursor's inability to click parts of the chrome).

Comment 18 by elawrence@chromium.org, Yesterday (39 hours ago)

Blockedon: 880863

Sign in to add a comment