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

Issue 686511 link

Starred by 3 users

Issue metadata

Status: Verified
Owner:
Closed: Feb 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug



Sign in to add a comment

Out-of-memory in v8_serialized_script_value_fuzzer

Project Member Reported by ClusterFuzz, Jan 29 2017

Issue description

Cc: jbroman@chromium.org
Components: Blink>JavaScript
Labels: Test-Predator-Wrong M-58
jbroman@, could you please take a look and help us to find correct owner?. thank you.
Cc: mummare...@chromium.org
Owner: jbroman@chromium.org
Status: Started (was: Untriaged)
I am the correct owner. I've got a fix out for review (it's a moderately clever way of avoiding the OOM protections by exploiting the fact that objects are converted to string when used as keys, and sparse arrays allow for an extremely large string to be produced with small serialized data -- a very long string of commas).
Project Member

Comment 4 by bugdroid1@chromium.org, Feb 16 2017

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

commit 8990399dc7c2f36ba4f566a415a0823d229dff21
Author: jbroman <jbroman@chromium.org>
Date: Thu Feb 16 13:59:56 2017

ValueDeserializer: Only allow valid keys when deserializing object properties.

The serializer won't ever write a more complex object. Not validating this
allows other things to be used as keys, and converted to string when the
property set actually occurs. It turns out this gives an opportunity to trigger
OOM by giving an object a key which is a very large sparse array (whose string
representation is very large).

This case is now rejected by the deserializer.

BUG= chromium:686511 

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

[modify] https://crrev.com/8990399dc7c2f36ba4f566a415a0823d229dff21/src/value-serializer.cc
[modify] https://crrev.com/8990399dc7c2f36ba4f566a415a0823d229dff21/test/unittests/value-serializer-unittest.cc

Project Member

Comment 5 by ClusterFuzz, Feb 17 2017

Project Member

Comment 6 by ClusterFuzz, Feb 17 2017

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

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

Sign in to add a comment