New issue
Advanced search Search tips

Issue 832101 link

Starred by 1 user

Issue metadata

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

Blocking:
issue 778507



Sign in to add a comment

TextOffsetMapping::ComputeContainigBlock() crashes with all elements are float

Project Member Reported by ClusterFuzz, Apr 12 2018

Issue description

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

Fuzzer: bj_broddelwerk
Job Type: linux_ubsan_vptr_chrome
Platform Id: linux

Crash Type: Bad-cast
Crash Address: 0x222bb8420000
Crash State:
  Bad-cast to blink::LayoutBlock from blink::LayoutText
  blink::TextOffsetMapping::ComputeContainigBlock
  blink::NextWordPosition
  
Sanitizer: undefined (UBSAN)

Recommended Security Severity: High

Regressed: https://clusterfuzz.com/revisions?job=linux_ubsan_vptr_chrome&range=550102:550107

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

Issue filed automatically.

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

Comment 1 by ClusterFuzz, Apr 12 2018

Components: Blink>Editing
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 2 by ClusterFuzz, Apr 12 2018

Labels: Test-Predator-Auto-Owner
Owner: yosin@chromium.org
Status: Assigned (was: Untriaged)
Automatically assigning owner based on suspected regression changelist https://chromium.googlesource.com/chromium/src/+/1324be868df000cb2e070199ce2d10cd0c5a2706 (Make NextWordPosition() to utilize TextOffsetMapping).

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.

Comment 3 by yosin@chromium.org, Apr 13 2018

Components: Blink>Editing>Selection
Status: Started (was: Assigned)
I'm working now...

Comment 4 by yosin@chromium.org, Apr 13 2018

Components: -Blink>Editing

Comment 5 by yosin@chromium.org, Apr 13 2018

Labels: Pri-3
Summary: TextOffsetMapping::ComputeContainigBlock() crashes with all elements are float (was: Bad-cast to blink::LayoutBlock from blink::LayoutText in blink::TextOffsetMapping::ComputeContainigBlock)
Lower to Pri-3, since this is caused by unusual HTML.

Here is minimal HTML to reproduce this:

<!doctype>
<html style="float:right">
<body style="float:right">foo</body>
<script>
const selection = window.getSelection();
selection.collapse(document.body, 0);
selection.modify('extend', 'forward', 'word');
</script>

Layout Tree:
  LayoutBlockFlow (floating) {HTML} at (764,0) size 36x36
    LayoutBlockFlow (floating) {BODY} at (8,8) size 20x20
      LayoutText {#text} at (0,0) size 20x19
        text run at (0,0) width 20: "foo"
Project Member

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

Labels: M-67
Project Member

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

Labels: -Pri-3 Pri-1
Project Member

Comment 9 by bugdroid1@chromium.org, Apr 17 2018

Labels: merge-merged-3396
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dec40a582a3805fb28dfd67ba49fc2cdb28a1b6c

commit dec40a582a3805fb28dfd67ba49fc2cdb28a1b6c
Author: Yoshifumi Inoue <yosin@chromium.org>
Date: Tue Apr 17 04:30:18 2018

Revert "Make NextWordPosition() to utilize TextOffsetMapping"

This reverts commit 1324be868df000cb2e070199ce2d10cd0c5a2706 for M67/Beta

TextOffsetMapping is not ready for release.
It should support edge cases.

TBR=yosin@chromium.org

Bug:  832055 ,  832061 ,  832101 ,  832261 ,  832350 ,  832497 ,  832639 ,  833172 ,  833180 
Change-Id: Iac5f58716619a626650088a55109922daf1a4f3a
Reviewed-on: https://chromium-review.googlesource.com/1013445
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Cr-Commit-Position: refs/branch-heads/3396@{#36}
Cr-Branched-From: 9ef2aa869bc7bc0c089e255d698cca6e47d6b038-refs/heads/master@{#550428}
[modify] https://crrev.com/dec40a582a3805fb28dfd67ba49fc2cdb28a1b6c/third_party/blink/renderer/core/editing/visible_units_word.cc
[modify] https://crrev.com/dec40a582a3805fb28dfd67ba49fc2cdb28a1b6c/third_party/blink/renderer/core/editing/visible_units_word_test.cc

Comment 10 by yosin@chromium.org, Apr 17 2018

Labels: -M-67 M-68

Comment 11 by yosin@chromium.org, Apr 17 2018

Labels: -ReleaseBlock-Stable ReleaseBlock-Dev

Comment 12 by yosin@chromium.org, Apr 17 2018

Blocking: 778507
Project Member

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

Status: Fixed (was: Started)
Please mark security bugs as fixed as soon as the fix lands, and before requesting merges. This update is based on the merge- labels applied to this issue. Please reopen if this update was incorrect.

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

Comment 15 by sheriffbot@chromium.org, Apr 18 2018

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

Comment 16 by ClusterFuzz, Apr 24 2018

Labels: Needs-Feedback
ClusterFuzz testcase 4754497298235392 is still reproducing on tip-of-tree build (trunk).

Please re-test your fix against this testcase and if the fix was incorrect or incomplete, please re-open the bug. Otherwise, ignore this notification and add ClusterFuzz-Wrong label.
Labels: -ReleaseBlock-Stable
Project Member

Comment 18 by sheriffbot@chromium.org, Jul 25

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