Vulnerabilidade na implementação do soquete AF_PACKET do kernel Linux

Três anos após a onda de vulnerabilidades (1, 2, 3, 4, 5) no subsistema AF_PACKET do kernel Linux identificado mais um problema (CVE-2020-14386), permitindo que um usuário local sem privilégios execute código como root ou saia de contêineres isolados se tiver acesso root.

Criar um soquete AF_PACKET e explorar a vulnerabilidade requer privilégios CAP_NET_RAW. No entanto, a permissão especificada pode ser obtida por um usuário sem privilégios em contêineres criados em sistemas com suporte para namespaces de usuário habilitado. Por exemplo, namespaces de usuário são habilitados por padrão no Ubuntu e Fedora, mas não habilitados no Debian e RHEL. No Android, o processo mediaserver tem o direito de criar soquetes AF_PACKET, através dos quais a vulnerabilidade pode ser explorada.

A vulnerabilidade está presente na função tpacket_rcv e é causada por um erro no cálculo da variável netoff. Um invasor pode criar condições nas quais a variável netoff é gravada em um valor menor que a variável maclen, o que causará um estouro ao calcular "macoff = netoff - maclen" e, posteriormente, definir incorretamente o ponteiro para o buffer para dados recebidos. Como resultado, um invasor pode iniciar a gravação de 1 a 10 bytes em uma área além do limite do buffer alocado. Observa-se que está em desenvolvimento um exploit que permite obter direitos de root no sistema.

O problema está presente no kernel desde julho de 2008, ou seja, manifesta-se em todos os núcleos reais. A correção está atualmente disponível como correção. Você pode acompanhar a disponibilidade de atualizações de pacotes em distribuições nas seguintes páginas: Ubuntu, Fedora, SUSE, Debian, RHEL, arco.

Fonte: opennet.ru

Adicionar um comentário