Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
retbleed-speculative-execution-poc — Reproducción del ataque microarquitectónico Retbleed (CVE-2022-29900/29901) en gem5. Desbordamiento de RSB, fuga por canal lateral Flush+Reload y una mitigación lfence verificada. | Kitploit
Herramientas/GitHubGitHub/abdul-kalam2000/retbleed-speculative-execution-poc
Análisis de VulnerabilidadesExplotaciónSeguridad de HardwarePapers e InvestigaciónAprendizaje y EducaciónExplotación de Binarios
GitHubabdul-kalam2000/retbleed-speculative-execution-poc

retbleed-speculative-execution-poc

Reproducción del ataque microarquitectónico Retbleed (CVE-2022-29900/29901) en gem5. Desbordamiento de RSB, fuga por canal lateral Flush+Reload y una mitigación lfence verificada.

Ver Repositorio
hace 17h 54mAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Retbleed: Ejecución Arbitraria de Código Especulativo mediante Desbordamiento del RSB

Una reproducción práctica de Retbleed (CVE-2022-29900 / CVE-2022-29901) — el ataque microarquitectónico de 2022 que rompió la defensa "Retpoline" al demostrar que las instrucciones ret, consideradas seguras durante mucho tiempo, pueden ser secuestradas cuando el Return Stack Buffer (RSB) de la CPU se desborda.

Este proyecto simula el ciclo de vida completo del ataque sobre un modelo de CPU x86 Out-of-Order en gem5: desencadenar un desbordamiento del RSB, filtrar datos secretos byte a byte a través de un canal lateral de caché Flush+Reload, y luego verificar una mitigación por software (lfence) que cierra la fuga.

Proyecto de curso — Arquitectura Avanzada de Computadoras, Otoño 2025, CUNY City College Autores: Abdul Kalam Mansoor & Rebiha Selmani

Por qué esto importa

Los ataques estilo Spectre demostraron que la ejecución especulativa deja efectos secundarios a nivel de caché incluso cuando la CPU "deshace" una predicción errónea. La solución de la industria — Retpoline — reemplazó los saltos indirectos peligrosos con instrucciones ret, bajo la suposición de que los retornos se predicen de forma segura desde una pequeña pila de hardware (el RSB). Retbleed demostró que esa suposición es falsa: agota el RSB con recursión profunda, y la CPU recurre silenciosamente al mismo predictor inseguro que Retpoline fue diseñado para evitar.

Cómo funciona el ataque

EtapaQué ocurre
1. Disparorsb_deep_call() recurre 32 niveles de profundidad, desbordando el RSB de 16 entradas. Cuando la recursión se desenrolla, el RSB queda vacío.
2. FallbackCon el RSB vacío, la CPU recurre al Branch Target Buffer (BTB) para predecir el objetivo del ret — el cual un atacante puede envenenar.
3. GadgetLa ruta especulativa secuestrada ejecuta gadget(), que lee un byte de la contraseña secreta y lo usa para indexar en probe_array, trayendo una página de ese arreglo a la caché.
4. Espía Flush+ReloadAntes del ataque, cada página de probe_array se vacía de la caché (_mm_clflush). Después de que se cierra la ventana especulativa, el programa mide el tiempo de acceso a cada posible valor de byte (__rdtscp) — el que regresa rápido (acierto de caché) revela el byte secreto.

Repetir esto para cada byte de ROOT_PASSWORD reconstruye todo el secreto sin haber llamado nunca arquitectónicamente a gadget().

Resultados

ModoLatencia de accesoResultado
Vulnerable (SECURE_MODE sin definir)~49 ciclos (acierto de caché)Secreto filtrado byte a byte, confirmado por indicadores rojos HIT!
Parcheado (SECURE_MODE definido, _mm_lfence() inyectado)>150 ciclos (fallo de caché / ruido)El ataque falla — la salida muestra SAFE / Found: ???

El lfence obliga a la CPU a resolver la dirección de retorno antes de que cualquier instrucción posterior pueda ejecutarse, colapsando la ventana especulativa antes de que el gadget llegue siquiera a tocar memoria dependiente del secreto.

Contenido del repositorio

root@kitploit:~
src/
  retbleed.c              # Full PoC: trigger, gadget, Flush+Reload spy, and lfence mitigation (toggle via SECURE_MODE)
docs/
  Retbleed_Report.pdf              # Full written report: methodology, related work, gem5 setup, results
  Retbleed_Attack_Demonstration.pptx  # Slide deck used to present the project

Compilación y ejecución

El PoC fue compilado y medido bajo gem5 (DerivO3CPU, un modelo out-of-order — necesario porque los modelos in-order no implementan ejecución especulativa):

root@kitploit:~
gcc -O0 -static -o retbleed src/retbleed.c

./build/X86/gem5.opt configs/deprecated/example/se.py \
  --cpu-type=DerivO3CPU --caches --l2cache \
  --l1d_size=64kB --l1i_size=64kB --cmd=retbleed

Para alternar entre el comportamiento vulnerable y el parcheado, comenta/descomenta esta línea al inicio de retbleed.c:

root@kitploit:~
#define SECURE_MODE

El código usa intrinsics reales de x86 (_mm_clflush, __rdtscp, _mm_lfence) y también puede compilarse y ejecutarse de forma nativa en hardware x86 (gcc -O0 -o retbleed src/retbleed.c) para una demostración más rápida — los resultados variarán según las propias mitigaciones de la CPU anfitriona (eIBRS, parches de microcódigo, etc.), lo cual es en sí mismo una ilustración útil de cuán exhaustivamente se ha parcheado esta clase de bug desde 2022.

Impacto en el mundo real

  • Forzó actualizaciones de emergencia de microcódigo/kernel en Linux, Windows e hipervisores en 2022.
  • Las mitigaciones por software (relleno de la pila de retorno, lfences adicionales) midieron una sobrecarga de rendimiento del 14–39% en hardware afectado.
  • Correcciones de hardware modernas: eIBRS (Enhanced Indirect Branch Restricted Speculation) y seguimiento por software de la profundidad de llamadas.

Referencias

  1. J. Wikner and K. Razavi, "RETBLEED: Arbitrary Speculative Code Execution with Return Instructions," USENIX Security, 2022.
  2. P. Kocher et al., "Spectre Attacks: Exploiting Speculative Execution," IEEE S&P, 2019.
  3. M. Lipp et al., "Meltdown: Reading Kernel Memory from User Space," USENIX Security, 2018.
  4. Y. Yarom and K. Falkner, "FLUSH+RELOAD: A High-Resolution, Low-Noise, L3 Cache Side-Channel Attack," USENIX Security, 2014.
Descargar herramienta