Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 753

one_gadget RCE

O que é one_gadget RCE?

one_gadget RCEAtalho de exploracao usado em CTFs e na pratica: um unico endereco da libc lanca uma shell, desde que as restricoes de registos e pilha sejam cumpridas.


Um one_gadget e uma sequencia de instrucoes dentro da glibc que acaba por chamar execve("/bin/sh", NULL, NULL) quando atingida com determinadas precondicoes de registos e pilha. A ferramenta one_gadget de david942j varre a libc e lista esses enderecos com as suas restricoes (rax == 0, rsp+0x40 == NULL, etc.). Um atacante que consiga raptar um unico ponteiro de funcao ou endereco de retorno (GOT overwrite, ataques a FILE streams, unsorted bin) obtem assim uma shell sem construir uma cadeia ROP completa. As restricoes devem ser satisfeitas com cuidado, muitas vezes com gadgets auxiliares ou stack pivots. Mitigacoes: constant blinding, CFI, sandboxes seccomp e libcs strippadas/modificadas que removam os gadgets canonicos.

Exemplos

  1. 01

    Lancar /bin/sh com one_gadget apos um unico GOT overwrite num binario libc-2.31.

  2. 02

    Exploit FILE-stream que corrompe a vtable de _IO_2_1_stdout_ para saltar para um one_gadget viavel.

Perguntas frequentes

O que é one_gadget RCE?

Atalho de exploracao usado em CTFs e na pratica: um unico endereco da libc lanca uma shell, desde que as restricoes de registos e pilha sejam cumpridas. Pertence à categoria Ataques e ameaças da cibersegurança.

O que significa one_gadget RCE?

Atalho de exploracao usado em CTFs e na pratica: um unico endereco da libc lanca uma shell, desde que as restricoes de registos e pilha sejam cumpridas.

Como funciona one_gadget RCE?

Um one_gadget e uma sequencia de instrucoes dentro da glibc que acaba por chamar execve("/bin/sh", NULL, NULL) quando atingida com determinadas precondicoes de registos e pilha. A ferramenta one_gadget de david942j varre a libc e lista esses enderecos com as suas restricoes (rax == 0, rsp+0x40 == NULL, etc.). Um atacante que consiga raptar um unico ponteiro de funcao ou endereco de retorno (GOT overwrite, ataques a FILE streams, unsorted bin) obtem assim uma shell sem construir uma cadeia ROP completa. As restricoes devem ser satisfeitas com cuidado, muitas vezes com gadgets auxiliares ou stack pivots. Mitigacoes: constant blinding, CFI, sandboxes seccomp e libcs strippadas/modificadas que removam os gadgets canonicos.

Como se defender contra one_gadget RCE?

As defesas contra one_gadget RCE costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.

Quais são outros nomes para one_gadget RCE?

Nomes alternativos comuns: one_gadget.

Termos relacionados