Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2023-6931 — CVE-2023-6931 pánico del kernel PoC | Kitploit
Herramientas/GitHubGitHub/k0n9-log/cve-2023-6931
Forensia de MemoriaAnálisis de VulnerabilidadesExplotaciónAprendizaje y EducaciónExplotación de Binarios
GitHubk0n9-log/cve-2023-6931

CVE-2023-6931

CVE-2023-6931 pánico del kernel PoC

Ver Repositorio
22hace 1 añoAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2023-6931

PoC de Kernel Panic para CVE-2023-6931

Descripción

CVE-2023-6931 es una vulnerabilidad en perf_event que conduce a un desbordamiento de búfer en el heap causado por un desbordamiento de enteros en el read_size de un grupo.

¿Qué es un Evento de Rendimiento (perf event)?

perf_events es un marco de monitoreo y análisis de rendimiento proporcionado por el kernel de Linux. Este marco permite el seguimiento de varios datos relacionados con el rendimiento generados tanto por componentes de hardware como de software.

Usos principales

  • Seguimiento de eventos de hardware Realiza un seguimiento de eventos como ciclos de CPU, recuentos de ejecución de instrucciones, fallos de caché, etc.
  • Seguimiento de eventos de software Monitorea eventos como conmutación de tareas, fallos de página, cambios de contexto, etc.
  • Seguimiento de eventos personalizados Permite el seguimiento de eventos específicos de ciertas aplicaciones o del kernel.

Componentes de perf

  • Llamada al sistema perf_event_open Una interfaz que permite al espacio de usuario configurar y controlar eventos de rendimiento en el kernel. Se utiliza para crear, agrupar, controlar o leer datos de eventos.
  • Contadores de rendimiento Los datos reales rastreados por la CPU y el kernel, como el número de instrucciones ejecutadas o la utilización de la CPU.
  • Grupos de eventos Permite agrupar y gestionar múltiples eventos de rendimiento juntos. Un evento líder de grupo actúa como representante del grupo, mientras que los eventos hermanos representan los eventos restantes dentro del grupo.

Requisito

  1. El valor de /proc/sys/kernel/perf_event_paranoid debe ser 1 o inferior.
  2. El número de descriptores de archivo que se pueden abrir debe ser al menos alrededor de 4100. Esto se puede verificar y modificar usando el comando ulimit -n.
  3. La opción del kernel CONFIG_PERF_EVENTS debe estar establecida.

descripción

La vulnerabilidad surge debido a un desbordamiento de enteros en el read_size de un grupo. La función perf_event_validate_size realiza la validación del read_size. Sin embargo, la forma en que se valida read_size solo verifica el read_size del evento actual.

El punto clave es que durante cada validación, solo se valida el evento actual, mientras que los eventos anteriores no. Si PERF_FORMAT_GROUP está configurado para el líder del grupo, simplemente agregar un evento actual puede aumentar el read_size del líder del grupo.

Esto finalmente causa un problema en perf_read_group. El cálculo de event->read_size se basa en el read_format del líder del grupo, multiplicado por nr_siblings. Dado que la variable read_size es un u16 de 2 bytes, el valor máximo que puede contener es 0xffff.

Para explotar esto, el atacante primero crea un evento líder de grupo con todas las opciones posibles de read_format configuradas. Luego, se crean numerosos eventos hermanos. Estos hermanos solo configuran PERF_FORMAT_TOTAL_TIME_RUNNING en el read_format para garantizar que no haya problemas de validación en perf_event_validate_size. Como resultado, el valor de nr_siblings se vuelve extremadamente grande, pero dado que cada evento hermano pasa la validación individualmente, no hay problemas en esta etapa.

Cuando se llama a perf_read_group en este estado, el read_size del líder del grupo continúa aumentando porque PERF_FORMAT_GROUP está configurado. Eventualmente, esto conduce a un desbordamiento de enteros, y kzalloc asigna un búfer muy pequeño. Sin embargo, dado que el número real de eventos es muy grande, se produce un desbordamiento de búfer en el heap, causando un pánico del kernel.

Descargar herramienta