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

Issue 851821 link

Starred by 8 users

Issue metadata

Status: Fixed
Owner:
Closed: Oct 11
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 2
Type: Bug-Security



Sign in to add a comment

Security: Chrome PDF reader has no restrictions/user confirmation on URI action

Reported by shenegam...@gmail.com, Jun 12 2018

Issue description

VULNERABILITY DETAILS
It's possible for PDF files to contain actions that can be triggered by different events and user interactions, one of the actions that work on Google chrome is the "URI action", The URI action allows you to create a hyperlink that can open web page in a web browser, this action makes web applications that provide the ability to users to upload PDF files such as Dropbox and Facebook vulnerable to Open Redirects ["https://www.owasp.org/index.php/Unvalidated_Redirects_and_Forwards_Cheat_Sheet"].

Other browsers FireFox and Edge does not trigger the URI action when viewing pdf file on them.

To clarify the issue, I uploaded a PDF file on dropbox contains an URI action 
When you click on the following link you will get redirected to evilzone.org "this will only work on Google Chrome"
https://www.dropbox.com/s/iqh491g0yqvpxep/sss.pdf?disable_range=1&from_native_print=1&preview=1

What happens is this: -
- Dropbox returns PDF file
- Google Chrome view the PDF file
- Google Chrome excutes the URI action 
- User get redirected to malicious URL


VERSION
Google Chrome Version: 67.0.3396.79 (Official Build) (64-bit)
Operating System: Windows 10

REPRODUCTION CASE

1- Open not pad
2- Past the following code

%PDF-1.7
trailer
<<
/Root 1 0 R
>>
1 0 obj
<<
/Type /Catalog
/Pages 2 0 R
/OpenAction 2 0 R
>>
endobj
 
2 0 obj
<<
/Type /Action
/S /URI
/URI (http://evilzone.org) // URL HERE
>>
endobj
 
%%EOF

3- Save the file as PDF
4- Upload the file 
5- Visit the file using the browser

attachments contain a PDF file you can edit it as you like.

Fix: -
Two solutions can be implemented 
1- Preventing URI action like in other browsers 
2- Show confirmation popup box to user before gets redirected

 
sss.pdf
214 bytes Download
Cc: tsepez@chromium.org
Components: Internals>Plugins>PDF
I believe this is functionally the same as  Issue 445758  although it doesn't rely on JavaScript.
Hi, 

I checked the previous report, I actually tested the ability to run JS through PDF file, there is no security risks since PDF file get executed in different origin and Google Chrome blocks any JS function that load content or redirect user to/from URL.

As you mentioned this doesn't rely on JS, it's just a redirection action that I believe it needs to be restricted/blocked. It creates an unexpected behavior that most of the developers doesn't aware of which leads to make their applications vulnerable to open redirects.   

Comment 3 by wfh@chromium.org, Jun 12 2018

Cc: -tsepez@chromium.org
Labels: Pri-2
Owner: tsepez@chromium.org
Status: Assigned (was: Unconfirmed)
hmm see

https://sites.google.com/site/bughunteruniversity/nonvuln/open-redirect

and

https://sites.google.com/site/bughunteruniversity/best-reports/openredirectsthatmatter

I'm not sure we care about open redirects, but perhaps tsepez can comment here?
Hi,

Yes Google security doesn't care about it in their web applications, but other companies do care. 
notice the above link describes that open redirects aren't acceptable if you found one in web application belongs to google, this report is about Google chrome and how it makes web applications vulnerable to Open Redirects.

Comment 5 by tsepez@chromium.org, Jun 13 2018

Labels: Security_Severity-Low Security_Impact-Stable
Owner: dsinclair@chromium.org
Status: (was: Assigned)
I suspect that if you allow uploads of active content, then the site has bigger problems, but we may want to close this anyways.
I don't think allowing PDF uploads on a web application is a problem or should raise security concerns, web developers shouldn't write their own PDF reader to prevent this behavior 
Status: Assigned
Hi,

any updates about this? :-) 

