New issue
Advanced search Search tips

Issue 759355 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Sep 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug-Security



Sign in to add a comment

Use-of-uninitialized-value in blink::LayoutText::LocalSelectionRect

Project Member Reported by ClusterFuzz, Aug 27 2017

Issue description

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

Fuzzer: bj_broddelwerk
Job Type: linux_msan_chrome
Platform Id: linux

Crash Type: Use-of-uninitialized-value
Crash Address: 
Crash State:
  blink::LayoutText::LocalSelectionRect
  blink::LayoutText::LocalVisualRect
  blink::PaintInvalidator::InvalidatePaint
  
Sanitizer: memory (MSAN)

Recommended Security Severity: Medium

Regressed: https://clusterfuzz.com/revisions?job=linux_msan_chrome&range=496838:496881

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

Issue filed automatically.

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

Comment 1 by sheriffbot@chromium.org, Aug 27 2017

Labels: M-62
Project Member

Comment 2 by sheriffbot@chromium.org, Aug 27 2017

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 3 by sheriffbot@chromium.org, Aug 27 2017

Labels: Pri-1
Components: Blink>Editing>Selection
Owner: yoichio@chromium.org
This looks like 753179 which was resolved as duplicate of 752715 which was marked 'Fixed' but ClusterFuzz claims that that issue also still reproduces.

Comment 5 by ta...@google.com, Aug 28 2017

Status: Assigned (was: Untriaged)
Project Member

Comment 7 by sheriffbot@chromium.org, Sep 6 2017

Labels: -Security_Impact-Head Security_Impact-Beta
Project Member

Comment 8 by bugdroid1@chromium.org, Sep 8 2017

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

commit 2a689544e6e070aa2d65841ae1bdb25b41cf7489
Author: yoichio <yoichio@chromium.org>
Date: Fri Sep 08 06:17:37 2017

Avoid crash in LayoutText::LocalSelectionRect()

FrameSelection::LayoutSelectionStart/End() is typed Optional<int>
 and we should not call it when selection is empty.
However, LayoutObject::SelectionState and FrameSelection
 often fall into inconsistency: SelectionState is kStart but no
 selection.
I'm working to clean SelectionState marking but this hits
 Use-of-uninitialized-value issue on Chrome beta.
As small cherry-pick, this CL sets optional value |0| for selection
 offset.

Bug:  759355 
Change-Id: I53f772c91e59dcac84fc0a36afc954545f842e6a
Reviewed-on: https://chromium-review.googlesource.com/651987
Reviewed-by: Koji Ishii <kojii@chromium.org>
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Commit-Queue: Yoichi Osato <yoichio@chromium.org>
Cr-Commit-Position: refs/heads/master@{#500523}
[modify] https://crrev.com/2a689544e6e070aa2d65841ae1bdb25b41cf7489/third_party/WebKit/Source/core/layout/LayoutText.cpp

Project Member

Comment 9 by ClusterFuzz, Sep 9 2017

ClusterFuzz has detected this issue as fixed in range 500520:500531.

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

Fuzzer: bj_broddelwerk
Job Type: linux_msan_chrome
Platform Id: linux

Crash Type: Use-of-uninitialized-value
Crash Address: 
Crash State:
  blink::LayoutText::LocalSelectionRect
  blink::LayoutText::LocalVisualRect
  blink::PaintInvalidator::InvalidatePaint
  
Sanitizer: memory (MSAN)

Recommended Security Severity: Medium

Regressed: https://clusterfuzz.com/revisions?job=linux_msan_chrome&range=496838:496881
Fixed: https://clusterfuzz.com/revisions?job=linux_msan_chrome&range=500520:500531

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

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 10 by ClusterFuzz, Sep 10 2017

Labels: ClusterFuzz-Verified
Status: Verified (was: Assigned)
ClusterFuzz testcase 4937243612676096 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 11 by sheriffbot@chromium.org, Sep 10 2017

Labels: -Restrict-View-SecurityTeam Restrict-View-SecurityNotify
Labels: Merge-Request-62
Approving merge to M62 (branch:3202)
Labels: -Merge-Request-62 Merge-Approved-62
Project Member

Comment 15 by bugdroid1@chromium.org, Sep 12 2017

Labels: -merge-approved-62 merge-merged-3202
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f8392beb452bfaa389a28bf071326b38a0f0fc38

commit f8392beb452bfaa389a28bf071326b38a0f0fc38
Author: yoichio <yoichio@chromium.org>
Date: Tue Sep 12 02:11:46 2017

Avoid crash in LayoutText::LocalSelectionRect()

FrameSelection::LayoutSelectionStart/End() is typed Optional<int>
 and we should not call it when selection is empty.
However, LayoutObject::SelectionState and FrameSelection
 often fall into inconsistency: SelectionState is kStart but no
 selection.
I'm working to clean SelectionState marking but this hits
 Use-of-uninitialized-value issue on Chrome beta.
As small cherry-pick, this CL sets optional value |0| for selection
 offset.

Bug:  759355 
Change-Id: I53f772c91e59dcac84fc0a36afc954545f842e6a
Reviewed-on: https://chromium-review.googlesource.com/651987
Reviewed-by: Koji Ishii <kojii@chromium.org>
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Commit-Queue: Yoichi Osato <yoichio@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#500523}(cherry picked from commit 2a689544e6e070aa2d65841ae1bdb25b41cf7489)
Reviewed-on: https://chromium-review.googlesource.com/662537
Reviewed-by: Yoichi Osato <yoichio@chromium.org>
Cr-Commit-Position: refs/branch-heads/3202@{#153}
Cr-Branched-From: fa6a5d87adff761bc16afc5498c3f5944c1daa68-refs/heads/master@{#499098}
[modify] https://crrev.com/f8392beb452bfaa389a28bf071326b38a0f0fc38/third_party/WebKit/Source/core/layout/LayoutText.cpp

Project Member

Comment 16 by ClusterFuzz, Sep 17 2017

Labels: Needs-Feedback
ClusterFuzz testcase 5701346547466240 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, Dec 17 2017

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