
Pesquisa e prova de conceito para a vulnerabilidade de estouro de heap no kernel Linux CVE-2022-0185.
Pesquisa e prova de conceito para a vulnerabilidade de estouro de heap do kernel Linux CVE-2022-0185.
CVE-2022-0185 – Análise de Estouro de Heap do Kernel Linux Visão Geral
CVE-2022-0185 é uma vulnerabilidade de estouro de buffer baseado em heap na implementação de contexto do sistema de arquivos do kernel Linux. O problema existe na função legacy_parse_param() e pode permitir escalada local de privilégios sob determinadas configurações.
ID do CVE: CVE-2022-0185
Componente: Contexto do sistema de arquivos do kernel Linux
Tipo de vulnerabilidade: Estouro de buffer no heap
Vetor de ataque: Local
Impacto: Escalada de privilégios
Autor: Sandesh Pantha Tipo de projeto: Pesquisa de segurança e demonstração educacional
Referências oficiais:
Entrada NVD: https://nvd.nist.gov/vuln/detail/CVE-2022-0185
Aviso Openwall: https://www.openwall.com/lists/oss-security/2022/01/18/7
Commit de correção do kernel Linux: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=722d94847de29310e8aa03fcbdb41fc92c521756
Causa Raiz da Vulnerabilidade
A vulnerabilidade é causada por uma verificação inadequada de limites ao analisar parâmetros do sistema de arquivos por meio da chamada de sistema fsconfig().
Em legacy_parse_param():
Dados controlados pelo usuário são anexados a um buffer interno
O cálculo de tamanho não impede adequadamente o estouro
Chamadas repetidas podem causar corrupção da memória heap
Isso resulta em uma gravação fora dos limites em objetos adjacentes do heap, o que pode potencialmente levar a:
Corrupção de memória do kernel
Divulgação de informações
Condições de use-after-free
Escalada de privilégios
As versões afetadas incluem kernels Linux anteriores a:
5.11.0
5.16.2
5.15.16
5.10.93
Foco da Pesquisa
Este projeto demonstra:
Criação de contexto do sistema de arquivos usando fsopen()
Injeção de parâmetros por meio de fsconfig()
Técnicas de heap spraying no kernel
Grooming de heap baseado em filas de mensagens
Spraying de buffers de socket
Padrões controlados de reutilização de objetos
O objetivo deste repositório é educacional: compreender o comportamento do heap do kernel e a metodologia de exploração de vulnerabilidades em um ambiente de laboratório controlado.
Ambiente de Laboratório
Os testes devem ser realizados somente em uma máquina virtual isolada.
Configuração recomendada:
Ubuntu 20.04 ou Debian com um kernel vulnerável
QEMU ou VirtualBox
Snapshot habilitado antes dos testes
Ambiente de não produção
Nunca execute isto em sistemas de produção.
Mitigação
A vulnerabilidade foi corrigida por meio da correção da lógica de validação de limites em legacy_parse_param().
Etapas de mitigação:
Atualize para uma versão de kernel corrigida
Desative namespaces de usuário sem privilégios quando possível
Monitore atividades anormais de contexto do sistema de arquivos
Versões de kernel que contêm a correção:
5.16.2
5.15.16
5.10.93
Referência do patch: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/
O Que Este Projeto Demonstra
Compreensão aprofundada dos componentes internos do kernel Linux
Conhecimento do layout da memória heap
Manipulação do ciclo de vida de objetos do kernel
Metodologia segura de pesquisa de vulnerabilidades
Práticas de divulgação responsável
Uso Ético
Este projeto é fornecido apenas para fins educacionais e de pesquisa de segurança defensiva.
Não tente usar este conhecimento em sistemas sem autorização explícita.