New issue
Advanced search Search tips

Issue 677013 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: May 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , All , Mac
Pri: 2
Type: Bug
Team-Accessibility



Sign in to add a comment

Heap-use-after-free in blink::PaintLayerScrollableArea::updateScrollOffset

Project Member Reported by ClusterFuzz, Dec 26 2016

Issue description

Detailed report: https://cluster-fuzz.appspot.com/testcase?key=4802767312125952

Fuzzer: inferno_twister
Job Type: mac_asan_content_shell
Platform Id: mac

Crash Type: Heap-use-after-free READ 8
Crash Address: 0x60f000017cf0
Crash State:
  blink::PaintLayerScrollableArea::updateScrollOffset
  blink::ScrollableArea::scrollOffsetChanged
  blink::ScrollableArea::setScrollOffset
  
Recommended Security Severity: High

Regressed: https://cluster-fuzz.appspot.com/revisions?job=mac_asan_content_shell&range=431234:431241

Minimized Testcase (0.84 Kb): https://cluster-fuzz.appspot.com/download/AMIfv94rlziSinnfBLRAKMrujKgg9rUUZX8F5eltIWLRXmhvSD-VFPGBMTCfOoBibDq4t7mnNDgurzFdDSL3QJK_wN1Xu2hTGk0yzr7zu1zf4KfKu7qF4q8qQXxZYq9LzR4B3g3Aod5zUqah7DO8Z-uuBBLt1fFh3w?testcase_id=4802767312125952

Issue filed automatically.

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

Comment 1 by sheriffbot@chromium.org, Dec 26 2016

Labels: M-57
Project Member

Comment 2 by sheriffbot@chromium.org, Dec 26 2016

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
Project Member

Comment 3 by sheriffbot@chromium.org, Dec 26 2016

Labels: Pri-1
Cc: e...@chromium.org
Components: Blink>Layout>Scrollbars Blink>Layout Blink>Scroll
Owner: cbiesin...@chromium.org
Status: Assigned (was: Untriaged)
Hi Christian, Emil,

