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

Issue 835371 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows
Pri: 1
Type: Bug-Security



Sign in to add a comment

Bad-cast to blink::LayoutBox from invalid vptr in blink::LayoutBlockFlow::XPositionForFloatIncludingMargin

Project Member Reported by ClusterFuzz, Apr 20 2018

Issue description

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

Fuzzer: inferno_twister
Job Type: linux_ubsan_vptr_chrome
Platform Id: linux

Crash Type: Bad-cast
Crash Address: 0x18350041c1f0
Crash State:
  Bad-cast to blink::LayoutBox from invalid vptr
  blink::LayoutBlockFlow::XPositionForFloatIncludingMargin
  blink::LayoutBlockFlow::AddOverflowFromFloats
  
Sanitizer: undefined (UBSAN)

Recommended Security Severity: High

Regressed: https://clusterfuzz.com/revisions?job=linux_ubsan_vptr_chrome&range=531696:531702

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

Issue filed automatically.

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

Comment 1 by ClusterFuzz, Apr 20 2018

Components: Blink>Layout
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.

Comment 2 by vakh@chromium.org, Apr 20 2018

Cc: tkent@chromium.org
Owner: wangxianzhu@chromium.org
Status: Assigned (was: Untriaged)
wangxianzhu@ -- can you please help triage this and find the right owner? Thanks.
Owner: ----
Status: Untriaged (was: Assigned)
Let's go through the Blink>Layout triage process.
Project Member

Comment 4 by ClusterFuzz, Apr 21 2018

Labels: OS-Windows
Project Member

Comment 5 by sheriffbot@chromium.org, Apr 21 2018

Labels: M-66
Project Member

Comment 6 by sheriffbot@chromium.org, Apr 21 2018

Labels: Pri-1

Comment 7 by tkent@chromium.org, Apr 22 2018

Cc: -tkent@chromium.org e...@chromium.org
Add eae@ for triage.

Comment 8 by vakh@chromium.org, Apr 23 2018

Cc: -e...@chromium.org
Owner: e...@chromium.org
Status: Assigned (was: Untriaged)
eae@ -- this is a high severity security issue, so please triage this on priority. thanks.

Comment 9 by e...@chromium.org, Apr 23 2018

Cc: e...@chromium.org
Labels: ClusterFuzz-Wrong
Owner: vakh@chromium.org
There are no blink or even rendering process changes in the regression range and it does not reproduce.

Without either a way to reproduce or a regression range there really isn't much we can do.

Comment 10 by vakh@chromium.org, Apr 24 2018

Owner: ----
Status: Untriaged (was: Assigned)

Comment 11 by e...@chromium.org, Apr 24 2018

Cc: infe...@chromium.org
Components: -Blink>Layout Tools>Stability>ClusterFuzz
Components: -Tools>Stability>ClusterFuzz Blink>Layout
eae@: Agree that the regression range looks wrong. 

When you say "it does not reproduce", are you using the ClusterFuzz reproduce tool (e.g. "clusterfuzz reproduce 5914353736613888")?

Loading the POC HTML in Canary (68.0.3405.0 on Windows) results in a crash; crash/a67d4ddb142aa083 with a slightly different crash stack. 
Labels: FoundIn-66 FoundIn-68
You are probably looking for a change made after 513865 (known good), but no later than 513886 (first known bad).
CHANGELOG URL:  https://chromium.googlesource.com/chromium/src/+log/4f31578028a9aff1f6535153d0dc0271889493dc..7a22edaa3ae7ef77e5d2499062bbccf24f1f5f1c

This looks suspect?
https://chromium.googlesource.com/chromium/src/+/7a22edaa3ae7ef77e5d2499062bbccf24f1f5f1c%5E%21/#F2
Cc: -e...@chromium.org
Labels: RegressedIn-64
Owner: e...@chromium.org
Status: Assigned (was: Untriaged)
Bisecting against the continuous builds indeed shows https://chromium.googlesource.com/chromium/src/+/7a22edaa3ae7ef77e5d2499062bbccf24f1f5f1c as the culprit.
Cc: kojii@chromium.org
eae@ is currently out of office. 

