Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/abraxas/litebox-snp-fixed-crng
漏洞分析漏洞利用安全虚拟化密码学云安全硬件安全论文与研究
GitHubabraxas/litebox-snp-fixed-crng

litebox-snp-fixed-crng

高本地加密:LiteBox v0.1.0 SNP CrngProvider 是 public-seed FastRng 0x4d595df4d0f33173

查看仓库
74天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Abraxas Labs - litebox-snp-fixed-crng

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

litebox-snp-fixed-crng

类别: 加密 / 可预测随机数生成器 影响范围: 本地(客户机对宿主机)

LiteBox v0.1.0(d8556e3)- 微软

SnpLinuxKernel::fill_bytes_crng 是一个进程全局的 FastRng,使用公开种子 0x4d595df4d0f33173 构造,并带有一个 FIXME 注释,要求调用受信任的宿主机。FastRng 文档说明为非加密的 xorshift*(MAGIC = 0x2545F4914F6CDD1D)。在此版本中,CrngProvider trait 仍然要求提供加密安全的流。客户机的 getrandom 和 /dev/urandom 都从这个互斥锁保护的生成器中取数。

SEV-SNP 的威胁模型是不可信的宿主机,它无法读取 C-bit 私有页面。一个公开的确定性 CRNG 不需要绕过 C-bit。任何读过种子的人(种子就在 crate 里)都可以从首次使用开始,或从任何观察到的前缀开始,重放后续每一个 CRNG 字节。

这个遗留问题导致客户机熵可预测。它不是 RCE,不是宿主机内核 RCE,也不是 VMPL0。

ID暂无 CVE
类别加密 / 可预测随机数生成器
影响范围本地(客户机对宿主机)。仅当客户机网络服务从此流中获取密钥时才可远程利用
CWECWE-338、CWE-330
CVSS高危: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 hypervisor,或任何读过公开种子的人
许可证GNU Affero GPL v3.0
实验环境仅 127.0.0.1。无 SNP 硬件

攻击者能做什么

谁:不可信的 SNP hypervisor,或任何克隆了该 crate 的人。受害者是将 getrandom / urandom 视为机密的 SNP 客户机工作负载。

机密性(实验环境已验证)

方法 + 目标权限
独立的 Python xorshift* 对比该版本 FastRng,种子为 0x4d595df4d0f33173相同的 512 字节流(两个 256 字节的 getrandom 块)。前 16 字节为 25c867c61e62ff15c0e2b0ba4fa70b4c
该版本 snp_impl.rs 仍停留在 v0.1.0FIXME: call into the trusted host to get random bytes. 以及 FastRng::new_from_seed(0x4d595df4d0f33173)

机密性(从同一生成器推断;并非 SNP 硬件上的客户机系统调用)

方法 + 目标权限
客户机 SYS_getrandom -> fill_bytes_crng客户机用户空间中公开 xorshift* 流的下一个 256 字节块。GRND_RANDOM / GRND_NONBLOCK 被忽略
客户机 read(/dev/urandom)同一个互斥锁保护的流
Hypervisor 或机外读取种子者从首次使用开始,或从任何观察到的前缀开始,获取后续每一个 CRNG 字节,无需解密 SNP 私有内存
客户机 TLS / 密钥 / nonce 从 getrandom / urandom 获取这些机密可预测。我不声称针对特定 TLS 栈

完整性 / 可用性

仅凭该 RNG 无法造成影响。

该遗留问题不会授予的能力

  • RCE、宿主机内核 RCE、VMPL0、SNP 固件
  • 栈金丝雀 / AT_RANDOM 在 Linux shim 上硬编码为 DEADBEEF(独立问题,单独评估低于高危)
  • 临时端口使用不同的 FastRng 种子(0x13374a4159421337)- 低于阈值
  • OP-TEE 金丝雀/密钥属于不同的 shim
  • SNP 上的宿主机穿透是白名单化的(read stdin、write stdio、futex、clock_gettime、clone3、exit),使用内核拥有的指针
  • 没有可跳过的证明 API
  • Linux 用户态 / Windows 用户态调用宿主机 getrandom;LVBS 使用 ChaCha20 加 RDRAND 加平台根密钥。SNP 是生产平台,却没有这样做

我是如何发现的

在 v0.1.0 上进行了十八次搜寻。SNP 的 fill_bytes_crng 是一个围绕 FastRng::new_from_seed(0x4d595df4d0f33173) 的 spin::mutex,并带有一个 FIXME。Linux 用户态和 LVBS 已经使用了真正的熵源。我没有 SNP 硬件。实验环境编译该版本的 FastRng 模块,在回环地址上提供该流,并与独立的 Python 重放进行匹配。main 分支上的 #1555(2026-10-08)将此函数切换为调用宿主机 getrandom。该提交不在标签中。

实验环境

cd lab
./run.sh

回环地址 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

修复

从 fill_bytes_crng 调用宿主机 getrandom(或 RDRAND 加平台密钥)。这就是 main 分支上的 #1555 3715aa7。不要将公开种子作为 CrngProvider 发布。

厂商接收渠道为 MSRC(https://msrc.microsoft.com/create-report)。不要在 microsoft/litebox 上公开提交 GitHub issue。

联系方式

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

下载工具