
Versione personalizzata di sudo 1.8.3p1 con patch CVE-2021-3156 applicate
Questa è una versione personalizzata di sudo, basata sul pacchetto sudo 1.8.3p1 fornito da Canonical per Ubuntu 12.04 utilizzando gli URL sottostanti, con le patch CVE-2021-3156 applicate.
(Il modo più semplice per scaricare e decomprimere questi file è usare apt-get source sudo su una macchina con Ubuntu 12.04. Se non si vuole interferire con una macchina di produzione, questa immagine Vagrant mi è stata utile per realizzare questo: https://app.vagrantup.com/hashicorp/boxes/precise64)
Se hai la versione senza patch installata (1.8.3p1-1ubuntu3.7), di solito si comporta così, indicando la vulnerabilità che potrebbe potenzialmente essere sfruttata:
vagrant@precise64:~/src$ sudoedit -s '\' `perl -e 'print "A" x 65536'`
Segmentation fault
La versione con patch darà invece qualcosa del genere:
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, applica tutte le patch CVE-2021-3156 dal pacchetto Xenial. Il modo più semplice per ottenere questi pacchetti è eseguire apt-get source sudo su un sistema Xenial, oppure aggiungere temporaneamente la sorgente del pacchetto Xenial apt-get al tuo sistema Precise: deb-src http://security.ubuntu.com/ubuntu xenial-security main.
patch -p1 < debian/patches/CVE-2021-3156-1.patch (3 hunk su 9 falliti)patch -p1 < debian/patches/CVE-2021-3156-2.patch (fa riferimento a un file inesistente)patch -p1 < debian/patches/CVE-2021-3156-3.patch (1 hunk su 4 fallito)patch -p1 < debian/patches/CVE-2021-3156-4.patch (fa riferimento a un file inesistente)patch -p1 < debian/patches/CVE-2021-3156-5.patch (1 hunk su 1 fallito)$ sudo apt-get build-dep sudo
$ dpkg-buildpackage -rsudo -b
Se tutto va bene, ora dovresti ottenere un pacchetto sudo_1.8.3p1-1ubuntu3.8_amd64.deb e sudo-ldap_1.8.3p1-1ubuntu3.8_amd64.deb nella directory padre.
Nota che SOLO le patch CVE-2021-3156 sono state applicate a questo albero. È abbastanza possibile che una o più delle seguenti patch Xenial siano anche applicabili a questo albero; ho fatto un tentativo iniziale di applicarle ma non si sono applicate pulitamente e, quindi, non sono incluse in questo repository. NON ESISTE ASSOLUTAMENTE ALCUNA GARANZIA che il pacchetto sudo fornito da questo repository non abbia problemi critici di sicurezza.
Le pull request che applicano una di queste patch sono altamente gradite! Per tua comodità, l'intero set di patch Xenial (a partire da sudo 1.8.16-0ubuntu1.10) è disponibile in debian/patches in questo albero. Nota che i sorgenti del pacchetto Precise (12.04) (su cui si basa questo repository) hanno già applicato tutto fino a CVE-2014-9680.patch. L'intero set di patch già applicate è elencato in .pc/applied-patches.
IL SOFTWARE VIENE FORNITO "COSÌ COM'È", SENZA GARANZIA DI ALCUN TIPO, ESPRESSA O IMPLICITA, INCLUSIVE MA NON LIMITATE ALLE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UN PARTICOLARE SCOPO E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I TITOLARI DEL COPYRIGHT SARANNO RESPONSABILI PER QUALSIASI RECLAMO, DANNO O ALTRA RESPONSABILITÀ, SIA IN UN'AZIONE CONTRATTUALE, ILLECITA O ALTRO, DERIVANTE DA O IN CONNESSIONE CON IL SOFTWARE O L'USO O ALTRE OPERAZIONI CON IL SOFTWARE.
plugins/sudoers.rej e applica le modifiche manualmente. Questa è la parte difficile, ma a volte non così difficile. Il motivo per cui le patch non si applicano pulitamente è tipicamente perché i numeri di riga differiscono troppo (le righe patchate sono presenti, ma in una sezione diversa del file patchato) o perché il codice appare diverso nel codice base 1.8.3p1. Errori come questi sono anche risolvibili; richiedono solo un po' più di riflessione, analisi del codice e capire come applicare le modifiche.