Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/k0n9-log/cve-2023-6931
Forensia de MemóriaAnálise de VulnerabilidadesExploraçãoAprendizado e EducaçãoExploração de Binários
GitHubk0n9-log/cve-2023-6931

CVE-2023-6931

CVE-2023-6931 PoC de pânico do kernel

Ver Repositório
22há 1 anoAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2023-6931

PoC de Pânico do Kernel para CVE-2023-6931

Descrição

CVE-2023-6931 é uma vulnerabilidade em perf_event que leva a um estouro de buffer no heap causado por um estouro de inteiro no read_size de um grupo.

O que é um Evento de Performance (perf event)?

perf_events é um framework de monitoramento e análise de performance fornecido pelo kernel Linux. Esse framework permite o rastreamento de vários dados relacionados à performance gerados tanto por componentes de hardware quanto de software.

Principais Usos

  • Rastreamento de Eventos de Hardware Rastreia eventos como ciclos de CPU, contagens de execução de instruções, faltas de cache (cache misses) e mais.
  • Rastreamento de Eventos de Software Monitora eventos como troca de contexto (switching), falhas de página (page faults), mudanças de contexto (context switches), etc.
  • Rastreamento de Eventos Personalizados Permite o rastreamento de eventos específicos de determinadas aplicações ou do kernel.

Componentes do perf

  • Chamada de sistema perf_event_open Uma interface que permite que o espaço do usuário (user-space) configure e controle eventos de performance no kernel. É usada para criar, agrupar, controlar ou ler dados de eventos.
  • Contadores de Performance Os dados efetivamente rastreados pela CPU e pelo kernel, como o número de instruções executadas ou a utilização da CPU
  • Grupos de Eventos Permite que vários eventos de performance sejam agrupados e gerenciados em conjunto. Um evento líder de grupo (group leader) atua como representante do grupo, enquanto os eventos irmãos (sibling events) representam os demais eventos dentro do grupo

Requisito

  1. O valor de /proc/sys/kernel/perf_event_paranoid deve ser 1 ou menor
  2. O número de descritores de arquivo que podem ser abertos deve ser de pelo menos cerca de 4100. Isso pode ser verificado e modificado usando o comando ulimit -n.
  3. A opção do kernel CONFIG_PERF_EVENTS deve estar definida.

Descrição

A vulnerabilidade surge devido a um estouro de inteiro no read_size de um grupo. A função perf_event_validate_size realiza a validação do read_size. No entanto, a forma como read_size é validado apenas verifica o read_size do evento atual.

O ponto-chave é que, durante cada validação, apenas o evento atual é validado, enquanto os eventos anteriores não são. Se PERF_FORMAT_GROUP estiver definido para o líder do grupo, simplesmente adicionar um evento atual pode aumentar o read_size do líder do grupo.

Isso acaba causando um problema em perf_read_group. O cálculo de event->read_size é baseado no read_format do líder do grupo, multiplicado por nr_siblings. Como a variável read_size é um u16 de 2 bytes, o valor máximo que ela pode armazenar é 0xffff.

Para explorar isso, o atacante primeiro cria um evento líder de grupo com todas as opções possíveis de read_format definidas. Em seguida, vários eventos irmãos são criados. Esses irmãos definem apenas PERF_FORMAT_TOTAL_TIME_RUNNING no read_Format para garantir que não haja problemas de validação em perf_event_validate_size. Como resultado, o valor de nr_siblings se torna extremamente grande, mas como cada evento irmão passa pela validação individualmente, não há problemas nesse estágio.

Quando perf_read_group é chamado nesse estado, o read_size do líder do grupo continua aumentando porque PERF_FORMAT_GROUP está definido. Eventualmente, isso leva a um estouro de inteiro, e kzalloc aloca um buffer muito pequeno. No entanto, como o número real de eventos é muito grande, ocorre um estouro de buffer no heap, causando um pânico do kernel.

Baixar ferramenta