Che cosa è esattamente CVE-2016-3862 e come funziona?

1

Ne ho sentito parlare forse una settimana fa e mi sembra una vulnerabilità estremamente critica. Ma non ho trovato alcuna descrizione tecnica di esso. Solo che è possibile eseguire il codice da remoto solo inviando l'immagine appositamente creata dalla vittima con modificato exif.

Qualcuno può darmi una descrizione tecnica migliore di cosa sta realmente accadendo? Conosco anche il suo bug nella libreria C, quindi Google lo ha già riscritto in Java. Grazie per ogni consiglio. Inoltre, è disponibile l'exploit pubblico?

    
posta ShinobiUltra 11.09.2016 - 23:03
fonte

2 risposte

2

Non riesco a trovare alcuna indicazione che questo sia attivo in natura.

Quello che sta accadendo è che il codice che esamina e dà un senso ai metadati dell'immagine, in particolare i dati EXIF, è difettoso. Includendo attentamente i dati non validi (i dettagli non sono, ovviamente, disponibili), è molto probabile che causi un overflow del buffer in modo che alcuni dati finiscano in uno spazio di memoria che appartiene al codice attivo e quindi viene eseguito. Chiaramente che lo spazio di memoria normalmente appartiene ad un codice privilegiato. Questo tipo di account di emissione credo (l'ultima volta che ne ho sentito parlare) per circa il 90% di tutti i problemi di sicurezza nel codice C / C ++.

Il problema con Android è che gli aggiornamenti di sistema sono lasciati ai vettori che scelgono quando / se inviare gli aggiornamenti dai fornitori di telefoni che scelgono quando / se persino applicare le correzioni. È un vero macello. Lascia molti utenti Android con telefoni vulnerabili. Pertanto, anche se Google ha emesso una correzione, non è assolutamente garantito che possa accedere ai telefoni in uso.

    
risposta data 11.09.2016 - 23:57
fonte
1

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

    
risposta data 13.09.2016 - 01:59
fonte

Leggi altre domande sui tag