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

Issue 675376 link

Starred by 2 users

Issue metadata

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



Sign in to add a comment

Use-of-uninitialized-value in blink::HTMLTreeBuilderSimulator::simulate

Project Member Reported by ClusterFuzz, Dec 17 2016

Issue description

Detailed report: https://cluster-fuzz.appspot.com/testcase?key=5376618999840768

Fuzzer: libfuzzer_renderer_tree_fuzzer
Job Type: libfuzzer_chrome_msan
Platform Id: linux

Crash Type: Use-of-uninitialized-value
Crash Address: 
Crash State:
  blink::HTMLTreeBuilderSimulator::simulate
  blink::BackgroundHTMLParser::pumpTokenizer
  base::internal::RunMixin<base::Callback<void
  
Recommended Security Severity: Medium

Regressed: https://cluster-fuzz.appspot.com/revisions?job=libfuzzer_chrome_msan&range=439337:439343

Minimized Testcase (0.09 Kb):
Download: https://cluster-fuzz.appspot.com/download/AMIfv954YXbiAjx-XB6CorHqHD6SbaosIOLaF69RxJspcXkQv198kny1kMhI43KqB0xQfVcIIXxTBPdsyCQZ6aZUVVmNCOCl5uIo8HXh6OYBFlzGjsAzXA85FQM8APxCBes062lZeRHmAedt4AGwP5dTesJKIT1ZTg?testcase_id=5376618999840768
[{"e":"thead"},{"c":[{"t":"*�!!c*(�203685720357203685\u0001d�\u0000"}],"e":"button"}]


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, Dec 18 2016

Labels: M-57
Project Member

Comment 2 by sheriffbot@chromium.org, Dec 18 2016

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, Dec 18 2016

Labels: Pri-1
Components: Blink>HTML>Parser
Owner: csharrison@chromium.org
Status: Assigned (was: Untriaged)
Can you a PTAL or assign this to someone who can? Thank you.
Cc: kcc@chromium.org dominicc@chromium.org kouhei@chromium.org
I don't think it's a regression, could this be caused by a recent roll in libfuzzer?
https://chromium.googlesource.com/chromium/llvm-project/llvm/lib/Fuzzer/+log/4d737af..2d19afd

The code does not look unusual. ccing usual suspects for parser stuff, and kcc for a libfuzzer explanation.

Comment 6 by kcc@chromium.org, Dec 27 2016

newer libFuzzer might have found this bug, so the regression range sounds bogus.
But the bug report itself looks legitimate

Comment 7 by kouhei@chromium.org, Dec 31 2016

Labels: -Pri-1 Pri-2
I think this is caused by ctor initializer for CompactHTMLToken::m_selfClosing missing. I don't have a corp machine to upload CL, but this isn't a security bug as we are checking for Token::End type in the AND expr.

Lowering to P2 for now.

Comment 8 by kenrb@chromium.org, Dec 31 2016

Labels: -Type-Bug-Security -Restrict-View-SecurityTeam -Security_Severity-Medium -Security_Impact-Head Type-Bug
Thanks for the explanation. Clearing security flags, since this wouldn't result in a usable information leak.

Comment 9 by ajha@chromium.org, Jan 2 2017

If this isn't security bug, Is it fine to remove the Blocker label?
Project Member

Comment 10 by bugdroid1@chromium.org, Jan 4 2017

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

commit 22726ac8cf9ec16985fd3103d1e1c7f2c45b2b25
Author: csharrison <csharrison@chromium.org>
Date: Wed Jan 04 07:45:23 2017

Invert a && in HTMLTreeBuilderSimulator

This avoids an uninitialized value use for testing the selfClosing bit
of CompactHTMLToken, which is undefined for non start/end tags.

BUG= 675376 

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

[modify] https://crrev.com/22726ac8cf9ec16985fd3103d1e1c7f2c45b2b25/third_party/WebKit/Source/core/html/parser/HTMLTreeBuilderSimulator.cpp

Project Member

Comment 11 by ClusterFuzz, Jan 5 2017

ClusterFuzz has detected this issue as fixed in range 441323:441347.

Detailed report: https://cluster-fuzz.appspot.com/testcase?key=5376618999840768

Fuzzer: libfuzzer_renderer_tree_fuzzer
Job Type: libfuzzer_chrome_msan
Platform Id: linux

Crash Type: Use-of-uninitialized-value
Crash Address: 
Crash State:
  blink::HTMLTreeBuilderSimulator::simulate
  blink::BackgroundHTMLParser::pumpTokenizer
  base::internal::RunMixin<base::Callback<void
  
Sanitizer: memory (MSAN)

Recommended Security Severity: Medium

Regressed: https://cluster-fuzz.appspot.com/revisions?job=libfuzzer_chrome_msan&range=439337:439343
Fixed: https://cluster-fuzz.appspot.com/revisions?job=libfuzzer_chrome_msan&range=441323:441347

Minimized Testcase (0.09 Kb):
Download: https://cluster-fuzz.appspot.com/download/AMIfv954YXbiAjx-XB6CorHqHD6SbaosIOLaF69RxJspcXkQv198kny1kMhI43KqB0xQfVcIIXxTBPdsyCQZ6aZUVVmNCOCl5uIo8HXh6OYBFlzGjsAzXA85FQM8APxCBes062lZeRHmAedt4AGwP5dTesJKIT1ZTg?testcase_id=5376618999840768
[{"e":"thead"},{"c":[{"t":"*�!!c*(�203685720357203685\u0001d�\u0000"}],"e":"button"}]


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 12 by ClusterFuzz, Jan 5 2017

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