
Progetto Finale per Sicurezza e Privacy CS 600.443
Progetto finale per Security and Privacy CS 600.443 | Autunno 2018
Ho inizialmente provato a usare diff per creare una patch. Ho creato la patch nel modo in cui pensavo dovesse essere, prima di guardare la patch reale. encrypt.patch è questa patch originale che ho creato con diff. Tuttavia, quando abbiamo provato ad applicare questa patch a freeBSD, non è stata accettata.
Invece, ho dovuto recuperare la patch reale. Poi ho modificato la patch per implementare la correzione nel modo in cui avevo originariamente pensato. Questo funziona perché inserisce l'intero percorso nella patch.
Nella patch, controllo semplicemente la lunghezza rispetto a MAXLENGTH. Se è più grande di quella, la imposto a 0. In questo modo, si ricade nel caso di len = 0, che va in errore. Questo risolve il problema!
Ecco una spiegazione su come applicare una patch in freeBSD. https://www.freebsd.org/security/advisories/FreeBSD-SA-11:08.telnetd.asc Usa semplicemente questa patch invece di recuperare quella reale. Funzionerà e non sarai più in grado di sfruttare il buffer overflow.