
Proyecto Final para Seguridad y Privacidad CS 600.443
Proyecto Final para Seguridad y Privacidad CS 600.443 | Otoño 2018
Originalmente intenté usar diff para crear un parche. Parcheé de la forma en que pensé que sería, antes de mirar el parche real. encrypt.patch es ese parche original que hice con diff. Sin embargo, al intentar aplicar este parche a FreeBSD, no lo aceptó.
En su lugar, tuve que obtener el parche real. Luego cambié el parche para implementar la corrección como originalmente pensé que debería ser. Esto funciona porque coloca toda la ruta en el parche.
En el parche, simplemente verifico la longitud comparándola con MAXLENGTH. Si es mayor que eso, la establezco en 0. De esta manera, cae en el caso de len = 0, lo que produce un error. ¡Esto lo soluciona!
Aquí hay una explicación de cómo aplicar un parche en FreeBSD. https://www.freebsd.org/security/advisories/FreeBSD-SA-11:08.telnetd.asc Simplemente use este parche en lugar de obtener el real. Funcionará y ya no podrá explotar el desbordamiento del búfer.