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/bytereaper77/cve-2025-39866
Análise de VulnerabilidadesExploraçãoAprendizado e EducaçãoDesenvolvimento de PayloadsExploração de Binários
GitHubbytereaper77/cve-2025-39866

CVE-2025-39866

Prova de conceito para CVE-2025-39866 (UAF e condição de corrida)

Ver Repositório
42há 11 mesesAinda 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-2025-39866 - use-after-free

Autor: Byte Reaper

Descrição

Este POC tenta explorar a vulnerabilidade CVE-2025-39866, que é uma falha em sistemas Linux < 6.12.16 devido à falta de um spinlock para threads, causando uma condição de corrida. A primeira thread tenta usar a struct wb enquanto a thread 2 libera essa estrutura, fazendo com que a primeira thread lide com um ponteiro liberado, levando a um kernel panic no sistema. Podemos dividir a ideia de explorar a vulnerabilidade nas seguintes etapas:

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)

Requisitos :

root@kitploit:~
Linux x86_64
kernel linux  < 6.12.16

Compilação :

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

Execução :

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 

Referências :

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

Observação :

  • Em breve, desenvolverei um exploit que usa outros métodos para manipular a struct wb, como reduzir o refcount ou excluir o cache wb da lista de cache. Também adicionarei tentativas de executar Memory Spraying e tentativas de detectar vazamentos ou escalar privilégios no sistema. Este é apenas uma prova de conceito da vulnerabilidade.

Resolvendo o problema

O principal problema do bug é a falta de um "spinlock" para sincronização de threads. A solução aqui é:

Primeiro (Alocação Slab/Slub) , alocar um slab/slub específico para cada thread, e nenhuma thread pode controlar ou manipular o tamanho de memória de outra thread.

Segundo (Sincronização) , configurar a Workqueue para evitar interferências e condições de corrida, onde cada thread termina sua tarefa e passa para outra thread em vez de alternar o WB ao mesmo tempo ou usar a função wb_wakeup_delayed.

Terceiro (HLE/RTM) : Ativar HLE/RTM no kernel depende da arquitetura do processador, mas se ele suportar esses dois recursos, por que não usá-los no kernel, por exemplo, na direção do fluxo de um programa ou quando um erro ocorre, tentando reverter para outra exceção em vez de travar "rollback" por meio de instruções como XBEGIN, XABORT, XEN.

Licença :

MIT

Baixar ferramenta