
Versión personalizada de sudo 1.8.3p1 con parches de CVE-2021-3156 aplicados
Esta es una versión personalizada de sudo, basada en el paquete sudo 1.8.3p1 proporcionado por Canonical para Ubuntu 12.04 utilizando las URL a continuación, con los parches de CVE-2021-3156 aplicados.
(La forma más fácil de descargar y descomprimir estos archivos es usando apt-get source sudo en una máquina con Ubuntu 12.04. Si no deseas interferir con una máquina de producción, esta imagen de Vagrant me fue útil para hacer esto: https://app.vagrantup.com/hashicorp/boxes/precise64)
Si tienes la versión sin parche instalada (1.8.3p1-1ubuntu3.7), típicamente se comporta así, indicando la vulnerabilidad que podría potencialmente ser explotada:
vagrant@precise64:~/src$ sudoedit -s '\' `perl -e 'print "A" x 65536'`
Segmentation fault
La versión parcheada te dará algo como esto en su lugar:
vagrant@precise64:~/src$ sudoedit -s '\' `perl -e 'print "A" x 65536'`
usage: sudoedit [-AknS] [-C fd] [-D level] [-g groupname|#gid] [-p prompt] [-u user name|#uid] file ...
apt-get source sudocd sudo-1.8.3p1, aplica todos los parches de CVE-2021-3156 del paquete Xenial. La forma más fácil de obtener estos paquetes es ejecutando apt-get source sudo en una máquina Xenial, o agregando la fuente de paquetes apt-get de Xenial a tu máquina Precise temporalmente: deb-src http://security.ubuntu.com/ubuntu xenial-security main.
patch -p1 < debian/patches/CVE-2021-3156-1.patch (3 de 9 fragmentos fallaron)patch -p1 < debian/patches/CVE-2021-3156-2.patch (se refiere a un archivo inexistente)patch -p1 < debian/patches/CVE-2021-3156-3.patch (1 de 4 fragmentos falló)patch -p1 < debian/patches/CVE-2021-3156-4.patch (se refiere a un archivo inexistente)patch -p1 < debian/patches/CVE-2021-3156-5.patch (1 de 1 fragmento falló)$ sudo apt-get build-dep sudo
$ dpkg-buildpackage -rsudo -b
Si todo va bien, ahora deberías obtener un paquete sudo_1.8.3p1-1ubuntu3.8_amd64.deb y sudo-ldap_1.8.3p1-1ubuntu3.8_amd64.deb en el directorio padre.
Ten en cuenta que SOLO se aplicaron los parches de CVE-2021-3156 a este árbol. Es muy posible que uno o más de los siguientes parches de Xenial también sean aplicables a este árbol; hice un intento inicial de aplicarlos pero no se aplicaron limpiamente, y por lo tanto, no están incluidos en este repositorio. NO HAY ABSOLUTAMENTE NINGUNA GARANTÍA de que el paquete sudo proporcionado por este repositorio no tenga problemas críticos de seguridad.
¡Las solicitudes de extracción que apliquen cualquiera de estos parches son muy bienvenidas! Para tu conveniencia, el conjunto completo de parches de Xenial (a partir de sudo 1.8.16-0ubuntu1.10) está disponible en debian/patches en este árbol. Ten en cuenta que las fuentes del paquete Precise (12.04) (en las que se basa este repositorio) ya han aplicado todo hasta CVE-2014-9680.patch. El conjunto completo de parches ya aplicados se enumeran en .pc/applied-patches.
EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DE DERECHOS DE AUTOR SERÁN RESPONSABLES POR CUALQUIER RECLAMO, DAÑOS U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O DE OTRO MODO, QUE SURJA DE, FUERA DE O EN CONEXIÓN CON EL SOFTWARE O EL USO U OTROS TRATOS EN EL SOFTWARE.
plugins/sudoers.rej y aplica los cambios manualmente. Esta es la parte difícil, pero a veces no es tan difícil. La razón por la que los parches no se aplican limpiamente es típicamente porque los números de línea difieren demasiado (la(s) línea(s) parcheada(s) están presentes, pero en una sección diferente del archivo parcheado), o porque el código se ve diferente en la base de código 1.8.3p1. Errores como este también son posibles de resolver; solo requieren un poco más de pensamiento, analizar el código y descubrir cómo aplicar los cambios.