Details of Elevation of Privilege Vulnerability in Recovery Verifier (CVE-2017-0475)
An OOB(out-of-bounds read) issue was found in function verify_file of verifier.cpp, allows attackers to execute arbitrary code in recovery verifier.
- CVE ID: CVE-2017-0475;
- Android ID: A-31914369;
- Severity: critical;
- Updated Google devices: All;
- Updated AOSP versions: 4.4.4, 5.0.2, 5.1.1, 6.0, 6.0.1, 7.0, 7.1.1.
Description
|
|
There is a missing boundary check where signature_start should be within the EOCD comment field.
|
|
pkcs7_der will point to a position beyound the bounds of the valid ZIP buffer due to the invaild signature_start, which may be exploitable.
Attack vector
You can click here to get the poc.
The easily way to trigger this vulnerability is as follows.
- Reboot your Android device to recovery mode;
- Select ‘Apply update from ADB’;
- Run
adb sideload CVE-2017-0475.zip
.
Patch
Add a boundary check for signature_start
|
|
Acknowledgement
This vulnerability was credited to Zinuo Han from Chengdu Security Response Center of Qihoo 360 Technology Co. Ltd.
Timeline
2016-10-02: ele7enxxh reported the vulnerability to Google;
2016-11-17: Google rated it as a critical vulnerability;
2017-01-31: Google assigned CVE-2017-0475 for this vulnerability;
2017-03-07: Google released the patch and disclosed the details of CVE-2017-0475 on Android Security Bulletin-March 2017.