
Cripto local alta: LiteBox v0.1.0 SNP CrngProvider es FastRng de semilla pública 0x4d595df4d0f33173
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · litebox-snp-fixed-crng
Clase: Cripto / RNG predecible Alcance: Local (invitado vs anfitrión)
LiteBox v0.1.0 (d8556e3) - Microsoft
SnpLinuxKernel::fill_bytes_crng es un FastRng global del proceso construido con la semilla pública 0x4d595df4d0f33173 y un FIXME para llamar al host de confianza. FastRng está documentado como xorshift* no criptográfico (MAGIC = 0x2545F4914F6CDD1D). En este pin, el trait CrngProvider todavía requiere un flujo criptográficamente seguro. Tanto getrandom del invitado como /dev/urandom se nutren de este generador protegido por mutex.
La amenaza de SEV-SNP es un host no confiable que no puede leer páginas privadas con el bit C. Un CRNG determinista público no necesita un bypass del bit C. Cualquiera que haya leído la semilla (está en el crate) puede reproducir cada byte posterior del CRNG desde el primer uso, o desde cualquier prefijo observado.
Este remanente es entropía predecible del invitado. No es RCE, no es RCE del kernel del host, y no es VMPL0.
| ID | sin CVE todavía |
| Clase | Cripto / RNG predecible |
| Alcance | Local (invitado vs anfitrión). Remoto solo si un servicio de red del invitado obtiene claves de este flujo |
| CWE | CWE-338, CWE-330 |
| CVSS | Alto: 7.1 CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N |
| Producto | microsoft/litebox |
| Afectado | v0.1.0 (d8556e33676e47244bfefa139c1e9ff95bd67d53) litebox_runner_snp. El post-tag #1555 3715aa7 (2026-10-08) es la corrección en main |
| Autenticación | hipervisor SNP no confiable, o cualquiera que haya leído la semilla pública |
| Licencia | GNU Affero GPL v3.0 |
| Laboratorio | solo 127.0.0.1. Sin hardware SNP |
Quién: un hipervisor SNP no confiable, o cualquiera que haya clonado el crate. La víctima es la carga de trabajo del invitado SNP que trata getrandom / urandom como secreto.
| Método + sink | Privilegio |
|---|---|
xorshift* independiente en Python vs el pin FastRng con semilla 0x4d595df4d0f33173 | Flujo idéntico de 512 bytes (dos fragmentos de getrandom de 256 bytes). Primeros 16 bytes 25c867c61e62ff15c0e2b0ba4fa70b4c |
El pin snp_impl.rs sigue en v0.1.0 | FIXME: call into the trusted host to get random bytes. más FastRng::new_from_seed(0x4d595df4d0f33173) |
| Método + sink | Privilegio |
|---|---|
SYS_getrandom del invitado -> fill_bytes_crng | siguientes fragmentos de 256 bytes del flujo xorshift* público en el espacio de usuario del invitado. GRND_RANDOM / GRND_NONBLOCK se ignoran |
read(/dev/urandom) del invitado | el mismo flujo protegido por mutex |
| Hipervisor o lector externo de la semilla | cada byte posterior del CRNG desde el primer uso, o desde cualquier prefijo observado, sin descifrar la memoria privada de SNP |
TLS / claves / nonces del invitado obtenidos de getrandom / urandom | esos secretos son predecibles. No afirmo una pila TLS específica |
Ninguna por parte del RNG por sí solo.
AT_RANDOM están codificados como DEADBEEF en el shim de Linux (separado, por debajo de Alto por sí solo)0x13374a4159421337) - por debajo del umbralread stdin, write stdio, futex, clock_gettime, clone3, exit) con punteros propiedad del kernelgetrandom del host; LVBS usa ChaCha20 más RDRAND más una clave raíz de plataforma. SNP es la plataforma de producción que no lo haceDieciocho búsquedas en v0.1.0. El fill_bytes_crng de SNP es un spin::mutex alrededor de FastRng::new_from_seed(0x4d595df4d0f33173) con un FIXME. El userland de Linux y LVBS ya hacen entropía real. No tenía hardware SNP. El laboratorio compila el módulo FastRng del pin, sirve el flujo en loopback y coincide con una reproducción independiente en Python. #1555 en main (2026-10-08) cambia esta función al getrandom del host. Ese commit no está en el tag.
cd lab
./run.sh
Loopback 127.0.0.1:19120. Proyecto de Compose litebox-snp-fixed-crng. Testigo LITEBOX-SNP-FIXED-CRNG-WITNESS. Última línea:
SUCCESS litebox-snp-fixed-crng seed=0x4d595df4d0f33173 python-rust-stream-match=yes pin-FIXME-present=yes first16=25c867c61e62ff15c0e2b0ba4fa70b4c LITEBOX-SNP-FIXED-CRNG-WITNESS
Llamar al getrandom del host (o RDRAND más un secreto de plataforma) desde fill_bytes_crng. Eso es #1555 3715aa7 en main. No distribuyas una semilla pública como CrngProvider.
La recepción del proveedor es MSRC (https://msrc.microsoft.com/create-report). No abras un issue público en GitHub en microsoft/litebox.
Abraxas Labs - abraxaslabs.tech - github.com/abraxas - @abraxas_null - [email protected]