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

Issue 709741 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Last visit > 30 days ago
Closed: Apr 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug-Security



Sign in to add a comment

Heap-buffer-overflow in std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<ch

Project Member Reported by ClusterFuzz, Apr 8 2017

Issue description

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

Fuzzer: libfuzzer_v8_wasm_fuzzer
Job Type: libfuzzer_chrome_asan_debug
Platform Id: linux

Crash Type: Heap-buffer-overflow READ 1
Crash Address: 0x6060000008f7
Crash State:
  std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<ch
  CheckLEImpl<const
  traceByteRange
  
Sanitizer: address (ASAN)

Recommended Security Severity: Medium

Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_asan_debug&range=463017:463054

Reproducer Testcase: https://clusterfuzz.com/download/AMIfv94dQNUoJeRIRgUPZ2uI87n_qYlUjJtoYYCiWaIq-CJG6O-1kQlcchtZOU_tjoEq2HZUhujqcr7wO8sjT9rasXn-lWGel3jixNEVvjmC6vb2oLK1F0gAjAmuUJf73HKlaZvGQZOm5X0swtACZOZTv8gxwycspv2Lf-Qzy0JqJEozfxca1ChaiCDLpQbATgpm1RvWYQed0kPioh7ybTV5g4xJFTPg1ph8HbGwiloT3tXlh0a3bOzkhPOrYQV1FN2gLozrUO_cCAGrKsLiHpb6uYwVqLIZkPgQ0QT9Bgq85UslshbY8ob0FJ1PjWDh2X4b8QxT31XXhEiZFLghahOn5aDBpVdnJte6XtlSR6zVwAddQSCEHhg?testcase_id=5481706384785408


Issue filed automatically.

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

Comment 1 by sheriffbot@chromium.org, Apr 8 2017

Labels: M-59
Project Member

Comment 2 by sheriffbot@chromium.org, Apr 8 2017

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, Apr 8 2017

Labels: Pri-1
Components: Blink>JavaScript
Owner: rossberg@chromium.org
Status: Assigned (was: Untriaged)
Nothing really obvious in the V8 change range here, since the crash is in WASM but nothing in the blame changes WASM code. Over to the current V8 sheriff for further triage.
Cc: ahaas@chromium.org

Comment 6 by ahaas@chromium.org, Apr 10 2017

Status: Started (was: Assigned)
Project Member

Comment 7 by bugdroid1@chromium.org, Apr 10 2017

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

commit 72d5f3848ec1ad0ae07b9bf7b049b1a1f2e7f81d
Author: Andreas Haas <ahaas@chromium.org>
Date: Mon Apr 10 14:02:42 2017

Terminate the decoding loop more gracefully.

The decoder has the assumption that it always holds that pc <= end.
However, in the FunctionBodyDecoder, end was set to start to terminate
the decoding loop. Thereby the assumption was violated, which caused a
crash. I set end to pc now to end the decoding loop, which preserves
the assumption and terminates the loop.

BUG= chromium:709741 
TEST=unittests/FunctionBodyDecoderTest.Regression709741
R=clemensh@chromium.org

Change-Id: I5bfd61bdc4809fc16f12ca8611876c66a79aaa36
Reviewed-on: https://chromium-review.googlesource.com/472723
Commit-Queue: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Clemens Hammacher <clemensh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#44524}
[modify] https://crrev.com/72d5f3848ec1ad0ae07b9bf7b049b1a1f2e7f81d/src/wasm/function-body-decoder.cc
[modify] https://crrev.com/72d5f3848ec1ad0ae07b9bf7b049b1a1f2e7f81d/test/unittests/wasm/function-body-decoder-unittest.cc

Project Member

Comment 8 by ClusterFuzz, Apr 11 2017

ClusterFuzz has detected this issue as fixed in range 463054:463440.

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

Fuzzer: libfuzzer_v8_wasm_fuzzer
Job Type: libfuzzer_chrome_asan_debug
Platform Id: linux

Crash Type: Heap-buffer-overflow READ 1
Crash Address: 0x6060000008f7
Crash State:
  std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<ch
  CheckLEImpl<const
  traceByteRange
  
Sanitizer: address (ASAN)

Recommended Security Severity: Medium

Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_asan_debug&range=463017:463054
Fixed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_asan_debug&range=463054:463440

Reproducer Testcase: https://clusterfuzz.com/download/AMIfv94dQNUoJeRIRgUPZ2uI87n_qYlUjJtoYYCiWaIq-CJG6O-1kQlcchtZOU_tjoEq2HZUhujqcr7wO8sjT9rasXn-lWGel3jixNEVvjmC6vb2oLK1F0gAjAmuUJf73HKlaZvGQZOm5X0swtACZOZTv8gxwycspv2Lf-Qzy0JqJEozfxca1ChaiCDLpQbATgpm1RvWYQed0kPioh7ybTV5g4xJFTPg1ph8HbGwiloT3tXlh0a3bOzkhPOrYQV1FN2gLozrUO_cCAGrKsLiHpb6uYwVqLIZkPgQ0QT9Bgq85UslshbY8ob0FJ1PjWDh2X4b8QxT31XXhEiZFLghahOn5aDBpVdnJte6XtlSR6zVwAddQSCEHhg?testcase_id=5481706384785408


See https://chromium.googlesource.com/chromium/src/+/master/testing/libfuzzer/reproducing.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 9 by ClusterFuzz, Apr 11 2017

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

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

Comment 10 by sheriffbot@chromium.org, Apr 11 2017

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

Comment 12 by sheriffbot@chromium.org, Jul 18 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