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

Issue 716510 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: May 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 1
Type: Bug-Security



Sign in to add a comment

Use-after-poison in void blink::FrameView::forAllNonThrottledFrameViews<blink::FrameView::updateLife

Project Member Reported by ClusterFuzz, Apr 28 2017

Issue description

Detailed report: https://clusterfuzz.com/testcase?key=4635463068680192

Fuzzer: ochang_domfuzzer
Job Type: linux_asan_content_shell_drt
Platform Id: linux

Crash Type: Use-after-poison READ 8
Crash Address: 0x7ecc229aab10
Crash State:
  void blink::FrameView::forAllNonThrottledFrameViews<blink::FrameView::updateLife
  blink::FrameView::updateLifecyclePhasesInternal
  blink::WebAXObject::updateLayoutAndCheckValidity
  
Sanitizer: address (ASAN)

Recommended Security Severity: High

Regressed: https://clusterfuzz.com/revisions?job=linux_asan_content_shell_drt&range=434178:434255

Reproducer Testcase: https://clusterfuzz.com/download?testcase_id=4635463068680192


Issue filed automatically.

See https://dev.chromium.org/Home/chromium-security/bugs/reproducing-clusterfuzz-bugs for more information.
 

Comment 1 by palmer@chromium.org, Apr 28 2017

Cc: sigbjo...@opera.com japhet@chromium.org dcheng@chromium.org
Labels: M-58 OS-Android OS-Chrome OS-Mac OS-Windows Pri-1
Owner: wangxianzhu@chromium.org
Status: Assigned (was: Untriaged)
Owner: dmazz...@chromium.org
It's called from WebAXObject::UpdateLayoutAndCheckValidity(). dmazzoni@ can you take a look?

Comment 3 by palmer@chromium.org, Apr 28 2017

Components: Blink>Internals>Modularization Blink>Internals
Owner: skobes@chromium.org
I think the priority of this might be lower since it relies on a test_runner API: accessibilityController.addNotificationListener.

Here's the smallest repro I could create - make sure the relative path to js-test.js is updated.

<script src="../resources/js-test.js"></script>
<button style="height: 600px;">
<script>
window.jsTestIsAsync = true;
    window.scrollTo(0, 223);
    shouldBe("window.pageYOffset", "0");
    accessibilityController.addNotificationListener(function (target, notification) {
        shouldBe("window.pageYOffset", "500");
    });
</script>

The crash is happening when AccessibilityController::NotificationReceived calls WebAXObject::UpdateLayoutAndCheckValidity(), which calls FrameView::UpdateLifecycleToCompositingCleanPlusScrolling(), and the crash is happening here:

  ForAllNonThrottledFrameViews([](FrameView& frame_view) {
    frame_view.PerformScrollAnchoringAdjustments();
  });

AccessibilityController::NotificationReceived is happening inside of a timer callback, so it should be a safe place to update layout.

I think someone who understands scroll anchoring should take a look.

Project Member

Comment 5 by ClusterFuzz, May 12 2017

ClusterFuzz has detected this issue as fixed in range 471033:471049.

Detailed report: https://clusterfuzz.com/testcase?key=4635463068680192

Fuzzer: ochang_domfuzzer
Job Type: linux_asan_content_shell_drt
Platform Id: linux

Crash Type: Use-after-poison READ 8
Crash Address: 0x7ecc229aab10
Crash State:
  void blink::FrameView::forAllNonThrottledFrameViews<blink::FrameView::updateLife
  blink::FrameView::updateLifecyclePhasesInternal
  blink::WebAXObject::updateLayoutAndCheckValidity
  
Sanitizer: address (ASAN)

Recommended Security Severity: High

Regressed: https://clusterfuzz.com/revisions?job=linux_asan_content_shell_drt&range=434178:434255
Fixed: https://clusterfuzz.com/revisions?job=linux_asan_content_shell_drt&range=471033:471049

Reproducer Testcase: https://clusterfuzz.com/download?testcase_id=4635463068680192


See https://dev.chromium.org/Home/chromium-security/bugs/reproducing-clusterfuzz-bugs for more information.

If you suspect that the result above is incorrect, try re-doing that job on the test case report page.
Project Member

Comment 6 by ClusterFuzz, May 12 2017

Labels: ClusterFuzz-Verified
Status: Verified (was: Assigned)
ClusterFuzz testcase 4635463068680192 is verified as fixed, so closing issue.

If this is incorrect, please add ClusterFuzz-Wrong label and re-open the issue.
Project Member

Comment 7 by sheriffbot@chromium.org, May 12 2017

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

Comment 8 by sheriffbot@chromium.org, May 14 2017

Labels: Merge-Request-59
Project Member

Comment 9 by sheriffbot@chromium.org, May 15 2017

Labels: -Merge-Request-59 Hotlist-Merge-Approved Merge-Approved-59
Your change meets the bar and is auto-approved for M59. Please go ahead and merge the CL to branch 3071 manually. Please contact milestone owner if you have questions.
Owners: amineer@(Android), cmasso@(iOS), gkihumba@(ChromeOS), Abdul Syed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Please merge your change to M59 branch 3071 before 4:00 PM PT tomorrow, Tuesday (05/16 )so we can pick it for this week beta release. Thank you.
Project Member

Comment 11 by sheriffbot@chromium.org, May 18 2017

This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible!

If all merges have been completed, please remove any remaining Merge-Approved labels from this issue.

Thanks for your time! To disable nags, add the Disable-Nags label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 12 by sheriffbot@chromium.org, May 22 2017

This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible!

If all merges have been completed, please remove any remaining Merge-Approved labels from this issue.

Thanks for your time! To disable nags, add the Disable-Nags label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Cc: awhalley@chromium.org
+awhalley

awhalley@, since this is security-related, can you confirm if anything needs to be merged here for M59?
Labels: -Hotlist-Merge-Approved -M-58 -Merge-Approved-59 M-60
Labels: Release-0-M60
Project Member

Comment 16 by sheriffbot@chromium.org, Aug 18 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