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

Issue 704352 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Mar 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug-Security



Sign in to add a comment

Fix cross-origin security issue raised by PerformanceNavigationTiming.

Project Member Reported by sunjian@chromium.org, Mar 23 2017

Issue description

Fix cross-origin security issue raised by PerformanceNavigationTiming.

Currently, PerformanceNavigationTiming holds on to a LocalFrame directly.
A DocumentLoader will be extracted at runtime from this LocalFrame. During the
lifetime of a LocalFrame, multiple documents can get loaded and get attached
to the same frame, which causes old PNT instance to reference DocumentLoader
that could be created for new cross-origin document. Therefore, instead of
holding on to a LocalFrame, PNT should hold on to a Document instead.
 
Cc: japhet@chromium.org
Labels: Restrict-View-SecurityTeam

Comment 2 by japhet@chromium.org, Mar 27 2017

Labels: -Type-Bug -Pri-3 Pri-2 Type-Bug-Security

Comment 3 by awhalley@google.com, Mar 27 2017

Labels: Security_Impact-Head
Project Member

Comment 4 by bugdroid1@chromium.org, Mar 28 2017

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

commit 47b93d128610246960c032a00b67ec2083b2a05b
Author: sunjian <sunjian@chromium.org>
Date: Tue Mar 28 20:13:19 2017

Fix PerformanceNavigationTiming accessor behavior after document detach.

Currently, PerformanceNavigationTiming holds on to a LocalFrame directly.
A DocumentLoader will be extracted at runtime from this LocalFrame. During the
lifetime of a LocalFrame, multiple documents can get loaded and get attached
to the same frame, which causes old PNT instance to reference DocumentLoader
that could be created for new cross-origin document. Therefore, instead of
holding on to a LocalFrame, PNT should hold on to a Document instead.

The change in this patch also fixes the crash reported by clusterfuzz, which
is dereferencing a null pointer when PerformanceNavigationTiming::type gets called
after a Document gets replaced which causes its associated DocumentLoader to be null.

BUG= 704352 ,  703540 

Review-Url: https://codereview.chromium.org/2774543003
Cr-Commit-Position: refs/heads/master@{#460198}

[add] https://crrev.com/47b93d128610246960c032a00b67ec2083b2a05b/third_party/WebKit/LayoutTests/external/wpt/navigation-timing/nav2_test_document_replaced.html
[add] https://crrev.com/47b93d128610246960c032a00b67ec2083b2a05b/third_party/WebKit/LayoutTests/external/wpt/navigation-timing/nav2_test_frame_removed.html
[modify] https://crrev.com/47b93d128610246960c032a00b67ec2083b2a05b/third_party/WebKit/Source/core/timing/PerformanceNavigationTiming.cpp
[modify] https://crrev.com/47b93d128610246960c032a00b67ec2083b2a05b/third_party/WebKit/Source/core/timing/PerformanceNavigationTiming.h

Comment 5 by ta...@google.com, Mar 29 2017

Labels: Security_Severity-Medium OS-All
Project Member

Comment 6 by sheriffbot@chromium.org, Mar 29 2017

Labels: M-59
Project Member

Comment 7 by sheriffbot@chromium.org, Mar 29 2017

Labels: ReleaseBlock-Beta
This issue is a security regression. If you are not able to fix this quickly, please revert the change that introduced it.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Status: Fixed (was: Assigned)
Project Member

Comment 9 by sheriffbot@chromium.org, Mar 30 2017

Labels: -Restrict-View-SecurityTeam Restrict-View-SecurityNotify
Labels: -ReleaseBlock-Beta
Project Member

Comment 11 by sheriffbot@chromium.org, Jul 6 2017

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