New issue
Advanced search Search tips

Issue 857311 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Jun 2018
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Mac
Pri: 1
Type: Bug-Security



Sign in to add a comment

Use-after-poison in blink::PersistentBase<blink::DummyGCBase,

Project Member Reported by ClusterFuzz, Jun 28 2018

Issue description

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

Fuzzer: inferno_layout_test_unmodified
Job Type: mac_asan_content_shell
Platform Id: mac

Crash Type: Use-after-poison READ 8
Crash Address: 0x7e9ba3d41958
Crash State:
  blink::PersistentBase<blink::DummyGCBase,
  blink::CrossThreadPersistentRegion::ShouldTracePersistentNode
  blink::PersistentRegion::TracePersistentNodes
  
Sanitizer: address (ASAN)

Recommended Security Severity: High

Regressed: https://clusterfuzz.com/revisions?job=mac_asan_content_shell&range=570881:570890

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

Issue filed automatically.

See https://github.com/google/clusterfuzz-tools for more information.
 
Project Member

Comment 1 by ClusterFuzz, Jun 28 2018

Labels: OS-Linux
Project Member

Comment 2 by ClusterFuzz, Jun 28 2018

Components: Blink>MemoryAllocator>GarbageCollection
Labels: Test-Predator-Auto-Components
Automatically applying components based on crash stacktrace and information from OWNERS files.

If this is incorrect, please apply the Test-Predator-Wrong-Components label.
Project Member

Comment 3 by ClusterFuzz, Jun 28 2018

Labels: Test-Predator-Auto-Owner
Owner: jbroman@chromium.org
Status: Assigned (was: Untriaged)
Automatically assigning owner based on suspected regression changelist https://chromium.googlesource.com/chromium/src/+/5a9135875ed4da1cd789d8b19f8563fa6da81d4d (Use a non-recursive mutex for ProcessHeap::CrossThreadPersistentMutex.).

If this is incorrect, please let us know why and apply the Test-Predator-Wrong-CLs label. If you aren't the correct owner for this issue, please unassign yourself as soon as possible so it can be re-triaged.
Project Member

Comment 4 by sheriffbot@chromium.org, Jun 28 2018

Labels: M-69 Target-69
Project Member

Comment 5 by sheriffbot@chromium.org, Jun 28 2018

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

If this doesn't affect a release branch, or has not been properly classified for severity, please update the Security_Impact or Security_Severity labels, and remove the ReleaseBlock label. To disable this altogether, apply ReleaseBlock-NA.

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

Comment 6 by sheriffbot@chromium.org, Jun 28 2018

Labels: Pri-1
Project Member

Comment 7 by bugdroid1@chromium.org, Jun 28 2018

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

commit 54b819e7e5bdca660ce82c49e228ff8fbe56b806
Author: Jeremy Roman <jbroman@chromium.org>
Date: Thu Jun 28 16:01:09 2018

Hold the CrossThreadPersistentMutex across heap poisoning.

Since cross-thread persistents may be included in the poisoning, but must not
be observed by another thread to be poisoned, the mutex must be held to prevent
them noticing before they are unpoisoned again.

The alternative which would narrow the critical section might be to store away
a copy of the cross-thread persistents and not poison them at all, but this is
consistent with the previous approach and thus seems less risky.

Bug:  857311 
Change-Id: Ib0ddee582c6ceea98cce0c0b3844fb363aa3c5be
Reviewed-on: https://chromium-review.googlesource.com/1118286
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Jeremy Roman <jbroman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#571145}
[modify] https://crrev.com/54b819e7e5bdca660ce82c49e228ff8fbe56b806/third_party/blink/renderer/platform/heap/heap.cc
[modify] https://crrev.com/54b819e7e5bdca660ce82c49e228ff8fbe56b806/third_party/blink/renderer/platform/heap/persistent_node.cc

Project Member

Comment 8 by ClusterFuzz, Jun 29 2018

ClusterFuzz has detected this issue as fixed in range 571124:571157.

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

Fuzzer: inferno_layout_test_unmodified
Job Type: mac_asan_content_shell
Platform Id: mac

Crash Type: Use-after-poison READ 8
Crash Address: 0x7e9ba3d41958
Crash State:
  blink::PersistentBase<blink::DummyGCBase,
  blink::CrossThreadPersistentRegion::ShouldTracePersistentNode
  blink::PersistentRegion::TracePersistentNodes
  
Sanitizer: address (ASAN)

Recommended Security Severity: High

Regressed: https://clusterfuzz.com/revisions?job=mac_asan_content_shell&range=570881:570890
Fixed: https://clusterfuzz.com/revisions?job=mac_asan_content_shell&range=571124:571157

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

See https://github.com/google/clusterfuzz-tools 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 9 by ClusterFuzz, Jun 29 2018

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

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

Comment 10 by sheriffbot@chromium.org, Jun 29 2018

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

Comment 12 by sheriffbot@chromium.org, Oct 5

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