Vulnerabilidade no VFS do núcleo Linux que permite elevar as próprias permissões

Uma vulnerabilidade foi identificada na API Filesystem Context, fornecida pelo núcleo do Linux (CVE-2022-0185), permitindo que um usuário local obtenha privilégios de root no sistema. O pesquisador que descobriu o problema publicou uma demonstração de um exploit que permite a execução de código com privilégios de root no Ubuntu 20.04 na configuração padrão. O código do exploit está previsto para ser publicado no GitHub dentro de uma semana, após a distribuição lançar uma atualização com a correção da vulnerabilidade.

A vulnerabilidade está presente na função legacy_parse_param() no VFS e é causada pela falta de uma verificação adequada do tamanho máximo dos parâmetros fornecidos em sistemas de arquivos que não suportam a API Filesystem Context. Ao passar um parâmetro excessivamente grande, pode-se provocar um estouro de inteiro na variável utilizada para calcular o tamanho dos dados a serem gravados — no código há uma verificação de estouro de buffer "if (len > PAGE_SIZE - 2 - size)", que não é acionada se o valor de size for maior que 4094 devido a um estouro de inteiro pela borda inferior (integer underflow, ao converter 4096 - 2 - 4095 para unsigned int, o resultado será 2147483648).

O erro mencionado permite que, ao acessar uma imagem de sistema de arquivos especialmente formatada, ocorra um estouro de buffer que pode sobrescrever dados do núcleo, que seguem a área de memória alocada. Para explorar a vulnerabilidade, é necessário ter direitos CAP_SYS_ADMIN, ou seja, privilégios de administrador. O problema é que um usuário não privilegiado pode obter tais poderes em um contêiner isolado, se o suporte a namespaces de IDs de usuários estiver ativado no sistema (user namespaces). Por exemplo, user namespaces estão ativados por padrão no Ubuntu e Fedora, mas não estão ativos no Debian e RHEL (a menos que plataformas de isolamento de contêineres sejam utilizadas).

O problema ocorre a partir do núcleo Linux 5.1 e foi corrigido nas atualizações de ontem 5.16.2, 5.15.16, 5.10.93, 5.4.173. Atualizações de pacotes com a correção da vulnerabilidade já foram lançadas para RHEL, Debian, Fedora e Ubuntu. A correção ainda não está disponível no Arch Linux, Gentoo, SUSE e openSUSE. Como uma solução alternativa para sistemas que não utilizam isolamento por contêiner, pode-se definir o valor de sysctl "user.max_user_namespaces" como 0: echo "user.max_user_namespaces=0" > /etc/sysctl.d/userns.conf # sysctl -p /etc/sysctl.d/userns.conf

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster