Tomemos Stagefright, por ejemplo, la biblioteca de medios escrita en C ++
La manera en que los desbordamientos evitan los privilegios asignados es simple; El código C puede escribir directamente en la memoria. Es tu trabajo como desarrollador asegurarte de que encajas, de lo contrario, escribirá felizmente sobre otras instrucciones del mismo privilegio. Stagefright tiene muchos privilegios. Y la información que fluye fuera del búfer podría ser un video cat aleatorio de Internet (que a su vez, gana los privilegios de la biblioteca de medios)
Por lo tanto, sería ingenuo asumir que los desbordamientos no son perjudiciales. Stagefright contenía desbordamientos de búfer y esto es extremadamente peligroso.
Los desarrolladores de Android han hecho más difícil la explotación al implementar (entre otras medidas) la aleatorización del diseño del espacio de direcciones (ASLR), lo que hace que las compensaciones sean impredecibles, causando un error en lugar de la ejecución del código. Pero al combinar esto con las vulnerabilidades del navegador, se puede filtrar información sobre la ubicación actual de las páginas de memoria, por lo que aún es posible la ejecución del código.
Recomendaría leer Metaphor, una implementación de Stagefright que incluye bypass ASLR, el documento y el código PoC están disponibles en línea