New issue
Advanced search Search tips

Issue 796776 link

Starred by 2 users

Issue metadata

Status: Verified
Owner:
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug-Security



Sign in to add a comment

Use-of-uninitialized-value in ConstantUnion::operator+

Project Member Reported by ClusterFuzz, Dec 21 2017

Issue description

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

Fuzzer: libFuzzer_swiftshader_vertex_routine_fuzzer
Job Type: libfuzzer_chrome_msan
Platform Id: linux

Crash Type: Use-of-uninitialized-value
Crash Address: 
Crash State:
  ConstantUnion::operator+
  TIntermConstantUnion::fold
  TIntermediate::addBinaryMath
  
Sanitizer: memory (MSAN)

Recommended Security Severity: Medium

Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_msan&range=525420:525446

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

Issue filed automatically.

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

Comment 1 by ClusterFuzz, Dec 21 2017

Components: Internals>GPU>SwiftShader
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 sheriffbot@chromium.org, Dec 21 2017

Labels: M-65
Project Member

Comment 3 by sheriffbot@chromium.org, Dec 21 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 4 by sheriffbot@chromium.org, Dec 21 2017

Labels: Pri-1

Comment 5 by rsesek@chromium.org, Dec 28 2017

Owner: sugoi@chromium.org
Status: Assigned (was: Untriaged)
Project Member

Comment 6 by sheriffbot@chromium.org, Jan 4 2018

sugoi: Uh oh! This issue still open and hasn't been updated in the last 14 days. This is a serious vulnerability, and we want to ensure that there's progress. Could you please leave an update with the current status and any potential blockers?

If you're not the right owner for this issue, could you please remove yourself as soon as possible or help us find the right one?

If the issue is fixed or you can't reproduce it, please close the bug. If you've started working on a fix, please set the status to Started.

Thanks for your time! To disable nags, add the Disable-Nags label.

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

Comment 7 by sugoi@chromium.org, Jan 5 2018

Cc: capn@chromium.org
Project Member

Comment 8 by sheriffbot@chromium.org, Jan 20 2018

sugoi: Uh oh! This issue still open and hasn't been updated in the last 14 days. This is a serious vulnerability, and we want to ensure that there's progress. Could you please leave an update with the current status and any potential blockers?

If you're not the right owner for this issue, could you please remove yourself as soon as possible or help us find the right one?

If the issue is fixed or you can't reproduce it, please close the bug. If you've started working on a fix, please set the status to Started.

Thanks for your time! To disable nags, add the Disable-Nags label.

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

Comment 9 by sheriffbot@chromium.org, Jan 25 2018

Labels: -Security_Impact-Head Security_Impact-Beta
Labels: -releaseblock-stable
Not regression so removing RB-S
Project Member

Comment 11 by bugdroid1@chromium.org, Feb 7 2018

The following revision refers to this bug:
  https://swiftshader.googlesource.com/SwiftShader.git/+/2cf121d1a89470ad839df2ec66605da8c5504e62

commit 2cf121d1a89470ad839df2ec66605da8c5504e62
Author: Alexis Hetu <sugoi@google.com>
Date: Wed Feb 07 21:50:17 2018

Use of uninitialized value fixed

TParseContext::addConstVectorNode() was returning a
TIntermTyped* variable of the wrong type if a swizzle
was of a different size than the vector's size. When
parseVectorFields() fails, fields.num is reset to 1,
which no longer matches fieldString.size(), so
fieldString.size() should not have been used. To
avoid future errors, the proper type is now set
directly within TParseContext::addConstVectorNode().

 Bug chromium:796776 

Change-Id: Id5e8d1b94d0a03fcf5ef6f5deeb77581bc070288
Reviewed-on: https://swiftshader-review.googlesource.com/17089
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>

[modify] https://crrev.com/2cf121d1a89470ad839df2ec66605da8c5504e62/src/OpenGL/compiler/ParseHelper.cpp

Project Member

Comment 12 by sheriffbot@chromium.org, Feb 8 2018

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
Labels: -Security_Severity-Medium -Security_Impact-Beta -ReleaseBlock-Stable Security_Severity-Low Security_Impact-None
Labels: -Security_Impact-None Security_Impact-Stable Security_Severity-Medium
Project Member

Comment 15 by ClusterFuzz, Feb 27 2018

ClusterFuzz has detected this issue as fixed in range 539130:539132.

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

Fuzzer: libFuzzer_swiftshader_vertex_routine_fuzzer
Job Type: libfuzzer_chrome_msan
Platform Id: linux

Crash Type: Use-of-uninitialized-value
Crash Address: 
Crash State:
  ConstantUnion::operator+
  TIntermConstantUnion::fold
  TIntermediate::addBinaryMath
  
Sanitizer: memory (MSAN)

Recommended Security Severity: Medium

Regressed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_msan&range=525420:525446
Fixed: https://clusterfuzz.com/revisions?job=libfuzzer_chrome_msan&range=539130:539132

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

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 16 by ClusterFuzz, Feb 27 2018

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

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

Comment 17 by sheriffbot@chromium.org, Feb 27 2018

Labels: -Restrict-View-SecurityTeam Restrict-View-SecurityNotify
Labels: -M-65 M-66
Labels: Release-0-M66
Project Member

Comment 20 by sheriffbot@chromium.org, Jun 5 2018

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