Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
litebox-snp-novalidation-userptr — Primitiva de escritura local alta: LiteBox v0.1.0 SNP UserPtr es NoValidation, por lo que el búfer de llamada al sistema del invitado puede ser una VA del kernel | Kitploit
Herramientas/GitHubGitHub/abraxas/litebox-snp-novalidation-userptr
Escalada de PrivilegiosForensia de MemoriaAnálisis de VulnerabilidadesExplotaciónVirtualización de SeguridadSeguridad en la NubeSeguridad de HardwarePapers e Investigación

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
Explotación de Binarios
GitHubabraxas/litebox-snp-novalidation-userptr

litebox-snp-novalidation-userptr

Primitiva de escritura local alta: LiteBox v0.1.0 SNP UserPtr es NoValidation, por lo que el búfer de llamada al sistema del invitado puede ser una VA del kernel

Ver Repositorio
7hace 4 díasAún no revisado

Abraxas Labs - litebox-snp-novalidation-userptr

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  litebox-snp-novalidation-userptr

litebox-snp-novalidation-userptr

Clase: Primitiva de escritura (R/W de invitado a kernel SNP) Alcance: Local

LiteBox v0.1.0 (d8556e3) - Microsoft

El LinuxKernel de SNP conecta UserConstPtr / UserMutPtr a NoValidation, que devuelve el puntero sin cambios. El comentario es TODO: implement pointer validation to ensure the pointers are in user space. LVBS ya verifica el rango USER_ADDR_MIN..USER_ADDR_END (0x10000 .. 0x7ffffffff000 en x86_64) y envuelve las copias en STAC/CLAC. SNP no lo hace. El mmap de invitado de una VA del kernel es rechazado (TASK_ADDR_MAX), por lo que los almacenes CPL3 no pueden alcanzar el heap del kernel. La ruta de syscall se ejecuta en modo kernel y sí puede. memcpy_fallible es rep movsb en modo supervisor.

Este remanente es R/W de invitado a kernel SNP (VMPL2 LiteBox). No es host VMPL0, ni hipervisor, ni firmware SNP.

IDsin CVE todavía
ClasePrimitiva de escritura (R/W de invitado a kernel SNP)
AlcanceLocal (espacio de usuario de invitado no confiable dentro de litebox_runner_snp)
CWECWE-823, CWE-119
CVSSAlto: 8.8 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Productomicrosoft/litebox
Afectadov0.1.0 (d8556e33676e47244bfefa139c1e9ff95bd67d53) plataforma de kernel SNP. El TODO sigue en origin/main a fecha de 97001fd
Authinvitado ya en ejecución dentro de la VM SNP
LicenciaGNU Affero GPL v3.0
Laboratoriosolo 127.0.0.1. Sin hardware SNP

Qué puede hacer un atacante

Quién: espacio de usuario de invitado no confiable dentro de litebox_runner_snp. El issue #505 (RFC abierto) es de esta clase. LVBS lo implementó. SNP no.

Integridad (gadget probado en laboratorio)

El laboratorio es un gadget copy_from_slice en modo supervisor de los dos validadores más una copia del pin litebox_platform_linux_kernel/src/lib.rs. No es una syscall de invitado sobre hardware SNP.

RutaVA destinoResultado
SNP NoValidation (identidad)0x1000 (por debajo de USER_ADDR_MIN) y 0xffff800000000000 (GVA_OFFSET)acepta; memcpy escribe LITEBOX-SNP-NOVALIDATION-USERPTR-WITNESS en el objeto etiquetado como kernel
Verificación de rango de LVBSmismos destinos de kernelrechaza, errno=14 EFAULT, objeto de kernel vacío
Ambosdestino de usuario legal 0x400000ambos copian el testigo en el objeto de usuario
Archivo pin en la imagenn/acomentario TODO más UserConstPtr / UserMutPtr conectados a NoValidation (LvbsValidateAccess ausente)

Integridad (inferida de la ruta de syscall del pin)

Método + sinkPrivilegio
read / readv / pread / recv* / getcwd / uname / epoll_pwait con buf = VA de kernel -> UserMutPtr::copy_from_slice -> memcpy_fallible (rep movsb)escribir hasta MAX_KERNEL_BUF_SIZE (512 KiB) por syscall, o fragmentos de página de iovec, en cualquier VA de kernel SNP mapeada. El payload lo elige el invitado (pipe/archivo que el invitado escribió)

Reconocimiento (inferido)

Método + sinkPrivilegio
write / writev / send* con buf = VA de kernel -> read_at_offsetleer memoria de kernel SNP mapeada hacia un fd de invitado
VA de kernel no mapeadaEFAULT a través de la tabla de excepciones (mapa de qué páginas de kernel existen)

Disponibilidad (inferida)

Método + sinkPrivilegio
corromper el heap del kernel SNP / tablas de páginas / TLS del shimprovocar un crash o desviar el kernel de invitado SNP. No afirmo un gadget RIP fiable

Qué no otorga este remanente

  • Host VMPL0, hipervisor, firmware SNP
  • LVBS VTL1 (LvbsValidateAccess + STAC/CLAC)
  • sysretq a un RIP de kernel (sanitize_for_user_return rechaza RIP/RSP que no sean de usuario)
  • mmap / mprotect de invitado de VA de kernel (TASK_ADDR_MAX)
  • NoValidation de espacio de usuario de Linux/Windows (mismo proceso; la frontera del host allí es seccomp, ese es un remanente hermano)
  • No es por sí mismo una ruptura de la confidencialidad del bit C de SEV-SNP. Es una copia de confused-deputy dentro del kernel SNP de LiteBox

Cómo lo encontré

litebox_platform_linux_kernel/src/lib.rs líneas 59-67 en v0.1.0. El TODO sigue en main. LVBS ya tiene LvbsValidateAccess con USER_ADDR_MIN = 0x10000 y USER_ADDR_MAX = 0x7ffffffff000. No tenía hardware SNP. El laboratorio copia el archivo pin, implementa identidad vs verificación de rango, y escribe el testigo a través de NoValidation en VAs destino que la verificación de LVBS rechaza.

Laboratorio

cd lab
./run.sh

Loopback 127.0.0.1:19130. Proyecto de Compose litebox-snp-novalidation-userptr. Testigo LITEBOX-SNP-NOVALIDATION-USERPTR-WITNESS. Última línea:

SUCCESS litebox-snp-novalidation-userptr novalidation-kernel-write-ok lvbs-range-reject pin-TODO-present user-range-copy-ok LITEBOX-SNP-NOVALIDATION-USERPTR-WITNESS

Corrección

Conectar el UserPtr de SNP a la misma verificación de rango de espacio de usuario que LVBS ya tiene (USER_ADDR_MIN..USER_ADDR_END), y mantener las copias detrás de la tabla de excepciones. No dejar NoValidation en una plataforma de kernel.

La recepción del proveedor es MSRC (https://msrc.microsoft.com/create-report). No abrir un issue público en GitHub sobre microsoft/litebox.

Contacto

Abraxas Labs - abraxaslabs.tech - github.com/abraxas - @abraxas_null - [email protected]

Descargar herramienta