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-2025-39866 — Prova di concetto per CVE-2025-39866 (use-after-free e race condition) | Kitploit
Strumenti/GitHubGitHub/bytereaper77/cve-2025-39866
Analisi delle VulnerabilitàExploitApprendimento e FormazioneSviluppo PayloadBinary Exploitation
GitHubbytereaper77/cve-2025-39866

CVE-2025-39866

Prova di concetto per CVE-2025-39866 (use-after-free e race condition)

Vedi Repository
4211 mesi 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-2025-39866 - use-after-free

Autore: Byte Reaper

Descrizione

Questo POC tenta di sfruttare la vulnerabilità CVE-2025-39866, un difetto nei sistemi Linux < 6.12.16 dovuto alla mancanza di uno spinlock per i thread, che causa una race condition. Il primo thread cerca di usare la struct wb mentre il thread 2 libera questa struttura, facendo sì che il primo thread abbia a che fare con un puntatore libero, portando a un kernel panic del sistema. Possiamo dividere l'idea di sfruttare la vulnerabilità nelle seguenti fasi:

root@kitploit:~
step 1 : Create thread 1 "main pid" 
	 - get root dentry 
	- create file txt writeback target 
	- create strcut inode 
	 - Create object wb 
	 - save pointer wb in wb_old
Step 2: 
- Create Thread 2 (kthread) that schedules a work item.
- The work item runs “inode_switch_wbs_work_fn” which updates “inode->i_wb” and schedules the critical free via “wb_put_many”.
step 3 :
	- thread 2 : free wb_olb 
	- thread 1 -> pointer - free object wb (free old)
	-> access free address -> crash kernel (segfault)

Requisiti :

root@kitploit:~
Linux x86_64
kernel linux  < 6.12.16

Compilazione :

root@kitploit:~
	1 - He created a Makefile and included these commands to compile and build the kernel module:
	obj-m += exploit.o

	KDIR := /usr/src/linux-headers-6.12.38+kali-amd64
	PWD := $(shell pwd)

	all:
	        make -C $(KDIR) M=$(PWD) modules

	clean:
	        make -C $(KDIR) M=$(PWD) clean

Esecuzione :

root@kitploit:~
	# make clean 
	# make 
	1 -  You will find a file named "exploit.ko," which is a kernel module. To load it into the kernel space, use the insmod tool :
	# insmod exploit.ko 

Riferimenti :

  • NVD : https://nvd.nist.gov/vuln/detail/CVE-2025-39866
  • CVE : https://www.cve.org/CVERecord?id=CVE-2025-39866

Osservazione :

  • Presto, svilupperò un exploit che utilizza altri metodi per manipolare la struct wb, come ridurre il refcount o eliminare la cache wb dalla lista cache. Aggiungerò anche tentativi di eseguire Memory Spraying e tentativi di rilevare perdite (leak) o aumentare i privilegi nel sistema. Questa è solo una proof of concept per la vulnerabilità.

Risolvere il problema

Il problema principale del bug è la mancanza di uno "spinlock" per la sincronizzazione dei thread. La soluzione qui è:

Prima (Slab/Slub Allocation) , allocare uno slab/slub specifico per ogni thread, e nessun thread può controllare o manipolare la dimensione della memoria di un altro thread.

In secondo luogo (Synchronization) , configurare la Workqueue per evitare interferenze e race condition, dove ogni thread completa il proprio compito e passa a un altro thread invece di cambiare WB contemporaneamente o usare la funzione wb_wakeup_delayed.

In terzo luogo (HLE/RTM) : attivare HLE/RTM nel kernel dipende dall'architettura del processore, ma se supporta queste due funzionalità, perché non usarle nel kernel, ad esempio, per dirigere il flusso di un programma o quando si verifica un errore, tentando di tornare a un'altra eccezione invece di mandare in crash "rollback" tramite istruzioni come XBEGIN, XABORT, XEN.

Licenza :

MIT

Scarica lo strumento