### [CVE-2015-9157](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-9157) ![](https://img.shields.io/static/v1?label=Product&message=Snapdragon%20Mobile%2C%20Snapdragon%20Wear&color=blue) ![](https://img.shields.io/static/v1?label=Version&message=IPQ4019%2C%20MDM9206%2C%20MDM9607%2C%20MDM9625%2C%20MDM9635M%2C%20MSM8909W%2C%20SD%20210%2FSD%20212%2FSD%20205%2C%20SD%20400%2C%20SD%20410%2F12%2C%20SD%20600%2C%20SD%20615%2F16%2FSD%20415%2C%20SD%20617%2C%20SD%20650%2F52%2C%20SD%20800%2C%20SD%20808%2C%20SD%20810%20&color=brightgreen) ![](https://img.shields.io/static/v1?label=Vulnerability&message=Time-of-check%20Time-of-use%20(TOCTOU)%20Race%20Condition%20in%20Core.&color=brightgreen) ### Description In Android before 2018-04-05 or earlier security patch level on Qualcomm Snapdragon Mobile and Snapdragon Wear IPQ4019, MDM9206, MDM9607, MDM9625, MDM9635M, MSM8909W, SD 210/SD 212/SD 205, SD 400, SD 410/12, SD 600, SD 615/16/SD 415, SD 617, SD 650/52, SD 800, SD 808, and SD 810, in widevine_dash_cmd_handler(), rsp buffers are passed off to widevine commands. These rsp buffers have values in them, such as buffer lengths, that need to be validated to ensure that no buffer overflow/over-reads happen. However, rsp buffers are not always in locked memory, meaning a time-of-check, time-of-use issue can occur where we check that the value is valid, but then a race condition occurs where this memory is swapped out with a different, possibly out of range, value. ### POC #### Reference - http://www.securityfocus.com/bid/103671 #### Github No PoCs found on GitHub currently.