
حزمة إصلاح مبنية على PowerShell تكتشف وتزيل إدخال BootExecute الضعيف الخاص بـ autofstx.exe من صور WinRE غير المتصلة، ثم تقوم بتحديث ثقة BitLocker للتخفيف من تجاوز YellowKey المرتبط بـ CVE-2026-45585.
حزمة إصلاح لـ Intune لمعالجة الثغرة CVE-2026-45585 (YellowKey) التي تتجاوز حماية BitLocker/WinRE كما هو موضح في الإجراء المقدم.
تزيل هذه الحزمة autofstx.exe من قيمة BootExecute لصورة WinRE غير المتصلة وتقوم بتحديث تسجيل WinRE بحيث يتم إعادة بناء الثقة مع BitLocker.
YellowKey-WinRE-Remediation/
scripts/
Detect-YellowKeyWinRE.ps1
Remediate-YellowKeyWinRE.ps1
.editorconfig
.gitattributes
.gitignore
README.md
استخدم هذه الإعدادات لحزمة الإصلاح:
| الإعداد | القيمة |
|---|---|
| سكريبت الكشف | scripts/Detect-YellowKeyWinRE.ps1 |
| سكريبت الإصلاح | scripts/Remediate-YellowKeyWinRE.ps1 |
| تشغيل هذا السكريبت باستخدام بيانات اعتماد المستخدم المسجل دخوله | No |
| فرض التحقق من توقيع السكريبت | No، ما لم تقم بتوقيع السكريبتات |
| تشغيل السكريبت في PowerShell 64 بت | Yes |
الكشف:
reagentc.exe /mountre.SYSTEM لصورة WinRE غير المتصلة تحت اسم مؤقت في HKLM.BootExecute في ControlSet###\Control\Session Manager غير المتصلة بحثاً عن autofstx.exe.1 عند العثور على autofstx.exe أو إذا تعذر إتمام الكشف بأمان.0 عند عدم العثور على إدخال ضعيف.الإصلاح:
reagentc.exe /mountre.SYSTEM لصورة WinRE غير المتصلة.BootExecute يحتوي على autofstx.exe من كل ControlSet غير متصلة.RegistryValueKind.MultiString صراحةً عند كتابة BootExecute.BootExecute فارغ؛ إذا كان التصفية ستؤدي إلى إفراغه، يكتب القيمة الافتراضية لنظام Windows autocheck autochk *.reagentc.exe /unmountre /commit.reagentc.exe /disable ثم reagentc.exe /enable لتحديث تسجيل WinRE وإعادة بناء الثقة مع BitLocker.السكريبتات مصممة بحذر متعمد:
BootExecute لنظام التشغيل الحي.C:\ProgramData\IntuneRemediations\YellowKey.سجل الكشف:
C:\ProgramData\IntuneRemediations\YellowKey\Detect.log
سجل الإصلاح:
C:\ProgramData\IntuneRemediations\YellowKey\Remediate.log
تشغيل التحقق من الصيغة دون تنفيذ الإصلاح:
$paths = @(
'.\scripts\Detect-YellowKeyWinRE.ps1',
'.\scripts\Remediate-YellowKeyWinRE.ps1'
)
foreach ($path in $paths) {
$tokens = $null
$errors = $null
[System.Management.Automation.Language.Parser]::ParseFile($path, [ref] $tokens, [ref] $errors) | Out-Null
if ($errors.Count -gt 0) {
$errors | Format-Table
throw "Parse failed: $path"
}
}
تشغيل Script Analyzer إذا كان مثبتاً:
Invoke-ScriptAnalyzer -Path .\scripts -Recurse
reagentc.exe /info..ps1 وقم بتمكين فرض التوقيع.| السكريبت | خروج 0 | خروج 1 |
|---|---|---|
| الكشف | متوافق أو WinRE معطل / غير قابل للتطبيق | ضعيف أو تعذر إتمام الكشف بأمان |
| الإصلاح | تم الإصلاح بنجاح | فشل الإصلاح أو كان التنظيف مطلوباً |