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

one_gadget RCE

Qu'est-ce que one_gadget RCE ?

one_gadget RCERaccourci d'exploitation utilise en CTF et en pratique : un seul saut dans libc lance un shell si les contraintes sur registres et pile sont satisfaites.


Un one_gadget est une sequence d'instructions dans glibc qui finit par appeler execve("/bin/sh", NULL, NULL) lorsqu'on l'atteint avec certaines preconditions de registres et de pile. L'outil one_gadget de david942j scanne libc et liste ces adresses avec leurs contraintes (par exemple rax == 0 ou rsp+0x40 == NULL). Un attaquant capable de detourner un seul pointeur de fonction ou une adresse de retour (GOT overwrite, attaques sur les FILE streams, unsorted bin) peut obtenir un shell sans construire une chaine ROP complete. Les contraintes doivent etre soigneusement satisfaites, souvent via des gadgets auxiliaires ou des stack pivots. Parades : constant-blinding, CFI, sandboxes seccomp, libc strippee/modifiee supprimant les gadgets canoniques.

Exemples

  1. 01

    Lancer /bin/sh via one_gadget apres un seul GOT overwrite sur un binaire libc-2.31.

  2. 02

    Exploit FILE-stream corrompant la vtable de _IO_2_1_stdout_ pour sauter sur un one_gadget viable.

Questions fréquentes

Qu'est-ce que one_gadget RCE ?

Raccourci d'exploitation utilise en CTF et en pratique : un seul saut dans libc lance un shell si les contraintes sur registres et pile sont satisfaites. Cette notion relève de la catégorie Attaques et menaces en cybersécurité.

Que signifie one_gadget RCE ?

Raccourci d'exploitation utilise en CTF et en pratique : un seul saut dans libc lance un shell si les contraintes sur registres et pile sont satisfaites.

Comment fonctionne one_gadget RCE ?

Un one_gadget est une sequence d'instructions dans glibc qui finit par appeler execve("/bin/sh", NULL, NULL) lorsqu'on l'atteint avec certaines preconditions de registres et de pile. L'outil one_gadget de david942j scanne libc et liste ces adresses avec leurs contraintes (par exemple rax == 0 ou rsp+0x40 == NULL). Un attaquant capable de detourner un seul pointeur de fonction ou une adresse de retour (GOT overwrite, attaques sur les FILE streams, unsorted bin) peut obtenir un shell sans construire une chaine ROP complete. Les contraintes doivent etre soigneusement satisfaites, souvent via des gadgets auxiliaires ou des stack pivots. Parades : constant-blinding, CFI, sandboxes seccomp, libc strippee/modifiee supprimant les gadgets canoniques.

Comment se défendre contre one_gadget RCE ?

Les défenses contre one_gadget RCE combinent habituellement des contrôles techniques et des pratiques opérationnelles, comme détaillé dans la définition ci-dessus.

Quels sont les autres noms de one_gadget RCE ?

Noms alternatifs courants : one_gadget.

Termes liés