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

Issue 648671 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug-Security



Sign in to add a comment

Bad-cast to webrtc::Module from webrtc::BitrateControllerImpl;webrtc::CongestionController::TimeUntilNextProcess;webrtc::ProcessThreadImpl::Process

Project Member Reported by ClusterFuzz, Sep 20 2016

Issue description

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

Fuzzer: phoglund_webrtc_peerconnection
Job Type: linux_ubsan_vptr_chrome
Platform Id: linux

Crash Type: Bad-cast
Crash Address: 0x0631f3d3f600
Crash State:
  Bad-cast to webrtc::Module from webrtc::BitrateControllerImpl
  webrtc::CongestionController::TimeUntilNextProcess
  webrtc::ProcessThreadImpl::Process
  
Recommended Security Severity: High

Regressed: https://cluster-fuzz.appspot.com/revisions?job=linux_ubsan_vptr_chrome&range=419690:419701

Minimized Testcase (1.01 Kb): https://cluster-fuzz.appspot.com/download/AMIfv94_f9WS_cGhC1ZbxbEDwLWqFhxLB76JO1-iYM8e_-Rhe-aSWAeNi3_s7pSZx1gqjtO7g6U576-kHrJQCp9VQ0U5NWnwjCpqoN3MWmplit_-SMXcJxoewhZmhXvSdZJzgZ_GmwFr36T6w5s1ddsRLdq-9D-k8g?testcase_id=4766268475572224

Additional requirements: Requires HTTP

Issue filed automatically.

See https://dev.chromium.org/Home/chromium-security/bugs/reproducing-clusterfuzz-bugs for more information.
 
Sanitizer complains about Bad-cast to webrtc::Module from webrtc::BitrateControllerImpl, but BitrateControllerImpl derives from BitrateController which derives from Module. This seems like it should be okay.
Cc: kcc@chromium.org
kcc: this seems a bit strange, would you mind taking a look?

Comment 4 by kcc@chromium.org, Sep 20 2016

Owner: krasin@chromium.org
Ivan has been dealing with these lately

Comment 5 by krasin@chromium.org, Sep 20 2016

This regressed tonight and 'UBSanVptr Linux' bot became red because of that:
https://build.chromium.org/p/chromium.fyi/builders/UBSanVptr%20Linux/builds/1187

The problematic change arrived as a part of the WebRTC roll:
https://chromium.googlesource.com/chromium/src/+/86cc5ff4d533256008521baaac593e9c55077798

I will take a closer look to see what shall be fixed.

Comment 6 by krasin@chromium.org, Sep 20 2016

Cc: henrik.lundin@webrtc.org michaelt@webrtc.org
Owner: minyue@chromium.org
Reproduced locally, I know what happens. In this change:
https://codereview.webrtc.org/2334613002,

webrtc::DtxController declared in webrtc/modules/audio_coding/audio_network_adaptor/bitrate_controller.h was renamed to webrtc::BitrateController:
https://codereview.webrtc.org/2334613002/diff/140001/webrtc/modules/audio_coding/audio_network_adaptor/bitrate_controller.h?context=10&column_width=80&tab_spaces=8

So, now, there're two webrtc::BitrateController classes, and webrtc::BitrateControllerImpl is derived from the wrong one, which is not a webrtc::Module, so UBSan complains.

I urge you to revert the CL (and probably the roll on Chrome side as well). Then rename one of the classes to avoid the ODR violation.

Comment 7 by kcc@chromium.org, Sep 20 2016

Cc: krasin@chromium.org

Comment 8 by krasin@chromium.org, Sep 20 2016

Labels: -Restrict-View-SecurityTeam
Removing restrictions on the bug, as there's no immediate security threat due to this issue.
Project Member

Comment 9 by sheriffbot@chromium.org, Sep 21 2016

Labels: M-55
Project Member

Comment 10 by sheriffbot@chromium.org, Sep 21 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 11 by sheriffbot@chromium.org, Sep 21 2016

Labels: Pri-1
Project Member

Comment 12 by sheriffbot@chromium.org, Sep 21 2016

Status: Assigned (was: Untriaged)
it has been reverted.
#13 - Can you reference the revert commit and update status to Fixed? Thanks!
Status: Fixed (was: Assigned)
The revert is made in this

https://codereview.webrtc.org/2352223002/
Project Member

Comment 16 by ClusterFuzz, Sep 22 2016

ClusterFuzz has detected this issue as fixed in range 420048:420163.

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

Fuzzer: phoglund_webrtc_peerconnection
Job Type: linux_ubsan_vptr_chrome
Platform Id: linux

Crash Type: Bad-cast
Crash Address: 0x0631f3d3f600
Crash State:
  Bad-cast to webrtc::Module from webrtc::BitrateControllerImpl
  webrtc::CongestionController::TimeUntilNextProcess
  webrtc::ProcessThreadImpl::Process
  
Recommended Security Severity: High

Regressed: https://cluster-fuzz.appspot.com/revisions?job=linux_ubsan_vptr_chrome&range=419690:419701
Fixed: https://cluster-fuzz.appspot.com/revisions?job=linux_ubsan_vptr_chrome&range=420048:420163

Minimized Testcase (1.01 Kb): https://cluster-fuzz.appspot.com/download/AMIfv94_f9WS_cGhC1ZbxbEDwLWqFhxLB76JO1-iYM8e_-Rhe-aSWAeNi3_s7pSZx1gqjtO7g6U576-kHrJQCp9VQ0U5NWnwjCpqoN3MWmplit_-SMXcJxoewhZmhXvSdZJzgZ_GmwFr36T6w5s1ddsRLdq-9D-k8g?testcase_id=4766268475572224

Additional requirements: Requires HTTP

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 17 by sheriffbot@chromium.org, Oct 1 2016

Labels: Restrict-View-SecurityNotify
Labels: -ReleaseBlock-Beta
Project Member

Comment 19 by sheriffbot@chromium.org, Dec 29 2016

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