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

Issue 675109 link

Starred by 1 user

Issue metadata

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



Sign in to add a comment

Heap-use-after-free in cc::SurfaceManager::Destroy

Project Member Reported by ClusterFuzz, Dec 16 2016

Issue description

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

Fuzzer: inferno_layout_test_unmodified
Job Type: linux_asan_content_shell_drt
Platform Id: linux

Crash Type: Heap-use-after-free READ 8
Crash Address: 0x6140002786a8
Crash State:
  cc::SurfaceManager::Destroy
  cc::SurfaceFactory::EvictSurface
  cc::CompositorFrameSinkSupport::~CompositorFrameSinkSupport
  
Recommended Security Severity: High

Regressed: https://cluster-fuzz.appspot.com/revisions?job=linux_asan_content_shell_drt&range=438539:438632

Minimized Testcase (0.22 Kb):
Download: https://cluster-fuzz.appspot.com/download/AMIfv94yfGDZv--Nv0bnTiDuhMXibcKE3K7DfprAtgegko3cNKc16T5xyDiq0-1Uc1YTNeOP2a_c1E9-13BdfUqeIupglFTQyN8druXoN7QpBkCZN7ifCJivwnzBbjwnCowIRti7uaOTjp0C64I1TPkTn2Opp_BP9w?testcase_id=5088723047022592
<script>
function enableStates()
{
}
    var canvas = document.createElement('canvas');
    var offscreenCanvas = canvas.transferControlToOffscreen();
    var gl = offscreenCanvas.getContext('webgl');
    gl.commit();
</script>


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 17 2016

Labels: M-57
Project Member

Comment 2 by sheriffbot@chromium.org, Dec 17 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 17 2016

Labels: Pri-1
 Issue 675093  has been merged into this issue.
 Issue 675432  has been merged into this issue.
Components: Internals>Core
Labels: -OS-Linux OS-All
Owner: fsam...@chromium.org
Status: Assigned (was: Untriaged)
fsamuel: Can you take a look? Could this be related to https://chromium.googlesource.com/chromium/src/+/d5db7e2580f918cbbaab7b39deddd3e9344946b8 ?
CompositorFrameSinkSupport and Surface factory should have a weak ptr to Surfaces manger. Will fix soon

Project Member

Comment 8 by sheriffbot@chromium.org, Jan 3 2017

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

Comment 9 by bugdroid1@chromium.org, Jan 5 2017

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

commit 2c16ab44ad1354882c47d7ed49a4c5d77441857b
Author: fsamuel <fsamuel@chromium.org>
Date: Thu Jan 05 17:25:46 2017

Manage OffscreenCanvasCompositorFrameSink lifetime explicitly

The lifetime of mojo::StrongBindings is hard to reason about. This CL
manages OffscreenCanvasCompositorFrameSink(ProviderImpl) lifetime explicitly.
In particular, their lifetime is bound to the lifetime of the
RenderProcessHostImpl.

BUG= 675109 

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

[modify] https://crrev.com/2c16ab44ad1354882c47d7ed49a4c5d77441857b/content/browser/renderer_host/offscreen_canvas_compositor_frame_sink.cc
[modify] https://crrev.com/2c16ab44ad1354882c47d7ed49a4c5d77441857b/content/browser/renderer_host/offscreen_canvas_compositor_frame_sink.h
[modify] https://crrev.com/2c16ab44ad1354882c47d7ed49a4c5d77441857b/content/browser/renderer_host/offscreen_canvas_compositor_frame_sink_provider_impl.cc
[modify] https://crrev.com/2c16ab44ad1354882c47d7ed49a4c5d77441857b/content/browser/renderer_host/offscreen_canvas_compositor_frame_sink_provider_impl.h
[modify] https://crrev.com/2c16ab44ad1354882c47d7ed49a4c5d77441857b/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/2c16ab44ad1354882c47d7ed49a4c5d77441857b/content/browser/renderer_host/render_process_host_impl.h

Status: Fixed (was: Assigned)
This should now be fixed.
Project Member

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

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

Comment 12 by ClusterFuzz, Jan 12 2017

ClusterFuzz has detected this issue as fixed in range 441524:442831.

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

Fuzzer: inferno_layout_test_unmodified
Job Type: linux_asan_content_shell_drt
Platform Id: linux

Crash Type: Heap-use-after-free READ 8
Crash Address: 0x6140002786a8
Crash State:
  cc::SurfaceManager::Destroy
  cc::SurfaceFactory::EvictSurface
  cc::CompositorFrameSinkSupport::~CompositorFrameSinkSupport
  
Sanitizer: address (ASAN)

Recommended Security Severity: High

Regressed: https://cluster-fuzz.appspot.com/revisions?job=linux_asan_content_shell_drt&range=438539:438632
Fixed: https://cluster-fuzz.appspot.com/revisions?job=linux_asan_content_shell_drt&range=441524:442831

Minimized Testcase (0.22 Kb):
Download: https://cluster-fuzz.appspot.com/download/AMIfv94yfGDZv--Nv0bnTiDuhMXibcKE3K7DfprAtgegko3cNKc16T5xyDiq0-1Uc1YTNeOP2a_c1E9-13BdfUqeIupglFTQyN8druXoN7QpBkCZN7ifCJivwnzBbjwnCowIRti7uaOTjp0C64I1TPkTn2Opp_BP9w?testcase_id=5088723047022592
<script>
function enableStates()
{
}
    var canvas = document.createElement('canvas');
    var offscreenCanvas = canvas.transferControlToOffscreen();
    var gl = offscreenCanvas.getContext('webgl');
    gl.commit();
</script>


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.
Labels: -ReleaseBlock-Beta
Project Member

Comment 14 by sheriffbot@chromium.org, Apr 14 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