Thanks,
Labels: OS-Chrome OS-Linux OS-Mac OS-Windows
Owner: ----
Status: Untriaged (was: Assigned)
Setting PDF bugs assigned to me back to untriaged so they can get re-assigned as needed.
Cc: tsepez@chromium.org
Owner: hnakashima@chromium.org
Status: Assigned (was: Untriaged)
Hi shenegamy35,

Do we have permission to add the provided file to our test suite?
Hi,

Yes of course
Status: Started (was: Assigned)
Status: Fixed (was: Started)
Project Member

Comment 16 by sheriffbot@chromium.org, Sep 21

Labels: -Restrict-View-SecurityTeam Restrict-View-SecurityNotify
Labels: reward-topanel
Project Member

Comment 18 by bugdroid1@chromium.org, Sep 24

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6800720983c8b8a99ed7ee4cc227e6432b33f267

commit 6800720983c8b8a99ed7ee4cc227e6432b33f267
Author: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Date: Mon Sep 24 18:28:17 2018

Roll src/third_party/pdfium e65756725f82..97f4483de007 (14 commits)

https://pdfium.googlesource.com/pdfium.git/+log/e65756725f82..97f4483de007


git log e65756725f82..97f4483de007 --date=short --no-merges --format='%ad %ae %s'
2018-09-24 hnakashima@chromium.org Revert "Make potentially dangerous Actions require a user click."
2018-09-22 thestig@chromium.org Remove useless charset data in CFGAS_FontMgr.
2018-09-22 thestig@chromium.org Roll build/ f53effa79..dfca77bb0 (53 commits)
2018-09-22 thestig@chromium.org Move some CFGAS_FontMgr methods into an anonymous namespace.
2018-09-22 thestig@chromium.org Change CBC_QRCoderMatrixUtil::BuildMatrix() to return a bool.
2018-09-22 thestig@chromium.org Encapsulate CBC_QRCoderMatrixUtil code.
2018-09-22 thestig@chromium.org Remove CBC_CommonByteArray and CBC_QRCoderBlockPair.
2018-09-21 npm@chromium.org Cleanup in CCodec_FaxModule
2018-09-21 tsepez@chromium.org Replace CPDF_Color::Copy() with honest-to-goodness operator=().
2018-09-21 npm@chromium.org Make OutputIndex() a void method
2018-09-21 thestig@chromium.org Fix destruction order with CPDF_StreamAcc.
2018-09-21 thestig@chromium.org Remove unreachable code in CPDF_DIBBase.
2018-09-21 thestig@chromium.org Validate more image values in CPDF_DIBBase.
2018-09-20 hnakashima@chromium.org Make potentially dangerous Actions require a user click.


Created with:
  gclient setdep -r src/third_party/pdfium@97f4483de007

The AutoRoll server is located here: https://autoroll.skia.org/r/pdfium-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.



BUG= chromium:851821 , chromium:887626 , chromium:851821 
TBR=dsinclair@chromium.org

Change-Id: I1cfa2cae8e4f0aae0ca74f00ecfc7e8a8060efa9
Reviewed-on: https://chromium-review.googlesource.com/1240534
Reviewed-by: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#593606}
[modify] https://crrev.com/6800720983c8b8a99ed7ee4cc227e6432b33f267/DEPS

Status: Started (was: Fixed)
Reverted as it breaks a Chromium test that depended on OpenAction opening a URI. Will try to fix the test and reland.
Labels: -reward-topanel reward-unpaid reward-500
*** Boilerplate reminders! ***
Please do NOT publicly disclose details until a fix has been released to all our users. Early public disclosure may cancel the provisional reward. Also, please be considerate about disclosure when the bug affects a core library that may be used by other products. Please do NOT share this information with third parties who are not directly involved in fixing the bug. Doing so may cancel the provisional reward. Please be honest if you have already disclosed anything publicly or to third parties. Lastly, we understand that some of you are not interested in money. We offer the option to donate your reward to an eligible charity. If you prefer this option, let us know and we will also match your donation - subject to our discretion. Any rewards that are unclaimed after 12 months will be donated to a charity of our choosing.
*********************************
Thank you for the reward
Labels: M-71
Most welcome! A member of our finance team will be in touch to arrange payment.  Also, how would you like to be credited in our release notes?
Cc: awhalley@google.com

