È pericoloso.
È sfruttabile? Possibilmente. Ci hai già detto che puoi causare un arresto anomalo, quindi potresti essere in grado di eseguire un sistema facendolo schiantarlo ... a seconda di dove argv 1 proviene da. Se si tratta di un valore hard coded, o se è generato da un'app chiamante e può sempre essere compreso tra 0 e 20, allora potrebbe non essere sfruttabile nel sistema. Sarebbe comunque un cattivo schema di programmazione, poiché un piccolo cambiamento potrebbe renderlo sfruttabile. O se non è mai eseguito codice, o se è codice che viene eseguito solo da te e nessun altro lo esegue mai, le regole del firewall che impediscono valori inferiori a 0 o superiori a 20, ecc, allora non sarebbero sfruttabili.
È eseguibile? Può essere. Non abbiamo abbastanza informazioni per determinare in alcun modo. Non sappiamo se il compilatore inserisce stack di canarini. Non sappiamo se esiste un altro codice che controlla argv 1 e lo costringe a essere un valore sicuro.
Prova a utilizzare ! exploitable se stai usando Windows se vuoi un suggerimento (non ricordo gli strumenti per altri sistemi operativi).