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

Issue 683533 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Last visit > 30 days ago
Closed: Jan 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug-Security



Sign in to add a comment

Use-of-uninitialized-value in SkOpAngle::insert

Project Member Reported by ClusterFuzz, Jan 21 2017

Issue description

Project Member

Comment 1 by sheriffbot@chromium.org, Jan 22 2017

Labels: M-57
Project Member

Comment 2 by sheriffbot@chromium.org, Jan 22 2017

Labels: ReleaseBlock-Beta
This issue is a security regression. If you are not able to fix this quickly, please revert the change that introduced it.

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

Comment 3 by sheriffbot@chromium.org, Jan 22 2017

Labels: Pri-1

Comment 4 by gov...@chromium.org, Jan 23 2017


A friendly reminder that M57 Beta launch is coming soon on February 2nd! Your bug is labelled as Beta ReleaseBlock, pls make sure to land the fix and get it merged into the release branch (2987) ASAP so it gets enough baking time in Dev (before Beta promotion). Thank you!

Comment 5 by est...@chromium.org, Jan 24 2017

Components: Internals>Skia
Owner: reed@chromium.org
Status: Assigned (was: Untriaged)
reed, could you please help find an owner for this security bug? Thanks!

Comment 6 by hcm@chromium.org, Jan 24 2017

Owner: hcm@chromium.org

Comment 7 by hcm@chromium.org, Jan 24 2017

Owner: caryclark@google.com
over to Cary...
Project Member

Comment 8 by ClusterFuzz, Jan 24 2017

ClusterFuzz has detected this issue as fixed in range 445391:445491.

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

Fuzzer: attekett_surku_fuzzer
Job Type: linux_msan_chrome
Platform Id: linux

Crash Type: Use-of-uninitialized-value
Crash Address: 
Crash State:
  SkOpAngle::insert
  SkOpSegment::sortAngles
  HandleCoincidence
  
Sanitizer: memory (MSAN)

Recommended Security Severity: Medium

Regressed: https://cluster-fuzz.appspot.com/revisions?job=linux_msan_chrome&range=445274:445281
Fixed: https://cluster-fuzz.appspot.com/revisions?job=linux_msan_chrome&range=445391:445491

Minimized Testcase (202.80 Kb): https://cluster-fuzz.appspot.com/download/AMIfv95k15Yz9tjTTyKM7syRsK6Er9mzSfhBx1-5a4zxrSDHFxwOhz2BBtXo3OT-VW0JYOtGGm2yoSZCYNh1LB6K1rwrTtbvikZ58W2ZBnvaaQGeUpN3vIKseF5m7L57y7JQuQrHC3k3gDNc9a6dmVpOb_G3_P6sN0yWaogy84mXj__BeeKfYwXHRB5yYcBDnk78RBmmMPyWNbtabXhOfuL0VJbe9n_ypzUjKtz4OsOGbBW7GxXQQymv8U66sUW2GIqT6KvrW61d-nd_icvPywbc8s8QNzofxC73jaaGAZ8J6O8Tv0WbHVe3zjyOiWwF80OA4CGgYCc0EON7aG5RQoK_-JbVqTtGQr_Nswwj9pjfAxXUMcOjI9Q?testcase_id=5433787745042432

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 9 by ClusterFuzz, Jan 24 2017

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

If this is incorrect, please add ClusterFuzz-Wrong label and re-open the issue.
Project Member

Comment 10 by sheriffbot@chromium.org, Jan 24 2017

Labels: -Restrict-View-SecurityTeam Restrict-View-SecurityNotify
This should repro the uninitialized value at src/pathops/SkOpAngle.cpp:834:13 in SkOpAngle::insert(SkOpAngle*)

