
عالي التشفير المحلي: LiteBox v0.1.0 SNP CrngProvider هو 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 على مستوى العملية بأكملها، مُهيَّأ ببذرة عامة 0x4d595df4d0f33173 مع ملاحظة FIXME لاستدعاء المضيف الموثوق. FastRng موثّق بأنه xorshift* غير تشفيري (MAGIC = 0x2545F4914F6CDD1D). في هذا الإصدار المثبّت، لا تزال سمة CrngProvider تتطلب تدفقًا آمنًا تشفيريًا. كلٌّ من getrandom في الضيف و/dev/urandom يستقيان من هذا المولّد المحمي بـ mutex.
تهديد SEV-SNP هو مضيف غير موثوق لا يستطيع قراءة الصفحات الخاصة ذات بت C. لا يحتاج مولّد CRNG حتمي عام إلى تجاوز بت C. أي شخص قرأ البذرة (وهي موجودة في الـ crate) يمكنه إعادة إنتاج كل بايت CRNG لاحق من أول استخدام، أو من أي بادئة مُلاحَظة.
هذه بقايا عشوائية قابلة للتنبؤ في الضيف. ليست RCE، وليست RCE في نواة المضيف، وليست VMPL0.
| المعرّف | لا يوجد CVE بعد |
| التصنيف | تشفير / مولّد أرقام عشوائية قابل للتنبؤ |
| النطاق | محلي (الضيف مقابل المضيف). عن بُعد فقط إذا كانت خدمة شبكية في الضيف تستقي مفاتيح من هذا التدفق |
| CWE | CWE-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 |
| المصادقة | hypervisor SNP غير موثوق، أو أي شخص قرأ البذرة العامة |
| الترخيص | GNU Affero GPL v3.0 |
| المختبر | 127.0.0.1 فقط. لا يوجد عتاد SNP |
من: hypervisor SNP غير موثوق، أو أي شخص استنسخ الـ crate. الضحية هي عبء عمل ضيف SNP الذي يعامل getrandom / urandom كسرّ.
| الطريقة + المخرج | الصلاحية |
|---|---|
xorshift* مستقل بلغة Python مقابل FastRng المثبّت بالبذرة 0x4d595df4d0f33173 | تدفق متطابق بحجم 512 بايت (قطعتا getrandom بحجم 256 بايت). أول 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) في الضيف | التدفق نفسه المحمي بـ mutex |
| hypervisor أو قارئ خارجي للبذرة | كل بايت CRNG لاحق من أول استخدام، أو من أي بادئة مُلاحَظة، دون فك تشفير ذاكرة SNP الخاصة |
TLS / مفاتيح / nonces في الضيف مستمدة من getrandom / urandom | هذه الأسرار قابلة للتنبؤ. لا أدّعي وجود حزمة TLS محددة |
لا شيء من المولّد وحده.
AT_RANDOM مُثبَّتة بقيمة DEADBEEF على shim الخاص بـ Linux (منفصل، أقل من مرتفع بمفرده)0x13374a4159421337) - أقل من الحدread stdin، write stdio، futex، clock_gettime، clone3، exit) بمؤشرات مملوكة للنواةgetrandom في المضيف؛ LVBS يستخدم ChaCha20 بالإضافة إلى RDRAND بالإضافة إلى مفتاح جذر المنصة. SNP هو منصة الإنتاج التي لا تفعل ذلكثمانية عشر بحثًا على v0.1.0. fill_bytes_crng في SNP هو spin::mutex حول FastRng::new_from_seed(0x4d595df4d0f33173) مع FIXME. مساحة مستخدم Linux وLVBS تقومان بالفعل بعشوائية حقيقية. لم يكن لديّ عتاد SNP. المختبر يترجم وحدة FastRng المثبّتة، ويقدّم التدفق على loopback، ويطابق إعادة إنتاج مستقلة بلغة Python. #1555 على main (2026-10-08) يحوّل هذه الدالة إلى getrandom في المضيف. هذا الـ commit ليس في الوسم.
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. لا تُصدر بذرة عامة كـ CrngProvider.
استقبال المورّد هو MSRC (https://msrc.microsoft.com/create-report). لا تفتح issue عامًا على GitHub في microsoft/litebox.
Abraxas Labs - abraxaslabs.tech - github.com/abraxas - @abraxas_null - [email protected]