An almost perfect vulnerability for kernel rootkits – Uma quase perfeita vulnerabilidade para carregar rootkits em kernel

English / Português

English:

Access to the kernel of a system means to get access to one of the most interesting part of a computer. When accessing the kernel, an attacker gets privilege to do many things one could not do in user space. Therefore, I started to think about vulnerabilities that allow to load kernel modules without proper permissions. After browsing a bit, I found out that similar vulnerabilities were found in the Linux kernel. The vulnerabilities identified by CVE-2013-7421 [1] and CVE-2014-9644 [2]. In fact these two CVEs are about the same vulnerability and they could be considered as duplicated CVEs. The first patch [3] did not really fix the problem and even so allowed exploitation. After a few days since the first patch, a new one [4] appeared and fixed the problem. This post was written based on my understanding of the information and references available on [5].

Português:

Acesso ao kernel de um sistema significa ganhar acesso a uma das partes mais interessantes de um computador. Ao acessar o kernel, um atacante ganha privilégio para fazer muitas coisas que não poderia ser feito no espaço de usuárioSendo assim, comecei a pensar em vulnerabilidades que permitissem carregar módulos no kernel sem os privilégios necessários. Depois de pesquisar um pouco, descobri que vulnerabilidades similares foram encontradas no kernel do Linux. As vulnerabilidades identificadas por CVE-2013-7421 [1] e CVE-2014-9644 [2]. Na verdade, estes dois CVEs representam a mesma vulnerabilidade, podendo ser considerados como CVEs duplicados. A primeira correção [3] não eliminava o problema por completo e ainda assim permitia a exploração. Após alguns poucos dias desde a primeira correção, uma nova [4] apareceu e corrigiu o problema. Este post foi escrito baseado na minha interpretação das informações e referências disponíveis em [5].

Continue reading “An almost perfect vulnerability for kernel rootkits – Uma quase perfeita vulnerabilidade para carregar rootkits em kernel”

The role of hypothesis and a (old) way to escalate privileges on FreeBSD – O papel da hipótese e um modo de escalar privilégios no FreeBSD

English / Português

English:

I do not remember when, but certain day I decided to look for vulnerabilities in the FreeBSD kernel. As it was a long time ago, I do not remember almost any detail of the process, I just remember I found one NULL pointer dereference without reading the source code or using fuzzing techniques. Nowadays that is not one of the most interesting vulnerabilities because is necessary some tweaks  to be vulnerable and to allow exploitation but my goal with this post is also to write a bit about the discovery process.

Português:

Não lembro exatamente quando, mas um certo dia, decidi começar a procurar vulnerabilidades no kernel do FreeBSD. Como faz muito tempo, não lembro de quase nenhum detalhe do processo, apenas lembro, que sem ler o código-fonte e sem  usar técnicas de fuzzing, acabei descobrindo um NULL pointer dereference. Nos dias atuais essa não é uma das vulnerabilidade mais interessantes porque precisa de alguns ajustes para estar vulnerável e permitir a exploração, mas meu objetivo nesse post é também escrever um pouco sobre o processo de descoberta.

Continue reading “The role of hypothesis and a (old) way to escalate privileges on FreeBSD – O papel da hipótese e um modo de escalar privilégios no FreeBSD”