# CVE-2021-3156
### Identificação
<ul>
<li>Em 2011 foi intoduzido um <i>bug</i> no código fonte do programa <i>sudo</i> que permite a um atacante, fazendo uso de um <i>heap based buffer overflow</i>, obter privilégios <i>root</i>.</li>
<li>Investigação desta vulnerabilidade parece indicar que todos os sistemas <i>Unix-like</i> (Linux, macOS, AIX, Solaris, etc) são afectados pela mesma. Contudo o foco da investigação foram sistemas Linux.</li>
<li>Particularmente, sistemas Linux com versões do programa <i>sudo</i> anteriores à versão 1.9.5p2 são vulneráveis a esta falha.</li>
</ul>
### Catalogação
<ul>
<li> Ainda que introduzida em 2011 esta vulnerabilidade foi apenas descoberta em 2021 por uma equipa de investigação da Qualys, empresa focada em ciber segirança.</li>
<li>Os investigadores relatam que a descoberta foi feita através de análise estática do código fonte do programa <i>sudo</i>. Inicialmente detetaram numa função denominada de <i>set_cmnd()</i> uma forma de incrementar um ponteiro para além do espaço de um <i>buffer</i> causando um <i>overflow</i>. Por norma esta função seria segura na medida em que qualquer input que utilizasse seria avaliado por uma função auxiliar, que, filtrando o mesmo, impossibilita a ocorrência de <i>overflows</i> como mencionado. Contudo, esta função auxiliar não é utilizada pelo programa chamando o <i>sudo</i> como <i>'sudoedit'</i> com o argumento <i>'-s'</i> no terminal, e daí a ocurrência da vulnerabilidade.
<li>A gravidade deste CVE foi clacificada como 7.8/10 (high) pela <i>National Vulnerability Database</i>.</li>
</ul>
### Exploit
<ul>
<li>A equipa por detrás desta descoberta, como parte da investigação, desenvolveu um <i>exploit</i> capaz de obter privilégios <i>root</i> num sistema vulnerável. Este foi publicado e encontra-se acessível a todos.</li>
<li>Devido à popularidade desta descoberta muitos outros investigadores independentes desenvolveram e publicaram os seu próprios exploits, pelo que é fácil encontrar código capaz de fazer uso desta vulnerabilidade.</li>
</ul>
### Ataque
<ul>
<li>Vulnerabilidades como esta, que permitem <i>priviledge excalation</i> de um dado utilizador, são normalmente utilizadas como parte de uma <i>exploitation chain</i>, onde o atacante faz uso de outras vulnerabilidades para ganhar acesso a um sistema e apenas depois procura alterar os seus privilégios dentro do mesmo.</li>
<li>Detectar e corrigir este tipo de problemas pode revelar-se crucial em impedir um atacante de atingir o seu objectivo, mesmo que este tenha comprometido outras partes do sistema.</li>
</ul>