
Высокая локальная криптография: LiteBox v0.1.0 SNP CrngProvider — это public-seed FastRng 0x4d595df4d0f33173
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · litebox-snp-fixed-crng
Класс: Криптография / Предсказуемый ГПСЧ Достижимость: Локальная (гость против хоста)
LiteBox v0.1.0 (d8556e3) — Microsoft
SnpLinuxKernel::fill_bytes_crng — это глобальный для процесса FastRng, созданный с публичным seed 0x4d595df4d0f33173 и FIXME о вызове доверенного хоста. FastRng документирован как некриптографический xorshift* (MAGIC = 0x2545F4914F6CDD1D). На этой версии трейт CrngProvider всё ещё требует криптографически стойкий поток. Гостевые getrandom и /dev/urandom оба черпают из этого генератора под мьютексом.
Угроза SEV-SNP — это недоверенный хост, который не может читать приватные страницы с C-bit. Публичный детерминированный CRNG не нуждается в обходе C-bit. Любой, кто прочитал seed (он есть в крейте), может воспроизвести каждый последующий байт CRNG с момента первого использования или с любого наблюдаемого префикса.
Этот остаток — предсказуемая гостевая энтропия. Это не RCE, не RCE ядра хоста и не VMPL0.
| ID | CVE пока нет |
| Класс | Криптография / Предсказуемый ГПСЧ |
| Достижимость | Локальная (гость против хоста). Удалённая только если гостевой сетевой сервис берёт ключи из этого потока |
| CWE | CWE-338, CWE-330 |
| CVSS | High: 7.1 CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N |
| Продукт | microsoft/litebox |
| Затронуто | v0.1.0 (d8556e33676e47244bfefa139c1e9ff95bd67d53) litebox_runner_snp. Пост-теговый #1555 3715aa7 (2026-10-08) — это исправление в main |
| Аутентификация | недоверенный SNP-гипервизор или любой, кто прочитал публичный seed |
| Лицензия | GNU Affero GPL v3.0 |
| Лаборатория | только 127.0.0.1. Без SNP-оборудования |
Кто: недоверенный SNP-гипервизор или любой, кто клонировал крейт. Жертва — рабочая нагрузка SNP-гостя, которая считает getrandom / urandom секретными.
| Метод + приёмник | Привилегия |
|---|---|
Независимый Python xorshift* против зафиксированного FastRng с seed 0x4d595df4d0f33173 | Идентичный 512-байтовый поток (два 256-байтовых чанка getrandom). Первые 16 байт 25c867c61e62ff15c0e2b0ba4fa70b4c |
Зафиксированный snp_impl.rs всё ещё на v0.1.0 | FIXME: call into the trusted host to get random bytes. плюс FastRng::new_from_seed(0x4d595df4d0f33173) |
| Метод + приёмник | Привилегия |
|---|---|
Гостевой SYS_getrandom -> fill_bytes_crng | следующие 256-байтовые чанки публичного потока xorshift* в гостевом пользовательском пространстве. GRND_RANDOM / GRND_NONBLOCK игнорируются |
Гостевой read(/dev/urandom) | тот же поток под мьютексом |
| Гипервизор или внешний читатель seed | каждый последующий байт CRNG с момента первого использования или с любого наблюдаемого префикса, без расшифровки приватной памяти SNP |
Гостевой TLS / ключи / nonce, взятые из getrandom / urandom | эти секреты предсказуемы. Я не утверждаю о конкретном стеке TLS |
Ничего от одного лишь ГПСЧ.
AT_RANDOM жёстко заданы как DEADBEEF в Linux-шимме (отдельно, само по себе ниже High)0x13374a4159421337) — ниже порогаread stdin, write stdio, futex, clock_gettime, clone3, exit) с указателями, принадлежащими ядруgetrandom; LVBS использует ChaCha20 плюс RDRAND плюс корневой ключ платформы. SNP — это продакшн-платформа, которая этого не делаетВосемнадцать поисков на v0.1.0. SNP fill_bytes_crng — это spin::mutex вокруг FastRng::new_from_seed(0x4d595df4d0f33173) с FIXME. Linux userland и LVBS уже используют настоящую энтропию. У меня не было SNP-оборудования. Лаборатория компилирует зафиксированный модуль FastRng, отдаёт поток на loopback и сопоставляет с независимым воспроизведением на Python. #1555 в main (2026-10-08) переключает эту функцию на хостовый getrandom. Этот коммит не входит в тег.
cd lab
./run.sh
Loopback 127.0.0.1:19120. Проект Compose litebox-snp-fixed-crng. Свидетель LITEBOX-SNP-FIXED-CRNG-WITNESS. Последняя строка:
SUCCESS litebox-snp-fixed-crng seed=0x4d595df4d0f33173 python-rust-stream-match=yes pin-FIXME-present=yes first16=25c867c61e62ff15c0e2b0ba4fa70b4c LITEBOX-SNP-FIXED-CRNG-WITNESS
Вызывать хостовый getrandom (или RDRAND плюс секрет платформы) из fill_bytes_crng. Это #1555 3715aa7 в main. Не поставляйте публичный seed в качестве CrngProvider.
Приём обращений вендора — MSRC (https://msrc.microsoft.com/create-report). Не открывайте публичный issue на GitHub в microsoft/litebox.
Abraxas Labs — abraxaslabs.tech — github.com/abraxas — @abraxas_null — [email protected]