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

Issue 619373 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Email to this user bounced
Closed: Jun 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 1
Type: Bug-Security



Sign in to add a comment

Use-after-poison in blink::CrossThreadPersistentRegion::prepareForThreadStateTermination

Project Member Reported by ClusterFuzz, Jun 12 2016

Issue description

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

Fuzzer: inferno_layout_test_unmodified
Job Type: mac_asan_chrome
Platform Id: mac

Crash Type: Use-after-poison READ 8
Crash Address: 0x7eb14bc0c830
Crash State:
  blink::CrossThreadPersistentRegion::prepareForThreadStateTermination
  blink::ThreadState::runTerminationGC
  blink::ThreadHeap::detach
  
Recommended Security Severity: High

Regressed: https://cluster-fuzz.appspot.com/revisions?job=mac_asan_chrome&range=398867:398897

Minimized Testcase (2.39 Kb): https://cluster-fuzz.appspot.com/download/AMIfv94I8ZHEi-iQfXaoPWRA9tUYmrgIQyuzeSf75RA4DF9IMnY_ATc0uYU1QSa-Cn_BpWvvw076K9iDEZ4-z-zQpncAJ2JluYfB3Sa5XQNhxoWWYapM2cW7r_ui7mdBrA5wPkoeu3AuQfUTnECNzxqJ16TWoK1mcQ

Additional requirements: Requires HTTP

Filer: inferno

See https://dev.chromium.org/Home/chromium-security/bugs/reproducing-clusterfuzz-bugs for more information.
 
Cc: haraken@chromium.org
Owner: sigbjo...@opera.com
Status: Assigned (was: Available)

Comment 2 by sigbjo...@opera.com, Jun 12 2016

Cc: sigbjo...@opera.com
Owner: nhiroki@chromium.org
Due to the CrossThreadPersistent<> usage introduced in https://codereview.chromium.org/2025783002

Comment 3 by sigbjo...@opera.com, Jun 12 2016

Having CrossThreadPersistent<> as members of heap objects means you have to take care of the effects of lazy sweeping.

i.e., annotating the WebSocket object which uses that persistent with EAGERLY_FINALIZE() (next to its DECLARE_TRACE()), will most likely take care of it.
Project Member

Comment 4 by sheriffbot@chromium.org, Jun 12 2016

Labels: M-53
Project Member

Comment 5 by sheriffbot@chromium.org, Jun 12 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 6 by sheriffbot@chromium.org, Jun 12 2016

Labels: Pri-1
Project Member

Comment 7 by sheriffbot@chromium.org, Jun 13 2016

Labels: M-53
Project Member

Comment 8 by bugdroid1@chromium.org, Jun 13 2016

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

commit 5c41255da77e26cfd08bc1ff29f09214dba3bea4
Author: sigbjornf <sigbjornf@opera.com>
Date: Mon Jun 13 13:34:34 2016

Promptly release cross-thread websocket bridge/proxy references

To prevent other threads using cross-thread persistents from accessing
to-be-finalized websocket Peer and Bridge abstractions, promptly free
them on becoming garbage. Delaying this until lazy sweeping runs risks
(benignly) touching poisoned objects.

R=
BUG= 619373 

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

[modify] https://crrev.com/5c41255da77e26cfd08bc1ff29f09214dba3bea4/third_party/WebKit/Source/modules/websockets/WorkerWebSocketChannel.h

Comment 9 by sigbjo...@opera.com, Jun 13 2016

Cc: -sigbjo...@opera.com nhiroki@chromium.org
Owner: sigbjo...@opera.com
Status: Fixed (was: Assigned)
Project Member

Comment 10 by ClusterFuzz, Jun 13 2016

Labels: Merge-NA
Project Member

Comment 11 by ClusterFuzz, Jun 14 2016

ClusterFuzz has detected this issue as fixed in range 399438:399445.

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

Fuzzer: inferno_layout_test_unmodified
Job Type: mac_asan_chrome
Platform Id: mac

Crash Type: Use-after-poison READ 8
Crash Address: 0x7eb14bc0c830
Crash State:
  blink::CrossThreadPersistentRegion::prepareForThreadStateTermination
  blink::ThreadState::runTerminationGC
  blink::ThreadHeap::detach
  
Recommended Security Severity: High

Regressed: https://cluster-fuzz.appspot.com/revisions?job=mac_asan_chrome&range=398867:398897
Fixed: https://cluster-fuzz.appspot.com/revisions?job=mac_asan_chrome&range=399438:399445

Minimized Testcase (2.39 Kb): https://cluster-fuzz.appspot.com/download/AMIfv94I8ZHEi-iQfXaoPWRA9tUYmrgIQyuzeSf75RA4DF9IMnY_ATc0uYU1QSa-Cn_BpWvvw076K9iDEZ4-z-zQpncAJ2JluYfB3Sa5XQNhxoWWYapM2cW7r_ui7mdBrA5wPkoeu3AuQfUTnECNzxqJ16TWoK1mcQ

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

Comment 12 by sheriffbot@chromium.org, Jun 14 2016

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

Comment 13 by bugdroid1@chromium.org, Jun 15 2016

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

commit 5c41255da77e26cfd08bc1ff29f09214dba3bea4
Author: sigbjornf <sigbjornf@opera.com>
Date: Mon Jun 13 13:34:34 2016

Promptly release cross-thread websocket bridge/proxy references

To prevent other threads using cross-thread persistents from accessing
to-be-finalized websocket Peer and Bridge abstractions, promptly free
them on becoming garbage. Delaying this until lazy sweeping runs risks
(benignly) touching poisoned objects.

R=
BUG= 619373 

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

[modify] https://crrev.com/5c41255da77e26cfd08bc1ff29f09214dba3bea4/third_party/WebKit/Source/modules/websockets/WorkerWebSocketChannel.h

 Issue 620754  has been merged into this issue.
Labels: -ReleaseBlock-Beta -ClusterFuzz -merge-na Clusterfuzz Merge-na
Fix already in M53, removing ReleaseBlock-Beta.
Project Member

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