Vulnerabilità in sudo che consente l'escalation dei privilegi quando si utilizzano regole specifiche

Nell'utilità sudo, utilizzato per organizzare l'esecuzione di comandi per conto di altri utenti, identificato vulnerabilità (CVE-2019-14287), che consente di eseguire comandi con diritti di root, se nelle impostazioni di sudoers sono presenti regole in cui nella sezione di controllo dell'ID utente dopo la parola chiave di autorizzazione “ALL” è presente un esplicito divieto di esecuzione con diritti di root (“... (TUTTI, !root) ..." ). La vulnerabilità non appare nelle configurazioni predefinite nelle distribuzioni.

Se sudoers ha regole valide, ma estremamente rare nella pratica, che consentono l'esecuzione di un determinato comando con l'UID di qualsiasi utente diverso da root, un utente malintenzionato che ha l'autorità per eseguire questo comando può aggirare la restrizione stabilita ed eseguire il comando con diritti di root. Per aggirare la limitazione basta provare ad eseguire il comando specificato nelle impostazioni con UID “-1” o “4294967295”, che porterà alla sua esecuzione con UID 0.

Ad esempio, se nelle impostazioni è presente una regola che concede a qualsiasi utente il diritto di eseguire il programma /usr/bin/id con qualsiasi UID:

miohost TUTTI = (TUTTI, !root) /usr/bin/id

o un'opzione che consente l'esecuzione solo per un utente specifico bob:

miohost bob = (TUTTI, !root) /usr/bin/id

L'utente può eseguire “sudo -u '#-1' id” e l'utilità /usr/bin/id verrà avviata come root, nonostante l'esplicito divieto nelle impostazioni. Il problema è causato dal trascurare i valori speciali “-1” o “4294967295”, che non portano a una modifica dell’UID, ma poiché sudo stesso è già in esecuzione come root, senza modificare l’UID, anche il comando di destinazione viene lanciato con diritti di root.

Nelle distribuzioni SUSE e openSUSE, senza specificare “NOPASSWD” nella regola, esiste una vulnerabilità non sfruttabile, poiché in sudoer la modalità "Defaults targetpw" è abilitata per impostazione predefinita, che controlla l'UID rispetto al database delle password e richiede di inserire la password dell'utente di destinazione. Per tali sistemi, un attacco può essere effettuato solo se esistono regole del tipo:

miohost ALL = (ALL, !root) NOPASSWD: /usr/bin/id

Problema risolto nel rilascio Sudo 1.8.28. La correzione è disponibile anche nel modulo toppa. Nei kit di distribuzione la vulnerabilità è già stata risolta Debian, Arch Linux, SUSE / openSUSE, Ubuntu, Gentoo и FreeBSD. Al momento in cui scrivo, il problema rimane irrisolto RHEL и Fedora. La vulnerabilità è stata identificata dai ricercatori di sicurezza di Apple.

Fonte: opennet.ru

Aggiungi un commento