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

Issue 784869 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Email to this user bounced
Closed: Nov 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug-Security



Sign in to add a comment

pobfuzz: SkTextBlob::Deserialize -> SkPaint::unflatten heap-buffer-overflow

Project Member Reported by ClusterFuzz, Nov 14 2017

Issue description

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

Fuzzer: libFuzzer_paint_op_buffer_fuzzer
Job Type: libfuzzer_chrome_asan
Platform Id: linux

Crash Type: Heap-buffer-overflow READ 4
Crash Address: 0x607000001258
Crash State:
  SkReader32::readScalar
  SkPaint::unflatten
  SkTextBlob::MakeFromBuffer
  
Sanitizer: address (ASAN)

Recommended Security Severity: Medium

Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_asan&range=515040:515064

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

Issue filed automatically.

See https://chromium.googlesource.com/chromium/src/+/master/testing/libfuzzer/reference.md for more information.
 
Project Member

Comment 1 by ClusterFuzz, Nov 14 2017

Labels: Test-Predator-Auto-Owner
Owner: vmp...@chromium.org
Status: Assigned (was: Untriaged)
Automatically assigning owner based on suspected regression changelist https://chromium.googlesource.com/chromium/src/+/06970f10e5aab4e7b49196a335f9fbca1df5fa16 (Reland "oop: Implement linux oop fonts support.").

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

Comment 2 by vmp...@chromium.org, Nov 14 2017

Cc: enne@chromium.org
Labels: Pri-2

Comment 3 by enne@chromium.org, Nov 14 2017

Cc: bsalomon@chromium.org
Summary: pobfuzz: SkTextBlob::Deserialize -> SkPaint::unflatten heap-buffer-overflow (was: Heap-buffer-overflow in SkReader32::readScalar)

Comment 4 by enne@chromium.org, Nov 14 2017

Components: Internals>Skia

Comment 5 by mmoroz@chromium.org, Nov 14 2017

Labels: M-64

Comment 6 by vmp...@chromium.org, Nov 14 2017

Cc: vmp...@chromium.org
Owner: bsalomon@chromium.org
The problem here is that the buffer isn't big enough to contain SkPaint, so deserialization fails. We could ensure that the buffer is "big enough", but I'm unsure what big enough would be here. Even so, I think this problem can still occur in the middle of the buffer. I think there needs to be a failure mode in Skia.
Owner: reed@chromium.org
Project Member

Comment 8 by sheriffbot@chromium.org, Nov 15 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 9 by sheriffbot@chromium.org, Nov 15 2017

Labels: -Pri-2 Pri-1
Project Member

Comment 10 by bugdroid1@chromium.org, Nov 15 2017

The following revision refers to this bug:
  https://skia.googlesource.com/skia/+/e84b482b763e2e2f39722b495e24c82b4859dc8c

commit e84b482b763e2e2f39722b495e24c82b4859dc8c
Author: Mike Reed <reed@google.com>
Date: Wed Nov 15 17:31:46 2017

use validating readbuffer

Bug:784869
Change-Id: Iaf43e14ec2ad72d061e7de25364fb481229d7651
Reviewed-on: https://skia-review.googlesource.com/71764
Commit-Queue: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>

[modify] https://crrev.com/e84b482b763e2e2f39722b495e24c82b4859dc8c/src/core/SkTextBlob.cpp

Project Member

Comment 11 by ClusterFuzz, Nov 16 2017

ClusterFuzz has detected this issue as fixed in range 516771:516815.

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

Fuzzer: libFuzzer_paint_op_buffer_fuzzer
Job Type: libfuzzer_chrome_asan
Platform Id: linux

Crash Type: Heap-buffer-overflow READ 4
Crash Address: 0x607000001258
Crash State:
  SkReader32::readScalar
  SkPaint::unflatten
  SkTextBlob::MakeFromBuffer
  
Sanitizer: address (ASAN)

Recommended Security Severity: Medium

Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_asan&range=515040:515064
Fixed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_asan&range=516771:516815

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

See https://chromium.googlesource.com/chromium/src/+/master/testing/libfuzzer/reference.md 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 12 by ClusterFuzz, Nov 16 2017

Labels: ClusterFuzz-Verified
Status: Verified (was: Assigned)
ClusterFuzz testcase 6539942556860416 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 13 by sheriffbot@chromium.org, Nov 16 2017

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

Comment 14 by sheriffbot@chromium.org, Feb 22 2018

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
Project Member

Comment 15 by sheriffbot@chromium.org, Mar 27 2018

Labels: -Security_Impact-Head -M-64 M-65 Security_Impact-Stable
Labels: -ReleaseBlock-Stable

Sign in to add a comment