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

Issue 610987 link

Starred by 0 users

Issue metadata

Status: Fixed
Owner:
Closed: May 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 1
Type: Bug-Security



Sign in to add a comment

Heap-use-after-free in v8::Isolate::VisitHandlesWithClassIds

Project Member Reported by ClusterFuzz, May 11 2016

Issue description

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

Fuzzer: therealholden_worker
Job Type: windows_asan_content_shell
Platform Id: windows

Crash Type: Heap-use-after-free READ 4
Crash Address: 0x1c80b204
Crash State:
  v8::Isolate::VisitHandlesWithClassIds
  blink::V8GCController::traceDOMWrappers
  blink::ThreadState::visitPersistents
  
Recommended Security Severity: High

Regressed: https://cluster-fuzz.appspot.com/revisions?job=windows_asan_content_shell&range=390670:390734

Unminimized Testcase: https://cluster-fuzz.appspot.com/download/AMIfv97Aw1lfci1FFnutmP8We0DwPKeAH6CUywwsPVqDzaBMBYAncywkN3ZgLilwvDGCuBIguRNDEOdHH42SxItWm52-vyxTPbBfRI3rFVKBdK6T_FaNYvtPtH6wCh3Xigr00_DggzTRq4SBgu1xytZ2ILDNMyArtQ


Additional requirements: Requires HTTP

Filer: mmoroz

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

Comment 1 by mmoroz@chromium.org, May 11 2016

Cc: mmoroz@chromium.org
Labels: Pri-1
Owner: jochen@chromium.org
Looks a bit similar to  bug 610340 , but not sure.

Comment 2 by jochen@chromium.org, May 11 2016

Cc: kinuko@chromium.org jochen@chromium.org
Owner: haraken@chromium.org
worker thread executing stuff after blink's main thread was shut down.

kinuko because worker

assigning to haraken as he recently changed handling of shutdown
Cc: -therealh...@gmail.com sigbjo...@opera.com
This is a bug of Oilpan.

1) The main thread calls blink::shutdown().
2) The main thread destroys the V8 isolate.
3) Worker threads are still running and can trigger Oilpan's GC (<== this causes the crash).
4) The main thread calls modulesInitializer().shutdown() and joins all workers.

A right fix would be to move 4) to between 1) and 2).

Comment 4 by sigbjo...@opera.com, May 11 2016

Overlap with issue 459380 and/or  issue 610340  ?
I don't think so, since both issue 459380 and  issue 610340  are happening during V8 GC, not Oilpan's GC.

Project Member

Comment 6 by ClusterFuzz, May 11 2016

Status: Assigned (was: Available)
Project Member

Comment 7 by sheriffbot@chromium.org, May 11 2016

Labels: M-52
Project Member

Comment 8 by sheriffbot@chromium.org, May 11 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 9 by bugdroid1@chromium.org, May 11 2016

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

commit 3c35abf17d76b2e4fe491a703b68b17c48725eeb
Author: haraken <haraken@chromium.org>
Date: Wed May 11 14:06:54 2016

All worker threads should be joined before main thread's V8 isolate is destroyed

Currently the following scenario can happen:

1) The main thread calls blink::shutdown().
2) The main thread calls V8Initializer::shutdown(), which destroys the V8 isolate.
3) Worker threads are still running and can trigger Oilpan's GC (<== this accesses the isolate and causes crash).
4) The main thread calls modulesInitializer().shutdown() and joins all workers.

To address the issue, this CL moves 4) to between 1) and 2).

BUG= 610987 

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

[modify] https://crrev.com/3c35abf17d76b2e4fe491a703b68b17c48725eeb/third_party/WebKit/Source/web/WebKit.cpp

Status: Fixed (was: Assigned)
Project Member

Comment 11 by ClusterFuzz, May 12 2016

Labels: Merge-NA
Project Member

Comment 12 by sheriffbot@chromium.org, May 12 2016

Labels: -Restrict-View-SecurityTeam Restrict-View-SecurityNotify
Cc: therealh...@gmail.com
Project Member

Comment 14 by ClusterFuzz, Jun 9 2016

ClusterFuzz has detected this testcase as flaky and is unable to reproduce it in the original crash revision. Skipping fixed testing check and marking it as potentially fixed.

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

Fuzzer: therealholden_worker
Job Type: windows_asan_content_shell
Platform Id: windows

Crash Type: Heap-use-after-free READ 4
Crash Address: 0x1c80b204
Crash State:
  v8::Isolate::VisitHandlesWithClassIds
  blink::V8GCController::traceDOMWrappers
  blink::ThreadState::visitPersistents
  
Recommended Security Severity: High

Regressed: https://cluster-fuzz.appspot.com/revisions?job=windows_asan_content_shell&range=390670:390734

Unminimized Testcase: https://cluster-fuzz.appspot.com/download/AMIfv97Aw1lfci1FFnutmP8We0DwPKeAH6CUywwsPVqDzaBMBYAncywkN3ZgLilwvDGCuBIguRNDEOdHH42SxItWm52-vyxTPbBfRI3rFVKBdK6T_FaNYvtPtH6wCh3Xigr00_DggzTRq4SBgu1xytZ2ILDNMyArtQ


Additional requirements: Requires HTTP

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: -reward-topanel reward-unpaid reward-3500 reward_to-therealholden_at_gmail.com
Congratulations - $3,500 for this bug!
Labels: -ClusterFuzz -merge-na Clusterfuzz Merge-na
Labels: -reward-unpaid reward-inprocess
Project Member

Comment 18 by sheriffbot@chromium.org, Aug 18 2016

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

Comment 19 by sheriffbot@chromium.org, Oct 1 2016

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

Comment 20 by sheriffbot@chromium.org, Oct 2 2016

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
Labels: allpublic

Sign in to add a comment