static void release_8(skiatest::Reporter* reporter, const char* filename) {
    SkPath path;
    path.setFillType((SkPath::FillType) 0);
path.setFillType(SkPath::kWinding_FillType);
path.moveTo(SkBits2Float(0x410c0000), SkBits2Float(0x41880000));  // 8.75f, 17
path.cubicTo(SkBits2Float(0x41000000), SkBits2Float(0x41880000), SkBits2Float(0x40e40000), SkBits2Float(0x41840000), SkBits2Float(0x40d80000), SkBits2Float(0x41780000));  // 8, 17, 7.125f, 16.5f, 6.75f, 15.5f
path.lineTo(SkBits2Float(0x3f800000), SkBits2Float(0x40400000));  // 1, 3
path.cubicTo(SkBits2Float(0x3f000000), SkBits2Float(0x3ff00000), SkBits2Float(0x3fc00000), SkBits2Float(0x00000000), SkBits2Float(0x40000000), SkBits2Float(0x00000000));  // 0.5f, 1.875f, 1.5f, 0, 2, 0
path.lineTo(SkBits2Float(0x41da0000), SkBits2Float(0x00000000));  // 27.25f, 0
path.cubicTo(SkBits2Float(0x41e00000), SkBits2Float(0x00000000), SkBits2Float(0x41e70000), SkBits2Float(0x3f000000), SkBits2Float(0x41ea0000), SkBits2Float(0x3fc00000));  // 28, 0, 28.875f, 0.5f, 29.25f, 1.5f
path.lineTo(SkBits2Float(0x420c0000), SkBits2Float(0x41600000));  // 35, 14
path.cubicTo(SkBits2Float(0x420e0000), SkBits2Float(0x41720000), SkBits2Float(0x420a0000), SkBits2Float(0x41880000), SkBits2Float(0x42080000), SkBits2Float(0x41880000));  // 35.5f, 15.125f, 34.5f, 17, 34, 17
path.lineTo(SkBits2Float(0x410c0000), SkBits2Float(0x41880000));  // 8.75f, 17
path.close();

    SkPath path1(path);
    path.reset();
    path.setFillType((SkPath::FillType) 0);
path.setFillType(SkPath::kWinding_FillType);
path.moveTo(SkBits2Float(0x411c0000), SkBits2Float(0x41800000));  // 9.75f, 16
path.cubicTo(SkBits2Float(0x41100000), SkBits2Float(0x41800000), SkBits2Float(0x41020000), SkBits2Float(0x41780000), SkBits2Float(0x40f80000), SkBits2Float(0x41680000));  // 9, 16, 8.125f, 15.5f, 7.75f, 14.5f
path.lineTo(SkBits2Float(0x40000000), SkBits2Float(0x40000000));  // 2, 2
path.cubicTo(SkBits2Float(0x40000000), SkBits2Float(0x3fc00000), SkBits2Float(0x40100000), SkBits2Float(0x3f800000), SkBits2Float(0x40400000), SkBits2Float(0x3f800000));  // 2, 1.5f, 2.25f, 1, 3, 1
path.lineTo(SkBits2Float(0x41d20000), SkBits2Float(0x3f800000));  // 26.25f, 1
path.cubicTo(SkBits2Float(0x41d80000), SkBits2Float(0x3f800000), SkBits2Float(0x41df0000), SkBits2Float(0x3fc00000), SkBits2Float(0x41e20000), SkBits2Float(0x40200000));  // 27, 1, 27.875f, 1.5f, 28.25f, 2.5f
path.lineTo(SkBits2Float(0x42080000), SkBits2Float(0x41700000));  // 34, 15
path.cubicTo(SkBits2Float(0x42080000), SkBits2Float(0x41780000), SkBits2Float(0x42070000), SkBits2Float(0x41800000), SkBits2Float(0x42040000), SkBits2Float(0x41800000));  // 34, 15.5f, 33.75f, 16, 33, 16
path.lineTo(SkBits2Float(0x411c0000), SkBits2Float(0x41800000));  // 9.75f, 16
path.close();

    SkPath path2(path);
    testPathOp(reporter, path1, path2, (SkPathOp) 0, filename);
}

Labels: -ReleaseBlock-Beta -M-57 M-58
Labels: -reward-topanel reward-unpaid reward-1000
Congratulations! $1,000 for this find.
Labels: -reward-unpaid reward-inprocess
Project Member

Comment 16 by sheriffbot@chromium.org, May 2 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