Prendiamo ad esempio Stagefright, la libreria multimediale scritta in C ++
In che modo i bypass superano i privilegi assegnati è semplice; Il codice C può scrivere direttamente in memoria. Il tuo compito come sviluppatore è quello di assicurarti che cosa inserirai, altrimenti scriverà allegramente altre istruzioni con lo stesso privilegio. Stagefright ha molti privilegi. E le informazioni che escono dal buffer potrebbero essere un video casuale di un gatto da Internet (che quindi -grande- i privilegi della libreria multimediale)
Quindi sarebbe ingenuo presumere che gli overflow non siano dannosi. Stagefright conteneva buffer overflow e questo è estremamente pericoloso.
Gli sviluppatori di Android hanno reso più difficile lo sfruttamento implementando (tra le altre misure) la randomizzazione del layout dello spazio degli indirizzi (ASLR), questo rende gli offset utilizzabili, causando un errore piuttosto che l'esecuzione del codice. Ma combinando questo con le vulnerabilità del browser, le informazioni possono essere trapelate sulla posizione corrente delle pagine di memoria, quindi l'esecuzione del codice è ancora possibile.
Consiglierei di leggere su Metaphor, un'implementazione Stagefright che include il bypass ASLR, il documento cartaceo e il codice PoC sono disponibili online