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

Issue 772261 link

Starred by 1 user

Issue metadata

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



Sign in to add a comment

Use-of-uninitialized-value in blink::SVGInlineTextBoxPainter::PaintSelectionBackground

Project Member Reported by ClusterFuzz, Oct 6 2017

Issue description

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

Fuzzer: miaubiz_svg_fuzzer
Job Type: linux_msan_chrome
Platform Id: linux

Crash Type: Use-of-uninitialized-value
Crash Address: 
Crash State:
  blink::SVGInlineTextBoxPainter::PaintSelectionBackground
  blink::SVGInlineFlowBoxPainter::PaintSelectionBackground
  blink::SVGRootInlineBoxPainter::Paint
  
Sanitizer: memory (MSAN)

Recommended Security Severity: Medium

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

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

Issue filed automatically.

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

Comment 1 by ClusterFuzz, Oct 6 2017

Components: Blink>Paint
Labels: Test-Predator-AutoComponents
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, Oct 6 2017

Labels: Test-Predator-AutoOwner
Owner: yoichio@chromium.org
Status: Assigned (was: Untriaged)
Automatically assigning owner based on suspected regression changelist https://chromium.googlesource.com/chromium/src/+/2a689544e6e070aa2d65841ae1bdb25b41cf7489 (Avoid crash in LayoutText::LocalSelectionRect()).

If this is incorrect, please remove the owner and apply the Test-Predator-Wrong-CLs label.
Project Member

Comment 3 by sheriffbot@chromium.org, Oct 6 2017

Labels: M-63
Project Member

Comment 4 by sheriffbot@chromium.org, Oct 6 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 5 by sheriffbot@chromium.org, Oct 6 2017

Labels: Pri-1
Project Member

Comment 6 by bugdroid1@chromium.org, Oct 11 2017

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

commit 2a32afb3ace21f8915fd81e01aa0f5393a7e43b1
Author: Yoichi Osato <yoichio@chromium.org>
Date: Wed Oct 11 08:44:33 2017

Avoid crash in InlineTextBox::SelectionStartEnd()

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 on Layout tree but
this hits Use-of-uninitialized-value issue.
As fix the security issue, this CL sets optional value |0| for selection
offset.

Introduce LayoutSelection::SelectionStart()/End() to TouchAdjustment:
https://chromium-review.googlesource.com/c/chromium/src/+/566268

Bug:  772261 
Change-Id: I72dd129ebe7391bd45e90845973284d2e42649da
Reviewed-on: https://chromium-review.googlesource.com/708434
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Commit-Queue: Yoichi Osato <yoichio@chromium.org>
Cr-Commit-Position: refs/heads/master@{#507928}
[modify] https://crrev.com/2a32afb3ace21f8915fd81e01aa0f5393a7e43b1/third_party/WebKit/Source/core/layout/line/InlineTextBox.cpp

Status: Fixed (was: Assigned)
Project Member

Comment 8 by sheriffbot@chromium.org, Oct 11 2017

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

Comment 9 by ClusterFuzz, Oct 12 2017

ClusterFuzz has detected this issue as fixed in range 507925:507931.

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

Fuzzer: miaubiz_svg_fuzzer
Job Type: linux_msan_chrome
Platform Id: linux

Crash Type: Use-of-uninitialized-value
Crash Address: 
Crash State:
  blink::SVGInlineTextBoxPainter::PaintSelectionBackground
  blink::SVGInlineFlowBoxPainter::PaintSelectionBackground
  blink::SVGRootInlineBoxPainter::Paint
  
Sanitizer: memory (MSAN)

Recommended Security Severity: Medium

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

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

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, Oct 12 2017

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

If this is incorrect, please add ClusterFuzz-Wrong label and re-open the issue.
Labels: -Type-Bug-Security -Restrict-View-SecurityNotify -reward-topanel -Security_Severity-Medium -Security_Impact-Head -ReleaseBlock-Stable reward-0 Type-Bug
The VRP panel took a look at this and decided it wasn't exploitable and therefore not a security bug, I'm afraid.
Labels: -Test-Predator-AutoComponents Test-Predator-Auto-Components
Labels: -Test-Predator-AutoOwner Test-Predator-Auto-Owner

Sign in to add a comment