¿Qué es exactamente CVE-2016-3862 y cómo funciona?

1

Me enteré de que tal vez hace una semana y me parece una vulnerabilidad extremadamente crítica. Pero no encontré ninguna descripción técnica de ello. Solo que puede ejecutar el código de forma remota simplemente enviando a su víctima una imagen especialmente diseñada con cambiado exif.

¿Alguien me puede dar una mejor descripción técnica de lo que realmente está pasando? También sé que es error en la biblioteca de C, por lo que Google ya lo ha reescrito en Java. Gracias por cada consejo. Además, ¿hay explotaciones públicas disponibles?

    
pregunta ShinobiUltra 11.09.2016 - 23:03
fuente

2 respuestas

2

No puedo encontrar ninguna indicación de que esto esté activo en la naturaleza.

Lo que está sucediendo es que el código que examina y da sentido a los metadatos de la imagen, específicamente los datos EXIF es defectuoso. Al incluir cuidadosamente datos no válidos (los detalles no están, por supuesto, disponibles), es muy probable que cause un desbordamiento del búfer, de modo que algunos de los datos terminen en un espacio de memoria que pertenece al código activo y, por lo tanto, se ejecuta. Claramente ese espacio de memoria normalmente pertenece a algún código privilegiado. Creo que este tipo de cuentas de problemas (la última vez que escuché) representa aproximadamente el 90% de todos los problemas de seguridad en el código C / C ++.

El problema con Android es que las actualizaciones del sistema se dejan a los operadores que eligen cuándo / si enviar las actualizaciones de los proveedores de teléfonos que eligen cuándo / si incluso aplicar las correcciones. Es un total caos. Deja a muchos usuarios de Android con teléfonos vulnerables. Por lo tanto, aunque Google haya emitido una solución, no hay ninguna garantía de que vaya a los teléfonos en uso.

    
respondido por el Julian Knight 11.09.2016 - 23:57
fuente
1

Después de algunas excavaciones, creo que he localizado la línea de código vulnerable.

En el Boletín de seguridad de Android, septiembre de 2016 , encontramos esta información:

  

Vulnerabilidad de ejecución remota de código en Mediaserver

     

Una vulnerabilidad de ejecución remota de código en Mediaserver podría habilitar una   atacante que usa un archivo especialmente diseñado para causar daños en la memoria   durante el procesamiento de datos y archivos multimedia. Este problema está calificado como crítico   Debido a la posibilidad de ejecución remota de código dentro del contexto de   El proceso Mediaserver.

     
  • CVE: CVE-2016-3862
  •   
  • Referencias: A-29270469
  •   
  • Gravedad: crítica actualizada
  •   
  • Dispositivos Nexus: Todos los Nexus
  •   
  • Versiones de AOS actualizadas: 4.4.4, 5.0.2, 5.1.1, 6.0, 6.0.1
  •   
  • Fecha del informe: 10 de junio de 2016
  •   

Lo que lleva a este diff de que muestra dónde se eliminó el Dependencia jhead de ExifInterface.java. Por lo tanto, según la fecha informada, aproximadamente 3 meses antes de que se resolviera el problema, probablemente se solucionó el problema en jhead.

Esto se correlaciona con la siguiente diferencia de compromiso en 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;

Que tiene el siguiente mensaje de confirmación:

  

Solucionar el posible acceso fuera de límites

    
respondido por el Alexander O'Mara 13.09.2016 - 01:59
fuente

Lea otras preguntas en las etiquetas