Comment 24 Deleted

Noted, thanks!
Labels: -reward-unpaid reward-inprocess
Project Member

Comment 27 by bugdroid1@chromium.org, Oct 2

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/33b9b0262029fea75c436229f9bdfe74b1937ad2

commit 33b9b0262029fea75c436229f9bdfe74b1937ad2
Author: Henrique Nakashima <hnakashima@chromium.org>
Date: Tue Oct 02 22:29:10 2018

Change TemporaryAddressSpoof test to not depend on PDF OpenActions.

OpenActions that navigate to URIs are going to be blocked when
https://pdfium-review.googlesource.com/c/pdfium/+/42731 relands.
It was reverted because this test was breaking and blocking the
pdfium roll into chromium.

The test will now click on a link in the PDF that navigates to the
URI.

Bug:  851821 
Change-Id: I49853e99de7b989858b1962ad4a92a4168d4c2db
Reviewed-on: https://chromium-review.googlesource.com/c/1244367
Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Reviewed-by: Charlie Reis <creis@chromium.org>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#596011}
[modify] https://crrev.com/33b9b0262029fea75c436229f9bdfe74b1937ad2/chrome/browser/extensions/api/tabs/tabs_test.cc
[modify] https://crrev.com/33b9b0262029fea75c436229f9bdfe74b1937ad2/chrome/test/data/extensions/api_test/tabs/pdf_extension_test.html

Project Member

Comment 28 by bugdroid1@chromium.org, Oct 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/07e0c65c7b6b076fb2c3baefe19ef7451db9071f

commit 07e0c65c7b6b076fb2c3baefe19ef7451db9071f
Author: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Date: Wed Oct 03 21:31:09 2018

Roll src/third_party/pdfium f9e0498bb1ce..2ff6cd661c02 (5 commits)

https://pdfium.googlesource.com/pdfium.git/+log/f9e0498bb1ce..2ff6cd661c02


git log f9e0498bb1ce..2ff6cd661c02 --date=short --no-merges --format='%ad %ae %s'
2018-10-03 tsepez@chromium.org Make CCodec_ProgressiveDecoder::ReadMoreData() slightly saner
2018-10-03 hnakashima@chromium.org Reland "Make potentially dangerous Actions require a user click."
2018-10-03 thestig@chromium.org Fix nits in CFX_FontSourceEnum_File.
2018-10-03 thestig@chromium.org Split CFX_FontSourceEnum_File into its own file.
2018-10-03 thestig@chromium.org Add FxFolderHandleCloser for use with std::unique_ptr.


Created with:
  gclient setdep -r src/third_party/pdfium@2ff6cd661c02

The AutoRoll server is located here: https://autoroll.skia.org/r/pdfium-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.



BUG= chromium:851821 
TBR=dsinclair@chromium.org

Change-Id: Id2e46631c3c86f62a70337eaf11dfe7e06ff6a8a
Reviewed-on: https://chromium-review.googlesource.com/c/1259491
Reviewed-by: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#596374}
[modify] https://crrev.com/07e0c65c7b6b076fb2c3baefe19ef7451db9071f/DEPS

Status: Fixed (was: Started)
Relanded some days ago, marking as fixed again.
Glad to know that :-) 

Thanks, 
Cc: thestig@chromium.org creis@chromium.org alex...@chromium.org nasko@chromium.org hnakashima@chromium.org
 Issue 852716  has been merged into this issue.
Cc: vincentr...@gmail.com
Issue 904643 has been merged into this issue.
Issue 905944 has been merged into this issue.
Issue 905945 has been merged into this issue.
Issue 905550 has been merged into this issue.
Labels: Release-0-M71
Labels: CVE-2018-20065 CVE_description-missing
is it okay to public disclosure this? 
Re #39 - would you mind waiting a week? That will allow M71 rollout to hit 100%.
Yes sure
Labels: -CVE_description-missing CVE_description-submitted
Project Member

Comment 43 by sheriffbot@chromium.org, Jan 18 (4 days ago)

Labels: -Restrict-View-SecurityNotify 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