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

Issue 656554 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Dec 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 1
Type: Bug



Sign in to add a comment

SyzyAsan can't handle the allocations > 1 GB.

Project Member Reported by ClusterFuzz, Oct 17 2016

Issue description

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

Fuzzer: inferno_twister
Job Type: windows_syzyasan_chrome
Platform Id: windows

Crash Type: Corrupt-block
Crash Address: 0x7fff1030
Crash State:
  base::allocator::WinHeapFree
  SkRegion::setPath
  SkRasterClip::setPath
  
Regressed: https://cluster-fuzz.appspot.com/revisions?job=windows_syzyasan_chrome&range=425593:425595

Minimized Testcase (0.44 Kb): https://cluster-fuzz.appspot.com/download/AMIfv9649AX8rzbxpeXCJyIZLDx4ipc3awZPqBMSWK1Ef3KgwYse98-v6AqfPB4YIY79q0zV7_UbtzhKx-iPkhgxcpaUQZSDaBsiuMIRyJJz8q-oLJZ42b5XIofENhODphC3tAsoF_oBkBV0oeL8DaxvituIMc7v3w?testcase_id=5337085240410112

Issue filed automatically.

See https://dev.chromium.org/Home/chromium-security/bugs/reproducing-clusterfuzz-bugs for more information.
 
Project Member

Comment 1 by sheriffbot@chromium.org, Oct 17 2016

Labels: M-55
Project Member

Comment 2 by sheriffbot@chromium.org, Oct 17 2016

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, Oct 17 2016

Labels: Pri-1

Comment 4 by mmoroz@chromium.org, Oct 17 2016

Components: Internals>Skia
Owner: reed@chromium.org
Status: Available (was: Untriaged)
reed@, could you please help to find an owner?
Project Member

Comment 5 by sheriffbot@chromium.org, Oct 18 2016

Labels: -Security_Impact-Head Security_Impact-Beta
Project Member

Comment 6 by sheriffbot@chromium.org, Oct 18 2016

Status: Assigned (was: Available)
Labels: -ReleaseBlock-Beta ReleaseBlock-Stable

Comment 8 by gov...@chromium.org, Oct 26 2016

**** Bulk edit -  please ignore if not applicable ****

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

Comment 9 by sheriffbot@chromium.org, Oct 31 2016

reed: Uh oh! This issue still open and hasn't been updated in the last 14 days. This is a serious vulnerability, and we want to ensure that there's progress. Could you please leave an update with the current status and any potential blockers?

If you're not the right owner for this issue, could you please remove yourself as soon as possible or help us find the right one?

If the issue is fixed or you can't reproduce it, please close the bug. If you've started working on a fix, please set the status to Started.

Thanks for your time! To disable nags, add the Disable-Nags label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
**** Bulk edit -  please ignore if not applicable ****

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


Comment 11 by hcm@chromium.org, Oct 31 2016

Cc: reed@google.com
Owner: ----
Not seeing a smoking gun Skia-side, and no changes in this area recently..wondering if this is really being caused by our code.

Comment 12 by ta...@google.com, Oct 31 2016

Cc: ta...@google.com krunt...@gmail.com
Owner: siggi@chromium.org
siggi@, I wonder if you can help find the owner for this. Thanks!
Seb, the block info doesn't make sense to me here. The sum of the user size and the start address exceeds 32 bits. Is there perhaps an integer overflow in the heap allocation implementation?

Report for c:\clusterfuzz\slave-bot\inputs\crash-stacks\minidump-00007244-00009992-341713859.dmp
Bad access information:
  feature_set: 1
  corrupt_ranges_reported: 0
  asan_parameters: common::AsanParameters
  user_size: 0y110000000000000000000000011100 (0x3000001c)
  milliseconds_since_free: 0
  heap_type: kWinHeap
  corrupt_range_count: 0
  access_size: 0
  free_tid: 0
  free_stack_size: 0 
  corrupt_ranges: (null)
  heap_is_corrupt: 0
  alloc_stack: [62] 0x70aaa2ae Void
  shadow_memory: [512]  ""
  alloc_stack_size: 0x39 9
  header: 0x7fff1020 Void
  shadow_info: [128]  ""
  error_type: CORRUPT_BLOCK
  free_stack: [62] (null)
  analysis: agent::asan::BlockAnalysisResult
  alloc_tid: 0x2708
  state: 0y00
  location: 0x7fff1030 Void
  context: _CONTEXT
  crash_stack_id: 0x5d93d4a7
  access_mode: ASAN_UNKNOWN_ACCESS
  block_info: agent::asan::AsanBlockInfo
  corrupt_block_count: 0
**** Bulk edit -  please ignore if not applicable ****

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

Also due to Thanksgiving holidays in US, please make sure all fixes are ready and merged to M55 latest by 5:00 PM PT Friday, 11/18/16.
Cc: robertph...@google.com hcm@google.com siggi@google.com
Owner: sebmarchand@chromium.org
Assigning to Seb, as this looks like a SyzyASAN bug. I could have sworn I assigned this to Seb already in #13.
I'm looking at this.
Sorry for the delay, I was busy hunting down another P0, I'm back on this one now.
Cc: chrisha@chromium.org
Components: -Internals>Skia
Labels: -Security_Severity-High -Security_Impact-Beta -ReleaseBlock-Stable
Summary: SyzyAsan can't handle the allocations > 1 GB. (was: Corrupt-block in base::allocator::WinHeapFree)
This is effectively a bug in SyzyAsan, removing the ReleaseBlock and the Security labels for now.

The problem is that the SyzyAsan block header only support allocations < 1 GB (we only keep 30 bits to store the block size), but in this test we're allocating a 1.75 GB block (0x7000001c bytes), which succeed but the first bit  of the block_header->body_size field gets truncated (we store a value of 0x3000001c) and so when comes try to free the block we use an invalid size to compute the block's checksum and it makes us suspect that this block is corrupt.

We can fix it by adding one bit to the BlockHeader.block_size field or by preventing from allocating a block > 1GB. I'll try to go with the first suggestion.
Labels: -Type-Bug-Security Type-Bug
Thanks Seb - is that also the case for  issue 633470 ?
Project Member

Comment 22 by bugdroid1@chromium.org, Nov 29 2016

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

commit 8df5e216e947e285bad1933054308159f9954b43
Author: sebmarchand <sebmarchand@chromium.org>
Date: Tue Nov 29 20:44:18 2016

Roll Syzygy DEPS to v0.8.24.0

Changelog:
[ea4e050] SyzyAsan - Support the allocations with a size > 1GB.
[a1f6aa6] SyzyAsan - Remove support for the nested allocations.

BUG= 656554 

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

[modify] https://crrev.com/8df5e216e947e285bad1933054308159f9954b43/DEPS

Status: Fixed (was: Assigned)
Project Member

Comment 24 by sheriffbot@chromium.org, Dec 8 2016

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

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