Nova falha no SUDO (Baron Samedit) permite escalar privilégios no Linux para root.

Uma vulnerabilidade que afeta uma grande parte do ecossistema Linux foi corrigida durante o dia de ontem no Sudo, um binário do SO Linux que permite aos administradores gerir acesso root limitado a outros utilizadores.

A vulnerabilidade recebeu o identificador CVE CVE-2021-3156, mas é mais conhecida como “Baron Samedit“, foi descoberta pela empresa de auditoria de segurança Qualys há duas semanas e foi corrigida hoje com o lançamento do Sudo v1.9.5p2 .

 

Através de uma explicação simples fornecida pela equipa Sudo, a falha Baron Samedit pode ser explorada por um atacante que obteve acesso a uma conta de baixo privilégios para obter privilégios de root, mesmo se a conta não estiver listada no grupo SUDOERS.

Is a local user required to exploit the vulnerability?
Yes, however this user does not need to be a privileged user or be a part of sudoers list. For example, even account ‘nobody’ can exploit the issue.

 

 

Como prova de conceito da vulnerabilidade, a equipa da Qualys forneceu um vídeo que demostra a exploração da vulnerabilidade através de um user com baixos privilégios no sistema e sem estar listado no SUDOERS group.

Mais detalhes sobre a vulnerabilidade aqui.

 

Embora outras duas falhas de segurança do Sudo tenham sido divulgadas nos últimos dois anos, a vulnerabilidade divulgada agora é considerada a mais perigosa das três.

The two previous bugs, CVE-2019-14287 (known as the -1 UID bug) and CVE-2019-18634 (known as the pwfeedback bug), were hard to exploit because they required complex and non-standard sudo setups.

 

Esta nova vulnerabilidade é extremamente crítica, pois afeta todos os devices em que o Sudo esteja instalado onde o ficheiro “/etc/sudoers” está presente – a maioria das instalações padrão do Linux.

 

Esta falha tem um impacto ainda maior porque foi introduzida num commit de código (commit 8255ed69) do SUDO em julho de 2011, afetando efetivamente todas as versões do Sudo lançadas nos últimos dez anos.

Os developers do Sudo corrigiram a vulnerabilidade na versão sudo 1.9.5p2 , ao mesmo tempo que a Qualys divulgou publicamente os seus findings.

To test if your system is vulnerable, you have to login as a non-root user and run the “sudoedit -s /” command. Vulnerable systems will throw an error starting with “sudoedit:” while patched ones will display an error starting with “usage:” .

 

Esta falha ainda não foi corrigida no CentOS, RHEL e Amazon Linux.

 

System admins who use Sudo to delegate root privileges to their users should immediately upgrade to sudo 1.9.5p2 or later as soon as possible.

 

 

 

CVE Overview (Please check the CVE site for details)

  • http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3156
    • Possibility of privilege escalation by local user
    • With sudo up to 1.9.5p1, heap-based buffer overflows may allow any local user to elevate privileges without authentication.
    • If you start sudo as sudoedit and add the “-s” option, the out-of-bounds characters copied to the heap-based buffer “user_args” when the command line ends with a backslash will be sized. Because it is not included in, it causes a heap-based buffer overflow.
      
      ------------------------------------------------------------------------
      [email protected]:~$ sudoedit -s '\' `perl -e 'print "A" x 65536'`
      malloc(): corrupted top size
      Aborted
      ------------------------------------------------------------------------
      
    • Please check the primary information for more information .

 

How to check if the vulnerability is supported

According to Qualys, run “sudoedit -s /”

  • If there is a vulnerability (for Debian bullseye), you will get an error starting with “sudo edit:” as shown below.
    
    [email protected]:~$ sudoedit -s /
    sudoedit: /: not a regular file
    

     

  • If there is no vulnerability (for Debian sid), an error starting with “usage:” will appear as shown below.
    
    [email protected]:~$ sudoedit -s /
    usage: sudoedit [-AknS] [-r role] [-t type] [-C num] [-D directory] [-g group] [-h host] [-p prompt] [-R di