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-seccomp-open-rdonly — Lectura local de archivos alta: LiteBox v0.1.0 linux-userland seccomp SYS_open O_RDONLY no tiene verificación de ruta del host | Kitploit
Herramientas/GitHubGitHub/abraxas/litebox-seccomp-open-rdonly
Seguridad de ContenedoresAnálisis Dinámico (Sandboxing)Análisis de VulnerabilidadesExplotaciónRecopilación de InformaciónPapers e InvestigaciónLabs y Práctica
GitHub

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
abraxas/litebox-seccomp-open-rdonly

litebox-seccomp-open-rdonly

Lectura local de archivos alta: LiteBox v0.1.0 linux-userland seccomp SYS_open O_RDONLY no tiene verificación de ruta del host

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

Abraxas Labs - litebox-seccomp-open-rdonly

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  litebox-seccomp-open-rdonly

litebox-seccomp-open-rdonly

Clase: Lectura de archivos (límite del FS del sandbox) Alcance: Local

LiteBox v0.1.0 (d8556e3) - Microsoft

El runner documentado para userland de Linux (litebox-runner-linux-userland) instala un filtro seccomp de denegación por defecto y luego carga un ELF invitado en el mismo proceso. SYS_open está en la lista de permitidos cuando el argumento 1 (flags) es un dword igual a OFlags::RDONLY (0). No hay predicado de ruta. Un invitado que emite una syscall real con flags 0 abre el VFS del host con el UID del runner, y luego read / mmap esos bytes. El reescritor de ELF no es un límite de seguridad en este pin. --rewrite-syscalls es -Z y está desactivado por defecto.

Este remanente es lectura del FS del host. No es escritura en el host, ni exec, ni ptrace, ni LPE, ni RCE.

IDsin CVE todavía
ClaseLectura de archivos (límite del FS del sandbox)
AlcanceLocal (binario invitado no confiable en el proceso del runner)
CWECWE-284, CWE-862
CVSSAlto: 7.1 CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
Productomicrosoft/litebox
Afectadov0.1.0 (d8556e33676e47244bfefa139c1e9ff95bd67d53) plataforma userland de Linux + runner
Authinvitado ya en ejecución dentro del sandbox
LicenciaGNU Affero GPL v3.0
Labsolo 127.0.0.1, linux/amd64

Qué puede hacer un atacante

Quién: un binario invitado no confiable en litebox-runner-linux-userland. El proveedor (CvvT en GitHub #1006) y la documentación del crate del reescritor dicen que los trampolines ELF no son un límite de seguridad. La seguridad del userland de Linux es este filtro. enable_seccomp_filter es de denegación por defecto (Errno(EINVAL) en release) con TSYNC y PR_SET_NO_NEW_PRIVS. El agujero es SYS_open con flags Eq 0 sin comprobación de ruta. El comentario en page_mgmt.rs es que el mapeo CoW reabre el archivo del programa del host después de que el filtro está activo, en lugar de mantener un FD preabierto.

Reconocimiento (probado en laboratorio)

Método + sinkPrivilegio
SYS_open("/oracle/secret", 0) real y luego SYS_readBytes de archivos del host que el UID del runner puede leer. Lab: fd 3, 35 bytes, testigo LITEBOX-SECCOMP-OPEN-RDONLY-WITNESS. La ruta es el VFS del host del initramfs, no el overlay del invitado.

Reconocimiento (inferido del mismo filtro; no es el oráculo del laboratorio)

Método + sinkPrivilegio
SYS_open("/etc/passwd", 0) y luego read / mmaparchivos del host legibles por todos como UID del runner
SYS_open de rutas propiedad del runner (claves ssh, .env, kubeconfig, credenciales de la nube, tar de --initial-files)esos bytes si el UID puede abrirlos
SYS_open("/etc/shadow", 0)hashes de shadow solo si el runner es root
SYS_open("/proc/self/maps", 0)mapas del runner, incluidos .text del host / libc (mismo proceso)
SYS_open("/proc/self/mem", 0) y luego mmap del FDespacio de direcciones del runner que el UID puede leer vía procfs. pread no coincide con la denegación; SYS_mmap está permitido.

Integridad

Ninguna en este remanente. Los negativos probados en laboratorio devolvieron todos errno=22 EINVAL y no crearon archivos:

Método + sinkResultado
SYS_open O_RDWREINVAL
SYS_open O_CREATEINVAL, no se creó ningún archivo
SYS_openat incluso con O_RDONLYEINVAL
SYS_execveEINVAL
socket, ptraceEINVAL (denegación adicional no coincidente)

openat / openat2 / creat / unlink / chmod permanecen como denegación no coincidente en el pin.

Disponibilidad

No está en el alcance.

Qué no concede este remanente

  • Escritura en el host, exec, ptrace, process_vm_readv, io_uring_setup, bpf, mount, pivot_root, unshare, setns, connect, ioctl, getdents
  • x32 / i386: seccompiler 0.5.0 prefija AUDIT_ARCH_X86_64 o KILL_PROCESS
  • clone3 hereda el filtro; escribir uid_map requiere un open bloqueado
  • El FS virtual del invitado (in_mem + tar_ro) no cambia. Este remanente es el VFS del host mediante una syscall real
  • El userland de Windows no tiene seccomp; ese runner no reclama este límite
  • No es RCE, ni LPE, ni un escape del sandbox a otro UID

Cómo lo encontré

Fijé microsoft/litebox v0.1.0 (d8556e3, 2026-10-07) en lugar de main. Dieciocho búsquedas en el código fuente. El crate del reescritor y el GitHub #1006 ya dicen que los trampolines no son el límite. El filtro del userland de Linux sí lo es. SYS_open con flags 0 está ahí para que CoW pueda reabrir el archivo del programa. No hay comprobación de ruta.

Camino equivocado: Docker Desktop Rosetta y qemu-user-static rechazan ambos seccomp(SET_MODE_FILTER) en este host (EINVAL / ENOSYS). Por lo tanto, el laboratorio arranca un kernel virt de Alpine x86_64 bajo qemu-system-x86_64 TCG y ejecuta el filtro copiado como PID 1 para que el BPF llegue a un kernel x86_64 real. Se copiaron las reglas de seccompiler 0.5.0, no una llamada en el árbol a enable_seccomp_filter, y no el workspace completo.

Laboratorio

cd lab
./run.sh

Loopback 127.0.0.1:19110. Proyecto de Compose litebox-seccomp-open-rdonly. Plataforma linux/amd64. Testigo LITEBOX-SECCOMP-OPEN-RDONLY-WITNESS. Última línea:

SUCCESS litebox-seccomp-open-rdonly open-rdonly-ok rdwr-einval openat-einval execve-einval LITEBOX-SECCOMP-OPEN-RDONLY-WITNESS

Corrección

Eliminar SYS_open del filtro y preabrir los FD de CoW antes de PR_SET_SECCOMP, o añadir un predicado de ruta que no pueda ver rutas del host fuera del FS del invitado. La denegación no coincidente ya cubre openat.

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