Investigadores de seguridad de Cisco
La vulnerabilidad se puede aprovechar para ejecutar código en una situación en la que el atacante puede organizar la formación de un valor negativo de la variable a través de la cual se transmite el tamaño de los datos copiados (por ejemplo, será negativo al transferir más de 2 GB de datos, pero durante el ataque, para ir más allá de los límites del búfer, es necesario transferir al menos 4 GB). La función memcpy() se usa ampliamente en aplicaciones, y los procesadores ARMv7 son comunes en sistemas automotrices, móviles, industriales, de consumo, de comunicaciones y dispositivos integrados, que están potencialmente sujetos a ataques mediante Bluetooth, HD Radio/DAB, USB, CAN bus, Wi-Fi Fi y otras fuentes de datos externas (por ejemplo, se pueden atacar servicios y aplicaciones accesibles a través de la red que aceptan datos de entrada sin restricciones de tamaño).
Un ejemplo es la creación de un exploit funcional para atacar un servidor HTTP integrado en los sistemas de información de los automóviles, al que se puede acceder a través de la red Wi-Fi del automóvil. Un atacante externo podría aprovechar una vulnerabilidad de memcpy en este servidor enviando una solicitud GET muy grande y obteniendo acceso raíz al sistema.
En sistemas x32 de 86 bits el problema no aparece, ya que la implementación de memcpy para esta arquitectura interpreta correctamente la variable tamaño como un valor entero sin signo de tipo size_t (en lenguaje ensamblador
La solución se reduce a reemplazar el uso de instrucciones de ensamblaje que operan en operandos firmados (bge y blt) con contrapartes sin firmar (blo y bhs).
El problema aún no se ha resuelto
Fuente: opennet.ru