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

Issue 898310 link

Starred by 2 users

Issue metadata

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



Sign in to add a comment

Null-dereference READ in v8::internal::String::NonAsciiStart

Project Member Reported by ClusterFuzz, Oct 23

Issue description

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

Fuzzer: ochang_js_fuzzer
Job Type: linux_cfi_d8
Platform Id: linux

Crash Type: Null-dereference READ
Crash Address: 0x000000000014
Crash State:
  v8::internal::String::NonAsciiStart
  v8::internal::Factory::NewStringFromUtf8
  v8::internal::WasmModuleObject::ExtractUtf8StringFromModuleBytes
  
Sanitizer: cfi (CFI)

Regressed: https://clusterfuzz.com/revisions?job=linux_cfi_d8&range=53976:53977

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

Issue filed automatically.

See https://github.com/google/clusterfuzz-tools for more information.
 
Project Member

Comment 1 by ClusterFuzz, Oct 23

Components: Blink>JavaScript>GC Blink>JavaScript>WebAssembly
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, Oct 23

Labels: Test-Predator-Auto-Owner
Owner: clemensh@chromium.org
Status: Assigned (was: Untriaged)
Automatically assigning owner based on suspected regression changelist https://chromium.googlesource.com/v8/v8/+/9635e1a3037bbc9355eb4cbb84b9f2415c270fc1 ([wasm] Move wire bytes to the NativeModule).

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 ClusterFuzz, Oct 23

Automatically assigning owner based on suspected regression changelist https://chromium.googlesource.com/v8/v8/+/9635e1a3037bbc9355eb4cbb84b9f2415c270fc1 ([wasm] Move wire bytes to the NativeModule).

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 4 by bugdroid1@chromium.org, Oct 24

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

commit ecbf6296c7f8edee3096da1611623a786410076e
Author: Clemens Hammacher <clemensh@chromium.org>
Date: Wed Oct 24 12:43:24 2018

[wasm] Fix streaming instantiation with no code section

Because of ordering issues we didn't set the wire bytes on the
{NativeModule} during {OnFinishedStream}. We then failed during
instantiation when trying to read the import names from the wire bytes.

This CL fixes this locally without much code churn. I plan to clean up
the interaction between {AsyncCompileJob} and {AsyncStreamingProcessor}
in a follow-up CL.

R=ahaas@chromium.org

Bug:  chromium:898310 
Change-Id: I06337a04ba380f87b803f325323208298d363f41
Reviewed-on: https://chromium-review.googlesource.com/c/1296467
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56938}
[modify] https://crrev.com/ecbf6296c7f8edee3096da1611623a786410076e/src/wasm/module-compiler.cc
[modify] https://crrev.com/ecbf6296c7f8edee3096da1611623a786410076e/src/wasm/module-compiler.h
[modify] https://crrev.com/ecbf6296c7f8edee3096da1611623a786410076e/test/mjsunit/wasm/async-compile.js

Project Member

Comment 5 by ClusterFuzz, Oct 25

ClusterFuzz has detected this issue as fixed in range 56937:56938.

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

Fuzzer: ochang_js_fuzzer
Job Type: linux_cfi_d8
Platform Id: linux

Crash Type: Null-dereference READ
Crash Address: 0x000000000014
Crash State:
  v8::internal::String::NonAsciiStart
  v8::internal::Factory::NewStringFromUtf8
  v8::internal::WasmModuleObject::ExtractUtf8StringFromModuleBytes
  
Sanitizer: cfi (CFI)

Regressed: https://clusterfuzz.com/revisions?job=linux_cfi_d8&range=53976:53977
Fixed: https://clusterfuzz.com/revisions?job=linux_cfi_d8&range=56937:56938

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

See https://github.com/google/clusterfuzz-tools 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 6 by ClusterFuzz, Oct 25

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

If this is incorrect, please add ClusterFuzz-Wrong label and re-open the issue.
Issue 898104 has been merged into this issue.
Labels: Merge-Request-70 Merge-Request-71
Just tested locally. This also reproduces on the 7.0 and 7.1 branch. Requesting backmerge.
The fix is in today's Canary which looks good so far. Will not merge before tomorrow though, and will check Canary results again before merging.
Project Member

Comment 9 by sheriffbot@chromium.org, Oct 25

Labels: -Merge-Request-70 Merge-Review-70 Hotlist-Merge-Review
This bug requires manual review: Request affecting a post-stable build
Please contact the milestone owner if you have questions.
Owners: benmason@(Android), kariahda@(iOS), geohsu@(ChromeOS), abdulsyed@(Desktop)

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

