New issue
Advanced search Search tips

Issue 781168 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

Incorrect-function-pointer-type in gl::GLApiBase::glDeleteSyncFn

Project Member Reported by ClusterFuzz, Nov 3 2017

Issue description

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

Fuzzer: libFuzzer_gpu_angle_passthrough_fuzzer
Job Type: libfuzzer_chrome_ubsan
Platform Id: linux

Crash Type: Incorrect-function-pointer-type
Crash Address: 
Crash State:
  gl::GLApiBase::glDeleteSyncFn
  gpu::error::Error gpu::gles2::DeleteHelper<unsigned int, unsigned long, gpu::gle
  gpu::gles2::GLES2DecoderPassthroughImpl::DoDeleteSync
  
Sanitizer: undefined (UBSAN)

Recommended Security Severity: Medium

Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_ubsan&range=512885:512922

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

Issue filed automatically.

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

Comment 1 by sheriffbot@chromium.org, Nov 3 2017

Labels: M-64
Project Member

Comment 2 by sheriffbot@chromium.org, Nov 3 2017

Labels: ReleaseBlock-Stable
This is a serious security regression. If you are not able to fix this quickly, please revert the change that introduced it.

If this doesn't affect a release branch, or has not been properly classified for severity, please update the Security_Impact or Security_Severity labels, and remove the ReleaseBlock label. To disable this altogether, apply ReleaseBlock-NA.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 3 by sheriffbot@chromium.org, Nov 3 2017

Labels: Pri-1
Project Member

Comment 4 by ClusterFuzz, Nov 3 2017

Components: Internals>GPU>Internals
Labels: Test-Predator-AutoComponents
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 5 by ClusterFuzz, Nov 3 2017

Labels: Test-Predator-AutoOwner
Owner: piman@chromium.org
Status: Assigned (was: Untriaged)
Automatically assigning owner based on suspected regression changelist https://chromium.googlesource.com/chromium/src/+/18afd13d94183587e05cb04031f2ee7d56ba98d9 (gpu fuzzers: AddRef on null pointers).

If this is incorrect, please remove the owner and apply the Test-Predator-Wrong-CLs label.

Comment 6 by piman@chromium.org, Nov 3 2017

Cc: mmoroz@chromium.org jmad...@chromium.org
I suspect this is like  crbug.com/778918 , but more subtle because __GLsync is a fake type provided by the GL header (https://cs.chromium.org/chromium/src/third_party/khronos/GLES3/gl3.h?type=cs&sq=package:chromium&l=68) for c-level type safety. There's no real type behind it really to export.
I want to double-check assumptions here, but I think we'll definitely have to suppress this (and likely a few others).

Comment 7 by mmoroz@google.com, Nov 3 2017

I guess we'll see more of this. Do you want to suppress all "function" errors from third_party/angle/src/?

Comment 8 by piman@chromium.org, Nov 3 2017

This one would be in ui/gl/gl_bindings_autogen_gl.cc (chromium code calling into ANGLE, instead of the opposite). I think we may be able to scope the suppression to that file.
But I would like to double-check first, because I'm a bit surprised this is the first (only?) one we run into. If this is a generalized issue, I'd expect some egl functions, being called earlier, to fail too.

Comment 9 by mmoroz@google.com, Nov 3 2017

Nothing else pops up when running over existing corpus. Should I update the suppressions, i.e. add "function:ui/gl/gl_bindings_autogen_gl.cc"?
Maybe let's do that for now, I'll investigate separately.
Project Member

Comment 11 by bugdroid1@chromium.org, Nov 3 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/chrome/tools/clusterfuzz/+/f3efe00111444237cf6a5a4274d0ef1e88a93b61

commit f3efe00111444237cf6a5a4274d0ef1e88a93b61
Author: Max Moroz <mmoroz@google.com>
Date: Fri Nov 03 18:28:03 2017

Are these just popping up now because of the newly landed suppressions?
Yes, previously we've been hitting  crbug.com/778918  before reaching this particular error.
OK cool, hopefully suppressing these will lead to some new reports of more potential hazards.
Labels: -Restrict-View-SecurityTeam -Security_Severity-Medium -Security_Impact-Head -ReleaseBlock-Stable
So, the good news is that if I add __attribute__((visibility("default"))) in all definitions of GLsync, this issue goes away, so this is confirmed not to be a security issue. The bad news is that it's in Khronos headers.... We could modify them locally (we have a bunch of different copies in third/party), and/or we could try to upstream. That said the suppression for this one is fairly scoped, so maybe we can just live with it.
Labels: -Type-Bug-Security -Pri-1 Pri-2 Type-Bug
Labels: Test-Predator-Auto-CC
Labels: -Test-Predator-AutoComponents Test-Predator-Auto-Components
Labels: -Test-Predator-AutoOwner Test-Predator-Auto-Owner
Labels: -Test-Predator-Auto-CC
Project Member

Comment 21 by ClusterFuzz, Nov 17 2017

Status: WontFix (was: Assigned)
ClusterFuzz testcase 4896947243843584 is flaky and no longer crashes, so closing issue.

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

Comment 22 by ClusterFuzz, Nov 17 2017

ClusterFuzz testcase 4896947243843584 is flaky and no longer crashes, so closing issue.

If this is incorrect, please add ClusterFuzz-Wrong label and re-open the issue.
Status: Assigned (was: WontFix)
This is expected, more detailed explanation: https://bugs.chromium.org/p/chromium/issues/detail?id=778918#c46

Reopening this in case you have further plans.

Sign in to add a comment