Could one of you please help triage this use-after-free security bug?!  It's not obvious what change has triggered this scenario.  Clusterfuzz is suspicious of an opera CL, but it doesn't look promising to me.  (https://chromium.googlesource.com/chromium/src/+/c5de692783f306d25186d46039f8541c9c4ebbe0)

Looks like the LayoutBox object has had a layer destroyed (blink::PaintLayer::removeOnlyThisLayerAfterStyleChange()), which is then being accessed later when there's a scroll event and repaint.  Check out the thread stack that freed that memory address in the detailed report.

Any help finding an appropriate owner would be appreciated.
Thanks!
Project Member

Comment 5 by sheriffbot@chromium.org, Dec 27 2016

Labels: M-57
Project Member

Comment 6 by sheriffbot@chromium.org, Jan 9 2017

cbiesinger: Uh oh! This issue still open and hasn't been updated in the last 14 days. This is a serious vulnerability, and we want to ensure that there's progress. Could you please leave an update with the current status and any potential blockers?

If you're not the right owner for this issue, could you please remove yourself as soon as possible or help us find the right one?

If the issue is fixed or you can't reproduce it, please close the bug. If you've started working on a fix, please set the status to Started.

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

Comment 7 by e...@chromium.org, Jan 17 2017

Owner: szager@chromium.org
Clusterfuzz fails to find a regression range, sigh. Any chance you could look into this szager?

Comment 8 by gov...@chromium.org, Jan 23 2017


A friendly reminder that M57 Beta launch is coming soon on February 2nd! Your bug is labelled as Beta ReleaseBlock, pls make sure to land the fix and get it merged into the release branch (2987) ASAP so it gets enough baking time in Dev (before Beta promotion). Thank you!
Project Member

Comment 9 by sheriffbot@chromium.org, Jan 23 2017

szager: Uh oh! This issue still open and hasn't been updated in the last 28 days. This is a serious vulnerability, and we want to ensure that there's progress. Could you please leave an update with the current status and any potential blockers?

If you're not the right owner for this issue, could you please remove yourself as soon as possible or help us find the right one?

If the issue is fixed or you can't reproduce it, please close the bug. If you've started working on a fix, please set the status to Started.

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
[Bulk edit]

A friendly reminder that M57 Beta launch is coming soon on February 2nd (in a week)! Your bug is labelled as Beta ReleaseBlock, pls make sure to land the fix and get it merged into the release branch (2987) ASAP so it gets enough baking time in Dev (before Beta promotion). Thank you!
Project Member

Comment 11 by sheriffbot@chromium.org, Jan 26 2017

Labels: -Security_Impact-Head Security_Impact-Beta
Labels: -ReleaseBlock-Beta -Security_Impact-Beta ReleaseBlock-Stable Security_Impact-Stable
A friendly reminder that M57 Stable is launch is coming soon! Your bug is labelled as Stable ReleaseBlock, pls make sure to land the fix and get it merged into the release branch ASAP so it gets enough baking time in Beta (before Stable promotion). Thank you!

Hi szager@ - are you best placed to look at this?  If not please re-assign.
I haven't been able to root cause this, I'm still looking.

It's worth pointing out that the test relies on a testing API ('accessibilityController') which is only available when running content_shell with the --run-layout-test flag.  So this wouldn't affect users.  It's an open question whether it's possible to trigger the same crash without using accessibilityController; I have not been able to do so.

So, this crash should definitely be fixed, but it's not at all clear that it affects chrome.
Cc: chrishtr@chromium.org skobes@chromium.org
Cc: pdr@chromium.org
Components: -Blink>Layout>Scrollbars -Blink>Layout -Blink>Scroll UI>Accessibility
Labels: -Type-Bug-Security -Pri-1 -Restrict-View-SecurityTeam -Security_Impact-Stable -Security_Severity-High -ReleaseBlock-Stable -OS-Mac -M-57 OS-All Pri-2 Type-Bug
Owner: dmazz...@chromium.org
OK, I found root cause:

components/test_runner/accessibility_controller.cc runs accessibility callbacks synchronously from NotificationReceived (unlike the non-test code, which correctly uses PostTask).  Since accessibility notifications can be dispatched synchronously during layout, this is a big no-no.

Lowering priority and removing blocker labels, since this only affects test code.

Reassigning to dmazzoni@ for accessibility triage.
Project Member

Comment 19 by ClusterFuzz, Mar 16 2017

Labels: OS-Mac
Labels: NewComponent-Accessibility-Internals NewComponent-Accessibility
Project Member

Comment 21 by ClusterFuzz, Mar 29 2017

Labels: OS-Linux
Components: Internals>Accessibility
Components: -UI>Accessibility
Labels: -newcomponent-accessibility-internals -newcomponent-accessibility
Project Member

Comment 24 by ClusterFuzz, May 22 2017

ClusterFuzz has detected this issue as fixed in range 472963:472976.

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

Fuzzer: inferno_twister
Job Type: mac_asan_content_shell
Platform Id: mac

Crash Type: Heap-use-after-free READ 8
Crash Address: 0x60f000017cf0
Crash State:
  blink::PaintLayerScrollableArea::updateScrollOffset
  blink::ScrollableArea::scrollOffsetChanged
  blink::ScrollableArea::setScrollOffset
  
Sanitizer: address (ASAN)

Recommended Security Severity: High

Regressed: https://clusterfuzz.com/revisions?job=mac_asan_content_shell&range=352118:352226
Fixed: https://clusterfuzz.com/revisions?job=mac_asan_content_shell&range=472963:472976

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


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 25 by ClusterFuzz, May 22 2017

ClusterFuzz has detected this issue as fixed in range 472963:472976.

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

Fuzzer: inferno_twister
Job Type: mac_asan_content_shell
Platform Id: mac

Crash Type: Heap-use-after-free READ 8
Crash Address: 0x60f000017cf0
Crash State:
  blink::PaintLayerScrollableArea::updateScrollOffset
  blink::ScrollableArea::scrollOffsetChanged
  blink::ScrollableArea::setScrollOffset
  
Sanitizer: address (ASAN)

Recommended Security Severity: High

Regressed: https://clusterfuzz.com/revisions?job=mac_asan_content_shell&range=352118:352226
Fixed: https://clusterfuzz.com/revisions?job=mac_asan_content_shell&range=472963:472976

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


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 26 by ClusterFuzz, May 22 2017

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

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

Sign in to add a comment