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

Issue 652589 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Oct 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug-Regression



Sign in to add a comment

Integer-overflow in blink::ObjectPainter::drawRidgeOrGrooveBoxSide

Project Member Reported by ClusterFuzz, Oct 4 2016

Issue description

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

Fuzzer: inferno_twister
Job Type: linux_ubsan_chrome
Platform Id: linux

Crash Type: Integer-overflow
Crash Address: 
Crash State:
  blink::ObjectPainter::drawRidgeOrGrooveBoxSide
  blink::ObjectPainter::drawLineForBoxSide
  blink::ObjectPainter::paintOutline
  
Regressed: https://cluster-fuzz.appspot.com/revisions?job=linux_ubsan_chrome&range=370022:370027

Minimized Testcase (1.22 Kb): https://cluster-fuzz.appspot.com/download/AMIfv95tMknXvxumLBieQf7vHskgEZ5_ghNhKt2wqRUPFJmXbP3IWh9zG-OKrkPMP-PCPz0YsHzkuz8l3b_2e1EObzHZYbdyOlq6b0uw_sktKUvzrpN3fO-aA1Lh19LksvqHfu5CYQCI8WWHyUmctAp0Sz37ThBImQ?testcase_id=6408289074282496

Additional requirements: Requires HTTP

Issue manually filed by: ranjitkan

See https://dev.chromium.org/Home/chromium-security/bugs/reproducing-clusterfuzz-bugs for more information.
 
Cc: ranjitkan@chromium.org
Components: Tools>Test>FindIt>WrongResult
Labels: -Pri-1 -Type-Bug findit-wrong M-55 Te-Logged Pri-2 Type-Bug-Regression
Owner: kojii@chromium.org
Status: Assigned (was: Untriaged)
Cluster Fuzz points to the below change:

Author: Blink Reformat
Project: chromium
Changelist: https://chromium.googlesource.com/chromium/src/+/1c8e1a7719e9d223cc84e838c9a31a0210f5878b
Time: Sat Oct 01 00:25:32 2016
The CL last changed line 592 of file ObjectPainter.cpp, which is stack frame 0.

Not finding this appropriate change which could have resulted this crash. Using code search suspecting below change could be the possible culprit. 

Change URL: https://chromium.googlesource.com/chromium/src/+/5c70b66b1b9b5488460c8c048ff7c32542d4c36f

Review URL: https://codereview.chromium.org/1481483002

@ kojii: Assigning to you, request you to please take a look into it. Please help us to reassign it to a right owner if not with respect to your change.

Thanks.!

Comment 2 by kojii@chromium.org, Oct 5 2016

Components: Blink>Paint
Owner: ----
Status: Untriaged (was: Assigned)
Looks like paint, stack #0 (before reformat) is a move from RenderObject
https://codereview.chromium.org/591613003

Marking untriaged for paint team to look at.
Cc: pdr@chromium.org wkorman@chromium.org
Status: Available (was: Untriaged)
This might be a real issue.
Cc: -wkorman@chromium.org
Owner: wkorman@chromium.org
Status: Assigned (was: Available)
Project Member

Comment 5 by bugdroid1@chromium.org, Oct 8 2016

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

commit c38aced892d8066f08f3babe797d0daca9f66611
Author: wkorman <wkorman@chromium.org>
Date: Sat Oct 08 01:59:13 2016

Fix integer overflow in ObjectPainter and divide by zero in Color.

BUG= 652589 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

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

[modify] https://crrev.com/c38aced892d8066f08f3babe797d0daca9f66611/third_party/WebKit/Source/core/paint/ObjectPainter.cpp
[modify] https://crrev.com/c38aced892d8066f08f3babe797d0daca9f66611/third_party/WebKit/Source/platform/graphics/Color.cpp

Status: Fixed (was: Assigned)
Project Member

Comment 7 by ClusterFuzz, Oct 9 2016

ClusterFuzz has detected this issue as fixed in range 424037:424060.

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

Fuzzer: inferno_twister
Job Type: linux_ubsan_chrome
Platform Id: linux

Crash Type: Integer-overflow
Crash Address: 
Crash State:
  blink::ObjectPainter::drawRidgeOrGrooveBoxSide
  blink::ObjectPainter::drawLineForBoxSide
  blink::ObjectPainter::paintOutline
  
Regressed: https://cluster-fuzz.appspot.com/revisions?job=linux_ubsan_chrome&range=370022:370027
Fixed: https://cluster-fuzz.appspot.com/revisions?job=linux_ubsan_chrome&range=424037:424060

Minimized Testcase (1.22 Kb): https://cluster-fuzz.appspot.com/download/AMIfv95tMknXvxumLBieQf7vHskgEZ5_ghNhKt2wqRUPFJmXbP3IWh9zG-OKrkPMP-PCPz0YsHzkuz8l3b_2e1EObzHZYbdyOlq6b0uw_sktKUvzrpN3fO-aA1Lh19LksvqHfu5CYQCI8WWHyUmctAp0Sz37ThBImQ?testcase_id=6408289074282496

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 8 by bugdroid1@chromium.org, Oct 12 2016

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

commit f29fc457dc4b6663998a40958f782bfbb89d6dc0
Author: wkorman <wkorman@chromium.org>
Date: Wed Oct 12 00:51:45 2016

Revert int overflow changes to ObjectPainter.

Partial revert of http://crrev.com/2404583002 (keeping the divide-by-zero change
in Color). We don't consider these int overflow safeguards to be necessary in
this part of the code, per offline discussion with ubsan fuzzer folk and an
appropriate selection of Blink eng with fuzzing historical background.

BUG= 652589 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

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

[modify] https://crrev.com/f29fc457dc4b6663998a40958f782bfbb89d6dc0/third_party/WebKit/Source/core/paint/ObjectPainter.cpp

Components: -Tools>Test>FindIt>WrongResult
Labels: Test-Predator-Wrong
Project Member

Comment 10 by sheriffbot@chromium.org, Nov 22 2016

Labels: -Restrict-View-EditIssue
Removing EditIssue view restrictions from ClusterFuzz filed bugs. If you believe that this issue should still be restricted, please reapply the label.

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

Sign in to add a comment