le code est dangereux car en C il n'y a pas de vérification de limite : si hostname fait plus que
250 charactères sprintf va continuer a écrire aprés le char str[250].
La chose est encore plus intéressante parceque "aprés" la variable str il y a des donnés comme l'addresse mémoire de retour de la fonction que l'on peut donc changer : on peut charger en mémoire des données et les faire executer.
[^] # Re: C'était déjà dans les journaux linuxfr le 27/9
Posté par ham . En réponse à la dépêche Faille de sécurité exploitable à distance dans mplayer. Évalué à 7.
250 charactères sprintf va continuer a écrire aprés le char str[250].
La chose est encore plus intéressante parceque "aprés" la variable str il y a des donnés comme l'addresse mémoire de retour de la fonction que l'on peut donc changer : on peut charger en mémoire des données et les faire executer.
Une explication avec schéma en anglais:
http://vulcan.ee.iastate.edu/~cise/instructors/downloads/InterBO/In(...)