Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2023-6931 — CVE-2023-6931 PoC di kernel panic | Kitploit
Strumenti/GitHubGitHub/k0n9-log/cve-2023-6931
Memory ForensicsAnalisi delle VulnerabilitàExploitApprendimento e FormazioneBinary Exploitation
GitHubk0n9-log/cve-2023-6931

CVE-2023-6931

CVE-2023-6931 PoC di kernel panic

Vedi Repository
21 anno faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2023-6931

PoC di Kernel Panic per CVE-2023-6931

Descrizione

CVE-2023-6931 è una vulnerabilità in perf_event che porta a un heap buffer overflow causato da un integer overflow nel read_size di un gruppo.

Cos'è un Performance Event (perf event)?

perf_events è un framework di monitoraggio e analisi delle prestazioni fornito dal kernel Linux. Questo framework consente di tracciare vari dati relativi alle prestazioni generati sia da componenti hardware che software.

Usi principali

  • Tracciamento degli eventi hardware Traccia eventi come cicli di CPU, conteggi di istruzioni eseguite, cache miss e altro.
  • Tracciamento degli eventi software Monitora eventi come commutazioni, page fault, context switch, ecc.
  • Tracciamento di eventi personalizzati Consente di tracciare eventi specifici per determinate applicazioni o per il kernel.

Componenti di perf

  • Chiamata di sistema perf_event_open Un'interfaccia che consente allo spazio utente di configurare e controllare gli eventi di prestazione nel kernel. Viene utilizzata per creare, raggruppare, controllare o leggere i dati degli eventi.
  • Contatori di prestazione I dati effettivamente tracciati dalla CPU e dal kernel, come il numero di istruzioni eseguite o l'utilizzo della CPU
  • Gruppi di eventi Consente di raggruppare e gestire insieme più eventi di prestazione. Un evento leader del gruppo agisce come rappresentante del gruppo, mentre gli eventi sibling rappresentano gli eventi rimanenti all'interno del gruppo

Requisiti

  1. Il valore di /proc/sys/kernel/perf_event_paranoid deve essere 1 o inferiore
  2. Il numero di file descriptor che possono essere aperti deve essere almeno circa 4100. Questo può essere verificato e modificato usando il comando ulimit -n.
  3. L'opzione del kernel CONFIG_PERF_EVENTS deve essere impostata.

Descrizione

La vulnerabilità sorge a causa di un integer overflow nel read_size di un gruppo. La funzione perf_event_validate_size esegue la validazione del read_size. Tuttavia, il modo in cui viene validato il read_size controlla solo il read_size dell'evento corrente.

Il punto chiave è che durante ogni validazione viene validato solo l'evento corrente, mentre gli eventi precedenti non lo sono. Se PERF_FORMAT_GROUP è impostato per il leader del gruppo, la semplice aggiunta di un evento corrente può aumentare il read_size del leader del gruppo.

Questo alla fine causa un problema in perf_read_group. Il calcolo di event->read_size si basa sul read_format del leader del gruppo, moltiplicato per nr_siblings. Poiché la variabile read_size è un u16 a 2 byte, il valore massimo che può contenere è 0xffff.

Per sfruttare questo, l'attaccante crea prima un evento leader del gruppo con tutte le possibili opzioni di read_format impostate. Successivamente, vengono creati numerosi eventi sibling. Questi sibling impostano solo PERF_FORMAT_TOTAL_TIME_RUNNING nel read_Format per garantire che non ci siano problemi di validazione in perf_event_validate_size. Di conseguenza, il valore di nr_siblings diventa estremamente grande, ma poiché ogni evento sibling supera la validazione individualmente, non ci sono problemi in questa fase.

Quando perf_read_group viene chiamato in questo stato, il read_size del leader del gruppo continua ad aumentare perché PERF_FORMAT_GROUP è impostato. Alla fine, questo porta a un integer overflow e kzalloc alloca un buffer molto piccolo. Tuttavia, poiché il numero effettivo di eventi è molto grande, si verifica un heap buffer overflow, causando un kernel panic.

Scarica lo strumento