Security: race condition lead to many fatal Error D in WebAssembly.validate
Reported by
higonggu...@gmail.com,
Dec 12 2017
|
||||||||||||||||||||||||
Issue descriptionVULNERABILITY DETAILS Please provide a brief explanation of the security issue. https://bugs.chromium.org/p/chromium/issues/detail?id=759624 VERSION Chrome Version: [x.x.x.x] + [stable, beta, or dev] Operating System: [Please indicate OS, version, and service pack level] REPRODUCTION CASE Please include a demonstration of the security bug, such as an attached HTML or binary file that reproduces the bug when loaded in Chrome. PLEASE make the file as small as possible and remove any content not required to demonstrate the bug. FOR CRASHES, PLEASE INCLUDE THE FOLLOWING ADDITIONAL INFORMATION Type of crash: [tab, browser, etc.] Crash State: [see link above: stack trace *with symbols*, registers, exception record] Client ID (if relevant): [see link above]
,
Dec 12 2017
,
Dec 12 2017
DCHECKS don't sound that severe. Waiting for security sheriffs to upload it to CF.
,
Dec 12 2017
Looks like we are missing a memcpy of the bytes out of the buffer for the SyncValidate() method.
,
Dec 12 2017
ClusterFuzz is analyzing your testcase. Developers can follow the progress at https://clusterfuzz.com/testcase?key=5464777051865088.
,
Dec 13 2017
Detailed report: https://clusterfuzz.com/testcase?key=5464777051865088 Job Type: linux_asan_d8_dbg Crash Type: DCHECK failure Crash Address: Crash State: !cmp_less(*it, *last) in module-decoder.cc v8::internal::wasm::ModuleDecoderImpl::DecodeExportSection v8::internal::wasm::ModuleDecoderImpl::DecodeSection Sanitizer: address (ASAN) Regressed: https://clusterfuzz.com/revisions?job=linux_asan_d8_dbg&range=46985:46986 Reproducer Testcase: https://clusterfuzz.com/download?testcase_id=5464777051865088 See https://github.com/google/clusterfuzz-tools for more information.
,
Dec 13 2017
Re #3: As I understand it, the problem is that the DCHECK blocks clusterfuzz from knowing what happens in the absence of the DCHECK.
,
Dec 13 2017
Detailed report: https://clusterfuzz.com/testcase?key=5464777051865088 Job Type: linux_asan_d8_dbg Crash Type: DCHECK failure Crash Address: Crash State: !cmp_less(*it, *last) in module-decoder.cc v8::internal::wasm::ModuleDecoderImpl::DecodeExportSection v8::internal::wasm::ModuleDecoderImpl::DecodeSection Sanitizer: address (ASAN) Regressed: https://clusterfuzz.com/revisions?job=linux_asan_d8_dbg&range=46985:46986 Reproducer Testcase: https://clusterfuzz.com/download?testcase_id=5464777051865088 See https://github.com/google/clusterfuzz-tools for more information.
,
Dec 13 2017
I think we've treated other DCHECK triggers in d8 as High severity. Without the DCHECK it is possible this could lead to memory corruption in a sandboxed process. I've also manually checked that the test case crashes builds going back to August.
,
Dec 13 2017
,
Dec 14 2017
,
Dec 27 2017
titzer: 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
,
Jan 10 2018
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/f3c67392acb9804598cc23a142b31abdf4aeaac3 commit f3c67392acb9804598cc23a142b31abdf4aeaac3 Author: Ben L. Titzer <titzer@chromium.org> Date: Wed Jan 10 10:49:10 2018 [wasm] Improve copying behavior for SyncCompile and SyncValidate This fixes a long-standing TODO to only make a copy of a module's wire bytes if the input is a SharedArrayBuffer and also fixes the concurrent-modification bug for synchronous validation. R=clemensh@chromium.org BUG= chromium:794091 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I8d2f20a9aeedbc306434853f8f6cfc070a24cf97 Reviewed-on: https://chromium-review.googlesource.com/856559 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#50472} [modify] https://crrev.com/f3c67392acb9804598cc23a142b31abdf4aeaac3/src/api.cc [modify] https://crrev.com/f3c67392acb9804598cc23a142b31abdf4aeaac3/src/wasm/module-compiler.cc [modify] https://crrev.com/f3c67392acb9804598cc23a142b31abdf4aeaac3/src/wasm/module-compiler.h [modify] https://crrev.com/f3c67392acb9804598cc23a142b31abdf4aeaac3/src/wasm/wasm-js.cc [modify] https://crrev.com/f3c67392acb9804598cc23a142b31abdf4aeaac3/test/fuzzer/wasm-async.cc
,
Jan 10 2018
,
Jan 10 2018
,
Jan 11 2018
ClusterFuzz has detected this issue as fixed in range 50471:50472. Detailed report: https://clusterfuzz.com/testcase?key=5464777051865088 Job Type: linux_asan_d8_dbg Crash Type: DCHECK failure Crash Address: Crash State: !cmp_less(*it, *last) in module-decoder.cc v8::internal::wasm::ModuleDecoderImpl::DecodeExportSection v8::internal::wasm::ModuleDecoderImpl::DecodeSection Sanitizer: address (ASAN) Regressed: https://clusterfuzz.com/revisions?job=linux_asan_d8_dbg&range=46985:46986 Fixed: https://clusterfuzz.com/revisions?job=linux_asan_d8_dbg&range=50471:50472 Reproducer Testcase: https://clusterfuzz.com/download?testcase_id=5464777051865088 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.
,
Jan 11 2018
ClusterFuzz testcase 5464777051865088 is verified as fixed, so closing issue as verified. If this is incorrect, please add ClusterFuzz-Wrong label and re-open the issue.
,
Jan 16 2018
,
Jan 22 2018
*** Boilerplate reminders! *** Please do NOT publicly disclose details until a fix has been released to all our users. Early public disclosure may cancel the provisional reward. Also, please be considerate about disclosure when the bug affects a core library that may be used by other products. Please do NOT share this information with third parties who are not directly involved in fixing the bug. Doing so may cancel the provisional reward. Please be honest if you have already disclosed anything publicly or to third parties. Lastly, we understand that some of you are not interested in money. We offer the option to donate your reward to an eligible charity. If you prefer this option, let us know and we will also match your donation - subject to our discretion. Any rewards that are unclaimed after 12 months will be donated to a charity of our choosing. *********************************
,
Jan 22 2018
Nice one! The VRP panel decided to award $3,000 for this report :-)
,
Jan 22 2018
,
Jan 22 2018
,
Feb 8 2018
,
Feb 9 2018
This bug requires manual review: M65 has already been promoted to the beta branch, so this requires manual review Please contact the milestone owner if you have questions. Owners: cmasso@(Android), cmasso@(iOS), bhthompson@(ChromeOS), govind@(Desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Feb 9 2018
[Bulk Edit] +awhalley@ (Security TPM) for M65 merge review
,
Feb 9 2018
govind@ - good for 65
,
Feb 9 2018
Approving merge to M65 branch 3325 based on comment #28. Please merge ASAP so we can pick it up for next week Beta release. Thank you.
,
Feb 12 2018
This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible! If all merges have been completed, please remove any remaining Merge-Approved labels from this issue. 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
,
Feb 12 2018
The fix was landed before the M65 branch point. Removing Merge-Approved label.
,
Mar 6 2018
,
Mar 6 2018
,
Apr 18 2018
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
,
Apr 25 2018
,
Nov 14
|
||||||||||||||||||||||||
►
Sign in to add a comment |
||||||||||||||||||||||||
Comment 1 by higonggu...@gmail.com
, Dec 12 2017796 bytes
796 bytes View Download
335 bytes
335 bytes Download