Quanto è pericoloso riferire una variabile fuori dalla sua vita

5

Comprendo che fare riferimento a una variabile fuori dalla sua vita è una pratica pericolosa e consentire a qualcuno di eludere seriamente la logica del programma. Tuttavia il CERT C Programming Language Secure Coding Standard (modificato per la prima volta nel 2007) fa riferimento a questa come una vulnerabilità di livello 3 in termini di gravità, il che significa che può portare all'utente l'esecuzione di codice arbitrario. Vorrei un'illustrazione di come ciò potrebbe essere possibile, o un riferimento a un articolo che lo spiega.

    
posta user109940 07.05.2016 - 20:00
fonte

1 risposta

7

Il problema dell'utilizzo dell'uso della memoria al di fuori della sua durata è che il suo contenuto potrebbe essere cambiato in modo inaspettato.

Considera una struttura allocata dinamicamente con un puntatore a funzione come campo. Se questa memoria è in qualche modo liberata, è possibile che la prossima richiesta di allocazione di memoria rimandi a questa memoria. Un utente malintenzionato che controlla questa memoria potrebbe inserirvi dei dati che vengono quindi interpretati come puntatore a un codice dannoso. Questo è un esempio di esecuzione arbitraria di codice.

    
risposta data 07.05.2016 - 22:59
fonte

Leggi altre domande sui tag