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

Issue 738754 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Jul 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 1
Type: Bug



Sign in to add a comment

Null-dereference in content::BlinkTestController::OnDumpFrameLayoutResponse

Project Member Reported by ClusterFuzz, Jul 2 2017

Issue description

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

Fuzzer: mbarbella_js_mutation_layout
Job Type: windows_syzyasan_content_shell
Platform Id: windows

Crash Type: Null-dereference
Crash Address: 0x00000003
Crash State:
  content::BlinkTestController::OnDumpFrameLayoutResponse
  base::internal::Invoker<base::internal::BindState<void
  base::Callback<void __cdecl
  
Memory Tool: SYZYASAN

Regressed: https://clusterfuzz.com/revisions?job=windows_syzyasan_content_shell&range=483918:483919

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


Issue filed automatically.

See https://dev.chromium.org/Home/chromium-security/bugs/reproducing-clusterfuzz-bugs for more information.
 
Cc: msrchandra@chromium.org
Labels: Test-Predator-Wrong-CLs M-61
Owner: lukasza@chromium.org
Status: Assigned (was: Untriaged)
Predator and CL did not provide any possible suspects.
Using Code Search for the file, "blink_test_controller.cc", assigning to the concern owner.
Suspecting Commit#
https://chromium.googlesource.com/chromium/src/+/d565a833804f202c057a33337e63d55793144cec

@lukasza -- Could you please look into the issue, kindly re-assign if this is not related to your changes.
Thank You.
I am asking for help with the repro at https://groups.google.com/a/chromium.org/d/topic/clusterfuzz-tools-users/1gba0VeFN6M/discussion

I assume that the problem here is a UaF of BlinkTestController, which might have been destroyed when the response to DumpFrameLayout comes back.  Without a local repro I can try a speculative fix, but I am not yet sure what is the right way forward: 1) paper over the problem by adding base::WeakPtrFactory to BlinkTestController, vs 2) somehow tweak how mojo tracks lifetimes.
FWIW, I am not able to repro locally on Win10:

D:\src\chromium\src>type out\fuzz\args.gn
# Build arguments go here.
# See "gn args <out_dir> --list" for available build arguments.
enable_precompiled_headers = false
is_debug = false
is_syzyasan = true
target_cpu = "x86"

D:\src\chromium\src>third_party\WebKit\Tools\Scripts\run-webkit-tests -t fuzz C:\Users\lukasza\Downloads\clusterfuzz-testcase-minimized-4671625537781760.htm --iterations 10

... no crashes, just complaints about missing -expected.txt/-expected.png ...

D:\src\chromium\src>git log --oneline
6e8a61b ...
...
Project Member

Comment 4 by ClusterFuzz, Jul 11 2017

ClusterFuzz has detected this issue as fixed in range 485497:485520.

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

Fuzzer: mbarbella_js_mutation_layout
Job Type: windows_syzyasan_content_shell
Platform Id: windows

Crash Type: Null-dereference
Crash Address: 0x00000003
Crash State:
  content::BlinkTestController::OnDumpFrameLayoutResponse
  base::internal::Invoker<base::internal::BindState<void
  base::Callback<void __cdecl
  
Memory Tool: SYZYASAN

Regressed: https://clusterfuzz.com/revisions?job=windows_syzyasan_content_shell&range=483918:483919
Fixed: https://clusterfuzz.com/revisions?job=windows_syzyasan_content_shell&range=485497:485520

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


See https://dev.chromium.org/Home/chromium-security/bugs/reproducing-clusterfuzz-bugs 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 5 by ClusterFuzz, Jul 11 2017

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