Dopo alcuni scavi, credo di aver individuato la linea di codice vulnerabile.
Dal Android Security Bulletin-September 2016 troviamo queste informazioni:
Remote code execution vulnerability in Mediaserver
A remote code execution vulnerability in Mediaserver could enable an
attacker using a specially crafted file to cause memory corruption
during media file and data processing. This issue is rated as Critical
due to the possibility of remote code execution within the context of
the Mediaserver process.
- CVE: CVE-2016-3862
- References: A-29270469
- Severity: Critical Updated
- Nexus devices: All Nexus
- Updated AOS versions: 4.4.4, 5.0.2, 5.1.1, 6.0, 6.0.1
- Date reported: Jun 10, 2016
Che porta a questa differenza di commit che mostra dove hanno rimosso il dipendenza dalla jhead da ExifInterface.java. Quindi, in base alla data riportata, circa 3 mesi prima della mano il problema in jhead era probabilmente affrontato.
Correlato con la seguente differenza di commit in jhead :
@@ -614,7 +614,7 @@
unsigned OffsetVal;
OffsetVal = Get32u(DirEntry+8);
// If its bigger than 4 bytes, the dir entry contains an offset.
- if (OffsetVal+ByteCount > ExifLength){
+ if (OffsetVal > UINT32_MAX - ByteCount || OffsetVal+ByteCount > ExifLength){
// Bogus pointer offset and / or bytecount value
ErrNonfatal("Illegal value pointer for tag %04x", Tag,0);
continue;
Quale ha il seguente messaggio di commit:
Fix possible out of bounds access