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

Issue 703262 link

Starred by 2 users

Issue metadata

Status: WontFix
Owner:
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug-Security


Participants' hotlists:
EnamelAndFriendsFixIt


Sign in to add a comment

Security: Steal information using printing function (PDF/XPS)

Reported by red4...@gmail.com, Mar 20 2017

Issue description

VULNERABILITY DETAILS
It is possible to access information on an iframe tricking the user to print a web page.
Chrome does not verify if the iframe (with or without CORS) is under an image you are printing.
If the attacker gets the printed file would see the iframe content.

It is not possible to access the iframe with javascript or html2canvas screenshot (iframe does not show the content). But with this technique you can see the content and steal any private data.

VERSION
Chrome Version: 57.0.2987.110
Operating System: Windows 7 / Windows 10

REPRODUCTION CASE
Attached two videos to demonstrate the bug in PDF and XPS. Also the html files to reproduce.

PDF - https://drive.google.com/open?id=0B_W2YGegAT_fZmhjODJUXzkxbFk
XPS - https://drive.google.com/open?id=0B_W2YGegAT_feUlOckZHRF9kTGM

We would like to participate in Chrome Bug Bounty program. Please, do not hesitate to contact us if you need further information or if you have any question.
Kind regards,
R4S-TEAM.

 
exploit.zip
61.8 KB Download

Comment 1 by tsepez@chromium.org, Mar 20 2017

Labels: Security_Severity-Low Security_Impact-Stable
Owner: thestig@chromium.org
Status: Assigned (was: Unconfirmed)
The "If the attacker gets the printed file" is a big obstacle placing this within the realm of social engineering attacks, but it's interesting that the generated file contains the iframe content.

Comment 2 by tsepez@chromium.org, Mar 20 2017

Labels: M-59
thestig - Does this fall into the category of "working as intended"?  Have the reporters invented "printjacking?"

Comment 3 by tsepez@chromium.org, Mar 20 2017

Components: Internals>Printing
Labels: OS-All
If a site allows sensitive data to be framed in this way, doing a drag/drop clickjacking attack feels more compelling than this vector. This one seems more like  Issue 608669 , as yet another case where the user might be tricked into uploading something that contains private data.

Comment 5 by red4...@gmail.com, Mar 21 2017

We believe that the site is not to blame as it has CORS. In fact, Chrome blocks a screenshot why not this invisible iframe?

For example, a HTTP Redirect is a valid attack of phishing, even using social engineering, with this issue ocurrs the same.


We consider it a security issue, because it is a valid attack payload.
 
Re #5: I'm not sure what you mean when you say "blocks a screenshot"?

Nor do I understand what "A HTTP redirect is a valid attack of phishing" but unless that has anything to do with the issue at hand, we ought not discuss it here.

The question isn't really whether this is an "attack" (sure, it is) but rather whether it's practical for the browser to do anything to prevent the user from inadvertently releasing their own information in this scenario, and whether equivalent vectors broadly exist. For instance, a user could be enticed to Save a page containing foreign iframes to disk, then upload the resulting files to the server, unknowingly sending it "secret" data. Etc.

Comment 7 by red4...@gmail.com, Mar 21 2017

First of all, i love the term "printjacking"

When i say "blocks a screenshot" y try to say that:

Previous to this attack vector, i tried to do the same effect as printing, using html2canvas, (screen -> capture -> send to other server) and does not work, iframe are empty in screenshot capture by js (GOOD JOB!)

And respect to the last question, 

The malware evolves so quickly, and you have to get ahead. at the end, its the user who runs the browser, and you have to put it as easy as possible.

I think many people are not aware of the problem that might have printed an airline ticket or a gift voucher
Project Member

Comment 8 by sheriffbot@chromium.org, Mar 21 2017

Labels: Pri-2

Comment 9 by red4...@gmail.com, Mar 29 2017

Something new about this?
Cc: creis@chromium.org nasko@chromium.org
creis/nasko: Is this something that belong in the realm of OOPIF?
Cc: dcheng@chromium.org
I don't think OOPIF will help much here unless we explicitly design this to not happen. The whole point of printing is to actually produce a visual output of all content on the screen, regardless of origin. This is contrary to the exposed APIs, which the reporter already tried and failed, since they are origin restricted.

I agree with #6 that this is equivalent to save-page-as and uploading the result. Even if we could prevent the iframe from being printed, the save-page-as will be equivalent attack vector and there will be nothing we can do to solve it, as it is working as expected.

Am I missing something here?
I'm not really sure what the suggested defense is here. We're printing a document, so there's a reasonable expectation that even cross-origin subframes will be included as part of the print output.

Comment 13 by red4...@gmail.com, Apr 6 2017

I think a user is more accustomed to working with office documents than with html, in addition web page (by javascript) I doubt that I can invoke the "save as" html option. Print deception is completely feasible
Cc: nparker@chromium.org
Components: Services>Safebrowsing
Yes, but just printing the page isn't sufficient to leak the data back to the attacker.  (If it were, that would be a large concern.)  The user has to upload or otherwise send the printed output to the attacker, which is a fairly large mitigating factor.

The attack in the video is nicely polished and doesn't show what's being stolen even if the user opens the printed file, but I tend to agree with others here that it's not the browser's job to prevent the user from printing pages with cross-origin iframes (or from uploading files in general).

nparker@: Maybe there's some behaviors here SafeBrowsing could be on the lookout for to flag as phishing pages?
This is clever, but I think not likely to ever be practical for any mass credential stealing campaign, given the high friction. And I don't think there's much Safe Browsing can do here to detect it explicitly (looking for image-over-iframe in printed docs would likely be all FP's).


Comment 16 by red4...@gmail.com, Apr 7 2017

In firefox it is not reproducible and it's obvious that the print has to be about visible content. From our point of view, it is an issue that requires social engineering like any attack of phishing or xss (even).

We agree that it is fixed by setting a correct iframe directive. But then, what is xss auditor for? And the mixed content HTTP/HTTPS? Both measures shoudn't be implemented by the browser. They can be fixed if the web is programmed well in the same way? What distinguishes this case?

But if you don't consider it important, then we will proceed to make the disclosure to the community. Thank you so much for everything.
Labels: SafeBrowsing-Triaged
Project Member

Comment 18 by sheriffbot@chromium.org, Jul 26 2017

Labels: -M-59 M-60
Project Member

Comment 19 by sheriffbot@chromium.org, Sep 6 2017

Labels: -M-60 M-61
Project Member

Comment 20 by sheriffbot@chromium.org, Oct 18 2017

Labels: -M-61 M-62
Labels: Hotlist-EnamelAndFriendsFixIt
Project Member

Comment 22 by sheriffbot@chromium.org, Dec 7 2017

Labels: -M-62 M-63
Project Member

Comment 23 by sheriffbot@chromium.org, Jan 25 2018

Labels: -M-63 M-64
Components: -Services>Safebrowsing
Status: WontFix (was: Assigned)
Won't Fix, for the reasons described in #6 and #14.
Project Member

Comment 25 by sheriffbot@chromium.org, May 24 2018

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

Sign in to add a comment