New issue
Advanced search Search tips

Issue 820819 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Mar 2018
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug



Sign in to add a comment

DCHECK failure in function->has_prototype_slot() in objects.cc

Project Member Reported by ClusterFuzz, Mar 11 2018

Issue description

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

Fuzzer: libFuzzer_v8_serialized_script_value_fuzzer
Job Type: libfuzzer_chrome_asan_debug
Platform Id: linux

Crash Type: DCHECK failure
Crash Address: 
Crash State:
  function->has_prototype_slot() in objects.cc
  v8::internal::JSFunction::EnsureHasInitialMap
  v8::internal::Factory::NewJSObject
  
Sanitizer: address (ASAN)

Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_asan_debug&range=542095:542101

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

Issue filed automatically.

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

Comment 1 by ClusterFuzz, Mar 11 2018

Components: Blink>JavaScript
Labels: Test-Predator-Auto-Components
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, Mar 11 2018

Labels: Test-Predator-Auto-Owner
Owner: jkummerow@chromium.org
Status: Assigned (was: Untriaged)
Automatically assigning owner based on suspected regression changelist https://chromium.googlesource.com/v8/v8/+/96e2e8588d851c46be5b948b3479e89cb605a429 (Reland "[bigint] Serialization support for BigInts").

If this is incorrect, please let us know why and apply the Test-Predator-Wrong-CLs label. If you aren't the correct owner for this issue, please unassign yourself as soon as possible so it can be re-triaged.
Project Member

Comment 3 by sheriffbot@chromium.org, Mar 12 2018

Labels: M-66
Project Member

Comment 4 by sheriffbot@chromium.org, Mar 12 2018

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, Mar 12 2018

Labels: Pri-1
Project Member

Comment 6 by sheriffbot@chromium.org, Mar 13 2018

Labels: -Security_Impact-Head Security_Impact-Beta
Project Member

Comment 7 by bugdroid1@chromium.org, Mar 13 2018

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

commit a16ecd9e9f8ec57cbbcb99e091947ce8a28dbd8b
Author: Jakob Kummerow <jkummerow@chromium.org>
Date: Tue Mar 13 18:51:11 2018

[bigint] Require --harmony-bigint for deserialization

While deserializing a BigInt with the --harmony-bigint flag off is
harmless in itself, trying to wrap one as an Object (either during
deserialization of a JSValue or later from user code) requires the
BigInt constructor to be available. Since there's no strong reason
to support deserialization of BigInts without the flag, this patch
simply disallows it, which fixes the problem.

Bug:  chromium:820819 
Change-Id: I024a4f13715bbe95ee8eb6e1710e8f47ca227644
Reviewed-on: https://chromium-review.googlesource.com/959802
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51911}
[modify] https://crrev.com/a16ecd9e9f8ec57cbbcb99e091947ce8a28dbd8b/src/value-serializer.cc

Labels: -Type-Bug-Security -Restrict-View-SecurityTeam -Security_Severity-High -Security_Impact-Beta -ReleaseBlock-Stable Type-Bug
Status: Fixed (was: Assigned)
I don't think this has security implications, as BigInts are still behind a flag. The bug was in some corner case around toggling that flag on and off and having certain (custom-created!) local state persist between such sessions.
Project Member

Comment 9 by ClusterFuzz, Mar 14 2018

ClusterFuzz has detected this issue as fixed in range 542962:542972.

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

Fuzzer: libFuzzer_v8_serialized_script_value_fuzzer
Job Type: libfuzzer_chrome_asan_debug
Platform Id: linux

Crash Type: DCHECK failure
Crash Address: 
Crash State:
  function->has_prototype_slot() in objects.cc
  v8::internal::JSFunction::EnsureHasInitialMap
  v8::internal::Factory::NewJSObject
  
Sanitizer: address (ASAN)

Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_asan_debug&range=542095:542101
Fixed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_asan_debug&range=542962:542972

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

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 10 by ClusterFuzz, Mar 14 2018

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

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

Sign in to add a comment