Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Submit
ToolsExploitsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

FeedsContactPrivacy© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
litebox-snp-fixed-crng — High local crypto: LiteBox v0.1.0 SNP CrngProvider is public-seed FastRng 0x4d595df4d0f33173 | Kitploit
Tools/GitHubGitHub/abraxas/litebox-snp-fixed-crng
Vulnerability AnalysisExploitationSecurity VirtualizationCryptographyCloud SecurityHardware SecurityPapers & Research
GitHubabraxas/litebox-snp-fixed-crng

litebox-snp-fixed-crng

High local crypto: LiteBox v0.1.0 SNP CrngProvider is public-seed FastRng 0x4d595df4d0f33173

View Repository
74 days agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

Abraxas Labs - litebox-snp-fixed-crng

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

litebox-snp-fixed-crng

Class: Crypto / Predictable RNG Reach: Local (guest-vs-host)

LiteBox v0.1.0 (d8556e3) - Microsoft

SnpLinuxKernel::fill_bytes_crng is a process-global FastRng constructed with public seed 0x4d595df4d0f33173 and a FIXME to call the trusted host. FastRng is documented non-cryptographic xorshift* (MAGIC = 0x2545F4914F6CDD1D). On this pin the CrngProvider trait still requires a cryptographically secure stream. Guest getrandom and /dev/urandom both draw from this mutexed generator.

SEV-SNP's threat is an untrusted host that cannot read C-bit private pages. A public deterministic CRNG does not need a C-bit bypass. Anyone who read the seed (it is in the crate) can replay every subsequent CRNG byte from first use, or from any observed prefix.

This leftover is predictable guest entropy. It is not RCE, not host-kernel RCE, and not VMPL0.

IDno CVE yet
ClassCrypto / Predictable RNG
ReachLocal (guest-vs-host). Remote only if a guest network service draws keys from this stream
CWECWE-338, CWE-330
CVSSHigh: 7.1 CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
Productmicrosoft/litebox
Affectedv0.1.0 (d8556e33676e47244bfefa139c1e9ff95bd67d53) litebox_runner_snp. Post-tag #1555 3715aa7 (2026-10-08) is the fix on main
Authuntrusted SNP hypervisor, or anyone who read the public seed
LicenseGNU Affero GPL v3.0
Lab127.0.0.1 only. No SNP hardware

What an attacker can do

Who: an untrusted SNP hypervisor, or anyone who cloned the crate. Victim is the SNP guest workload that treats getrandom / urandom as secret.

Confidentiality (lab-proven)

Method + sinkPrivilege
Independent Python xorshift* vs pin FastRng with seed 0x4d595df4d0f33173Identical 512-byte stream (two 256-byte getrandom chunks). First 16 bytes 25c867c61e62ff15c0e2b0ba4fa70b4c
Pin snp_impl.rs still on v0.1.0FIXME: call into the trusted host to get random bytes. plus FastRng::new_from_seed(0x4d595df4d0f33173)

Confidentiality (inferred from the same generator; not a guest syscall on SNP HW)

Method + sinkPrivilege
Guest SYS_getrandom -> fill_bytes_crngnext 256-byte chunks of the public xorshift* stream in guest userspace. GRND_RANDOM / GRND_NONBLOCK are ignored
Guest read(/dev/urandom)the same mutexed stream
Hypervisor or off-box reader of the seedevery subsequent CRNG byte from first use, or from any observed prefix, without decrypting SNP private memory
Guest TLS / keys / nonces drawn from getrandom / urandomthose secrets are predictable. I do not claim a specific TLS stack

Integrity / availability

None from the RNG alone.

What this leftover does not grant

  • RCE, host-kernel RCE, VMPL0, SNP firmware
  • Stack canaries / AT_RANDOM are hardcoded DEADBEEF on the Linux shim (separate, below High by itself)
  • Ephemeral ports use a different FastRng seed (0x13374a4159421337) - below bar
  • OP-TEE canaries/keys are a different shim
  • Host punchthrough on SNP is allowlisted (read stdin, write stdio, futex, clock_gettime, clone3, exit) with kernel-owned pointers
  • No attestation API to skip
  • Linux userland / Windows userland call host getrandom; LVBS uses ChaCha20 plus RDRAND plus a platform root key. SNP is the production platform that does not

How I found it

Eighteen hunts on v0.1.0. SNP fill_bytes_crng is a spin::mutex around FastRng::new_from_seed(0x4d595df4d0f33173) with a FIXME. Linux userland and LVBS already do real entropy. I did not have SNP hardware. The lab compiles the pin FastRng module, serves the stream on loopback, and matches an independent Python replay. #1555 on main (2026-10-08) switches this function to host getrandom. That commit is not in the tag.

Lab

cd lab
./run.sh

Loopback 127.0.0.1:19120. Compose project litebox-snp-fixed-crng. Witness LITEBOX-SNP-FIXED-CRNG-WITNESS. Last line:

SUCCESS litebox-snp-fixed-crng seed=0x4d595df4d0f33173 python-rust-stream-match=yes pin-FIXME-present=yes first16=25c867c61e62ff15c0e2b0ba4fa70b4c LITEBOX-SNP-FIXED-CRNG-WITNESS

Fix

Call host getrandom (or RDRAND plus a platform secret) from fill_bytes_crng. That is #1555 3715aa7 on main. Do not ship a public seed as CrngProvider.

Vendor intake is MSRC (https://msrc.microsoft.com/create-report). Do not open a public GitHub issue on microsoft/litebox.

Contact

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

Download Tool