Comment 10 by sheriffbot@chromium.org, Oct 25

Labels: -Merge-Request-71 Merge-Review-71
This bug requires manual review: M71 has already been promoted to the beta branch, so this requires manual review
Please contact the milestone owner if you have questions.
Owners: benmason@(Android), kariahda@(iOS), kbleicher@(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Cc: awhalley@google.com habl...@google.com
Labels: -Merge-Review-71 Merge-Approved-71
+awhalley@/hablich@

how critical is this and can we wait until M71 to fix this?

Approving this merge for M71. 
Canary still looks good, merging to M-71.
Project Member

Comment 13 by bugdroid1@chromium.org, Oct 26

Labels: merge-merged-7.1
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/8302482069274f3f9f1f410167d89260e462f99a

commit 8302482069274f3f9f1f410167d89260e462f99a
Author: Clemens Hammacher <clemensh@chromium.org>
Date: Fri Oct 26 10:35:29 2018

Merged: [wasm] Fix streaming instantiation with no code section

Because of ordering issues we didn't set the wire bytes on the
{NativeModule} during {OnFinishedStream}. We then failed during
instantiation when trying to read the import names from the wire bytes.

This CL fixes this locally without much code churn. I plan to clean up
the interaction between {AsyncCompileJob} and {AsyncStreamingProcessor}
in a follow-up CL.

R=ahaas@chromium.org

Bug:  chromium:898310 
Change-Id: I304f99a6d50ca4f488b3ae7a0707c824815016ad
Originally-reviewed-on: https://chromium-review.googlesource.com/c/1296467
No-Try: true
No-Tree-Checks: true
No-Presubmit: true
Reviewed-on: https://chromium-review.googlesource.com/c/1301474
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/branch-heads/7.1@{#18}
Cr-Branched-From: f70aaa8ab2e8815505a6145c745e50d8328cd28c-refs/heads/7.1.302@{#1}
Cr-Branched-From: 1dbcc78efa17a9047f7e923958087ef9eec43066-refs/heads/master@{#56462}
[modify] https://crrev.com/8302482069274f3f9f1f410167d89260e462f99a/src/wasm/module-compiler.cc
[modify] https://crrev.com/8302482069274f3f9f1f410167d89260e462f99a/src/wasm/module-compiler.h
[modify] https://crrev.com/8302482069274f3f9f1f410167d89260e462f99a/test/mjsunit/wasm/async-compile.js

Labels: -Merge-Approved-71
Labels: -Merge-Review-70 Merge-Approved-70
Please merge this to to 7.0 ASAP.
Project Member

Comment 16 by bugdroid1@chromium.org, Nov 6

Labels: merge-merged-7.0
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/494931365b0477623f55126e360bd2b619728e2f

commit 494931365b0477623f55126e360bd2b619728e2f
Author: Clemens Hammacher <clemensh@chromium.org>
Date: Tue Nov 06 12:32:24 2018

Merged: [wasm] Fix streaming instantiation with no code section

Because of ordering issues we didn't set the wire bytes on the
{NativeModule} during {OnFinishedStream}. We then failed during
instantiation when trying to read the import names from the wire bytes.

This CL fixes this locally without much code churn. I plan to clean up
the interaction between {AsyncCompileJob} and {AsyncStreamingProcessor}
in a follow-up CL.

R=ahaas@chromium.org

Bug:  chromium:898310 
Change-Id: I88a651f4842f05c3316030b15ac096249acab7d7
Originally-reviewed-on: https://chromium-review.googlesource.com/c/1296467
No-Try: true
No-Presubmit: true
No-Tree-Checks: true
Reviewed-on: https://chromium-review.googlesource.com/c/1319587
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/branch-heads/7.0@{#75}
Cr-Branched-From: 6e2adae6f7f8e891cfd01f3280482b20590427a6-refs/heads/7.0.276@{#1}
Cr-Branched-From: bc08a8624cbbea7a2d30071472bc73ad9544eadf-refs/heads/master@{#55424}
[modify] https://crrev.com/494931365b0477623f55126e360bd2b619728e2f/src/wasm/module-compiler.cc
[modify] https://crrev.com/494931365b0477623f55126e360bd2b619728e2f/src/wasm/module-compiler.h
[modify] https://crrev.com/494931365b0477623f55126e360bd2b619728e2f/test/mjsunit/wasm/async-compile.js

Labels: -Merge-Approved-70
Labels: NodeJS-Backport-Done
no more backports needed for Node.js

Sign in to add a comment