kojii@, is this something you might be able to help with?
Cc: robho...@gmail.com e...@chromium.org
Owner: robhogan@chromium.org
Assigning to culprit author. Robert, this is crashing in a bunch of places. can you please take a look or revert.

Comment 17 by e...@chromium.org, Apr 30 2018

Owner: robho...@gmail.com

Comment 18 by e...@chromium.org, Apr 30 2018

Owner: e...@chromium.org

Comment 19 by e...@chromium.org, Apr 30 2018

Status: Started (was: Assigned)
Can you please revert https://chromium-review.googlesource.com/c/chromium/src/+/1036489. i am getting conflicts during to i think code move to blink/.
Project Member

Comment 21 by ClusterFuzz, May 1 2018

ClusterFuzz has detected this issue as fixed in range 555009:555011.

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

Fuzzer: inferno_twister
Job Type: linux_ubsan_vptr_chrome
Platform Id: linux

Crash Type: Bad-cast
Crash Address: 0x18350041c1f0
Crash State:
  Bad-cast to blink::LayoutBox from invalid vptr
  blink::LayoutBlockFlow::XPositionForFloatIncludingMargin
  blink::LayoutBlockFlow::AddOverflowFromFloats
  
Sanitizer: undefined (UBSAN)

Recommended Security Severity: High

Regressed: https://clusterfuzz.com/revisions?job=linux_ubsan_vptr_chrome&range=531696:531702
Fixed: https://clusterfuzz.com/revisions?job=linux_ubsan_vptr_chrome&range=555009:555011

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

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.
Status: Fixed (was: Started)
Bulls-eye!
Cc: cbiesin...@chromium.org boliu@chromium.org
 Issue 833235  has been merged into this issue.
Cc: atotic@chromium.org
 Issue 834628  has been merged into this issue.
Cc: -atotic@chromium.org
Labels: Merge-Request-67
Owner: atotic@chromium.org
We should definitely merge the revert, this is a bad regression, see list of dupes.
https://chromium-review.googlesource.com/c/chromium/src/+/1036856
Project Member

Comment 26 by sheriffbot@chromium.org, May 1 2018

Labels: -Merge-Request-67 Merge-Review-67 Hotlist-Merge-Review
This bug requires manual review: M67 has already been promoted to the beta branch, so this requires manual review
Please contact the milestone owner if you have questions.
Owners: cmasso@(Android), cmasso@(iOS), kbleicher@(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Cc: gab@chromium.org
 Issue 838534  has been merged into this issue.
Project Member

Comment 28 by sheriffbot@chromium.org, May 1 2018

Labels: -Restrict-View-SecurityTeam Restrict-View-SecurityNotify
This is one reason why i hate two things in layout - re-layout with floats, clearing of anonymous blocks. this is the floats one, eight years later, these uafs are still annoying (https://trac.webkit.org/search?q=inferno+float).

Comment 30 by e...@chromium.org, May 1 2018

Good thing we're, finally, about to replace our float and clearance implementation :)
govind - yep, we should revert in 67 too
Labels: -Merge-Review-67 Merge-Approved-67
Approving merge for revert to M67 branch 3396 based on comments #25 and #31. Please do revert merge ASAP so we can pick it up for this week beta release. Thank you.

Comment 33 by e...@chromium.org, May 1 2018

Labels: -Merge-Approved-67 merge-merged-67
Merged into 3396 as dc36611260ea8e98f26e9384b0471531bd4d331e.

Cc: pbomm...@chromium.org

Comment 35 by gab@chromium.org, May 2 2018

Cc: -gab@chromium.org
Labels: Release-0-M67
Project Member

Comment 37 by sheriffbot@chromium.org, Aug 7

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