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

Issue 860857 link

Starred by 2 users

Issue metadata

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



Sign in to add a comment

CHECK failure: rva_lo_bits & 0xFFF == rva_lo_bits in reloc_utils.cc

Project Member Reported by ClusterFuzz, Jul 7

Issue description

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

Fuzzer: libFuzzer_zucchini_disassembler_win32_fuzzer
Job Type: libfuzzer_chrome_asan_debug
Platform Id: linux

Crash Type: CHECK failure
Crash Address: 
Crash State:
  rva_lo_bits & 0xFFF == rva_lo_bits in reloc_utils.cc
  zucchini::RelocWriterWin32::PutNext
  ReadAndWriteReferences
  
Sanitizer: address (ASAN)

Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_asan_debug&range=572608:573021

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

Issue filed automatically.

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

Comment 1 by ClusterFuzz, Jul 7

Components: Internals>Installer>Diff
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, Jul 7

Cc: ckitagawa@google.com
Labels: ClusterFuzz-Auto-CC
Automatically adding ccs based on OWNERS file / target commit history.

If this is incorrect, please add ClusterFuzz-Wrong label.
Project Member

Comment 3 by ClusterFuzz, Jul 7

Labels: Test-Predator-Auto-Owner
Owner: ckitagawa@chromium.org
Status: Assigned (was: Untriaged)
Automatically assigning owner based on suspected regression changelist https://chromium.googlesource.com/chromium/src/+/4b61560a53200a2231605d17b1144cd3ccd6731d ([Zucchini] Increase disassembler_win32_fuzzer coverage).

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, Jul 9

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

commit e8d1c97b22ece997e5aa5d87d29ef150b6857603
Author: Calder Kitagawa <ckitagawa@chromium.org>
Date: Mon Jul 09 18:51:54 2018

[Zucchini] Change DCHECK in reloc_utils.cc to LOG(ERROR)

The (rva_lo_bits & 0xFFF) == rva_lo_bits DCHECK fails when the input
data is invalid. This occurs if the RelocHeader contains |rva_hi_bits|
which are mismatched from the |target_rva| for a given |ref|. This
results in |rva_lo_bits| which are invalid. Until Zucchini is
refactored to support failing to write gracefully we will just print
a loud error and skip the RVA.

This only fails in situations where the input is bad so shouldn't
occur in normal use.

Bug:  860857 
Change-Id: I0472286fc54786be26b95f65e6bd18a587bc0c8b
Reviewed-on: https://chromium-review.googlesource.com/1128812
Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
Reviewed-by: Samuel Huang <huangs@chromium.org>
Cr-Commit-Position: refs/heads/master@{#573390}
[modify] https://crrev.com/e8d1c97b22ece997e5aa5d87d29ef150b6857603/components/zucchini/reloc_utils.cc
[modify] https://crrev.com/e8d1c97b22ece997e5aa5d87d29ef150b6857603/components/zucchini/reloc_utils_unittest.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Jul 9

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8b47a6add32d3f7e1dab7c929f1d7a978beb94cc

commit 8b47a6add32d3f7e1dab7c929f1d7a978beb94cc
Author: Calder Kitagawa <ckitagawa@chromium.org>
Date: Mon Jul 09 18:53:48 2018

[Zucchini] Fix DEX target index CHECK

When a bad input is created the target indices can point far out of
bounds. Based on the fuzzing this should be promoted to a runtime
LOG(ERROR). Once we have a method to fail a write gracefully this
should be updated to fail the write step.

Bug:  860857 
Change-Id: Ie8e4eaf9a655a71e0a2bf3efe2efae52574813db
Reviewed-on: https://chromium-review.googlesource.com/1128813
Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
Reviewed-by: Samuel Huang <huangs@chromium.org>
Cr-Commit-Position: refs/heads/master@{#573393}
[modify] https://crrev.com/8b47a6add32d3f7e1dab7c929f1d7a978beb94cc/components/zucchini/disassembler_dex.cc

Status: Fixed (was: Assigned)
Project Member

Comment 7 by ClusterFuzz, Jul 10

ClusterFuzz has detected this issue as fixed in range 573386:573390.

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

Fuzzer: libFuzzer_zucchini_disassembler_win32_fuzzer
Job Type: libfuzzer_chrome_asan_debug
Platform Id: linux

Crash Type: CHECK failure
Crash Address: 
Crash State:
  rva_lo_bits & 0xFFF == rva_lo_bits in reloc_utils.cc
  zucchini::RelocWriterWin32::PutNext
  ReadAndWriteReferences
  
Sanitizer: address (ASAN)

Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_asan_debug&range=572608:573021
Fixed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_asan_debug&range=573386:573390

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

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 8 by ClusterFuzz, Jul 10

Labels: ClusterFuzz-Verified
Status: Verified (was: Fixed)
ClusterFuzz testcase 5563718365347840 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