
بحث أمني حول استغلال CVE-2026-43499 على Amazon Fire TV Stick 3rd Gen (sheldonp)، من الصلاحيات الجذرية المؤقتة إلى فتح الـ bootloader.
sheldonp)تسلسل تصعيد صلاحيات في نواة Linux إلى تخفيض إصدار الـ preloader وفتح قفل الـ bootloader.
يوثّق هذا المستودع إعادة إنتاجي المصرّح بها لسلسلة استغلال CVE-2026-43499 على جهاز Amazon Fire TV Stick الجيل الثالث (sheldonp). استخدمت السلسلة صلاحيات جذر مؤقتة في النواة لتشغيل تخفيض إصدار الـ preloader بشكل مُتحكَّم به، ثم استخدمت سير عمل Kamakiri BootROM الموجود للوصول إلى fastboot مفتوح القفل وإكمال فتح قفل الـ bootloader.
هذه إعادة إنتاج ودراسة حالة خاصة بجهاز معيّن. لم أكتشف CVE-2026-43499، ولم أُنشئ استغلال IonStack/GhostLock الأصلي، ولم أطوّر Kamakiri. يُذكر الباحثون والمطوّرون في المنبع أدناه.
[!IMPORTANT] هذا التقرير سجل تقني، وليس دليلًا شاملًا للحصول على صلاحيات الجذر. توافق الإصدارات مهم، والجذر المؤقت ليس جذرًا دائمًا، والأخطاء المتعلقة بـ Preloader أو LK أو TEE أو الأقسام المحمية بـ dm-verity قد تُعطّل الجهاز نهائيًا.
اكتملت السلسلة من البداية إلى النهاية في 12 سبتمبر 2026. يسجّل هذا المستودع الجهاز وإصدارات البرمجيات المُختبَرة، والأرشيفات الدقيقة المستخدمة، وقيم SHA-256 الخاصة بها، والأدلة الأصلية التي جُمعت أثناء العملية.
| الحقل | هدف إعادة الإنتاج |
|---|---|
| الجهاز | Amazon Fire TV Stick الجيل الثالث |
| الطراز | AFTSSS |
| الاسم الرمزي | sheldonp |
| نظام التشغيل | Fire OS 7.7.1.6 / بناء PS7716.5666N |
| الإصدار التراكمي | 0036005356164 |
| أساس Android | Android 9 |
| النواة | 4.4.162+ |
| المضيف المستخدم لمرحلة BootROM | Ubuntu 26.04.1 LTS، تم الإقلاع منه كجلسة USB حيّة |
| أدوات منصة Android | 37.0.1 |
| تطبيق الجذر المؤقت | R0rt1z2/GhostLock 1.1.0، فرع 4.4 |
| تطبيق BootROM | kamakiri-sheldon-1.0 |
| النتيجة | جذر مؤقت، تخفيض إصدار الـ preloader، bootloader مفتوح القفل، TWRP، وFire OS محفوظ |
خارج النطاق: اكتشاف الثغرة، أو تطبيق استغلال جديد، أو الاستغلال عن بُعد، أو الجذر الدائم، أو دعم أجهزة غير وحدة sheldonp المُختبَرة. لم يُثبَّت أي ROM مخصص أثناء إعادة الإنتاج هذه.
فيما يلي أرشيفات ZIP الدقيقة المستخدمة أثناء إعادة الإنتاج هذه. لا يُعاد توزيع الأرشيفات في هذا المستودع؛ تُسجَّل قيم SHA-256 الخاصة بها حتى يمكن مقارنة النسخ التي تُحصل عليها بشكل مستقل بالملفات المستخدمة في دراسة الحالة هذه.
| الأرشيف | المصدر | الإصدار | SHA-256 |
|---|---|---|---|
ghostlock-sheldon-v1.1.0.zip | دليل الجذر المؤقت وتخفيض الإصدار على XDA | GhostLock 1.1.0 | 8D541F7DF58487AF6D6D45D778482D3455A71F62E32651751CFE0B2DDFC6554F |
kamakiri-sheldon-1.0.zip | دليل فتح قفل الـ bootloader على XDA | Kamakiri Sheldon 1.0 | 1B07161D9F894935E5918A9B8F9A230F67B9487E9863C242E758338E8C6C5784 |
تحدّد هذه القيم النسخ المستخدمة في دراسة الحالة هذه؛ ومع ذلك ينبغي للقرّاء مقارنة تنزيلاتهم مع المصادر الأصلية في المنبع ومراجعة التراخيص الخارجية المعمول بها.
CVE-2026-43499، المعروفة أيضًا باسم GhostLock، هي ثغرة use-after-free في مسار futex/rtmutex الخاص بوراثة الأولوية في نواة Linux. أثناء التراجع عن proxy-lock، كانت remove_waiter() تعمل على current بدلًا من المهمة المخزّنة في waiter->task. ونتيجة لذلك، كان بإمكان المنتظر الفعلي العودة إلى مساحة المستخدم بينما لا يزال pi_blocked_on يشير إلى rt_mutex_waiter في إطار مكدّس نواة محرَّر.
يحوّل بحث IonStack الأصلي مرجع المكدّس المعلّق هذا إلى بدائية تصعيد صلاحيات محلي. كيّف R0rt1z2 هذه التقنية لجهازي Fire TV Stick الجيل الثالث وFire TV Stick Lite (sheldonp/sheldon) اللذين يعملان بنظام Fire OS 7 على نواة 4.4.
التمييز الأساسي في دراسة الحالة هذه هو أن CVE-2026-43499 لا يفتح محمّل الإقلاع (bootloader) مباشرةً. بل يوفّر وصولاً مؤقتًا على مستوى النواة (kernel). هذا الوصول قصير الأمد يجعل من الممكن تنفيذ تخفيض (downgrade) محكوم للـ preloader المطلوب قبل أن تتمكن سلسلة Kamakiri BootROM الأقدم من العمل.
flowchart LR
A[Fire OS 7 on sheldonp] --> B[CVE-2026-43499 / GhostLock]
B --> C[Temporary root shell]
C --> D[Controlled preloader downgrade]
D --> E[Expected non-booting transition state]
E --> F[Kamakiri BootROM stage]
F --> G[Unlocked fastboot]
G --> H[Bootloader unlocked]
تمتد السلسلة عبر حدّين أمنيين منفصلين:
قبل تغيير الجهاز، حدّدت الاسم الرمزي للعتاد وسجّلت إصدارات Fire OS والبناء ومحمّل الإقلاع والنواة عبر ADB.
adb devices -l
adb shell getprop ro.product.device
adb shell getprop ro.product.model
adb shell getprop ro.build.version.release
adb shell getprop ro.build.version.incremental
adb shell getprop ro.build.fingerprint
adb shell getprop ro.bootloader
adb shell uname -a
adb shell id
كان خط الأساس الناتج هو sheldonp / AFTSSS، وFire OS PS7716.5666N، والإصدار التراكمي 0036005356164، وAndroid 9، والنواة 4.4.162+. وقد حُذف الرقم التسلسلي عمدًا.

قمت بتوصيل Fire TV عبر USB مع تفعيل تصحيح أخطاء ADB واستخدمت GhostLock 1.1.0، حزمة sheldon/sheldonp المنشورة مع دليل R0rt1z2 على XDA. يقوم المُشغِّل الخاص بالجهاز بإعادة تشغيل Fire TV للبدء من حالة جديدة، ثم ينشر الاستغلال، ويعيد المحاولة عند الحاجة.
يؤدي الاستغلال الناجح إلى إنشاء بيئة جذر مؤقتة. وقد تحققت من سياق الأمان من خلال ADB shell بدلًا من اعتبار اكتمال السكربت وحده دليلًا كافيًا:
adb shell
su
id
السياق الجذري (root) مؤقت ويُفقد عند إعادة التشغيل. هذا السلوك مهم: هذه المرحلة هي عنصر تمكيني أساسي لعملية التخفيض (downgrade)، وليست آلية الاستمرارية النهائية ولا فتح الـ bootloader نفسه.
أظهر التشغيل الناجح uid=0، وغيّر SELinux إلى permissive للبيئة المؤقتة، وثبّت su المؤقت، وعطّل حزم Fire OS OTA التي تتولاها الأداة.

يُحتفظ بـ full GhostLock exploit trace كدليل داعم.
مع توفر الـ root المؤقت، استخدمت سير عمل التخفيض المخصص للحزمة بدلاً من كتابة أقسام firmware يدوياً. أدى ذلك إلى استعادة preloader متوافق مع مسار Kamakiri الحالي.
بعد التخفيض، توقف Fire TV عمداً عن الإقلاع إلى Fire OS. في سير العمل هذا تحديداً، تُعد حالة عدم الإقلاع تلك التسليم المتوقع بين مرحلة live-kernel ومرحلة USB BootROM. ويجب عدم الخلط بينها وبين دليل على أن أي عملية flash فاشلة عشوائية قابلة للاسترداد.
[!CAUTION] لا تمحُ Preloader أبداً. لا ترتجل عمليات كتابة إلى LK أو TEE أو Preloader أو boot أو recovery أو system أو vendor أو أي أقسام محمية أخرى. تحذّر الأدلة الإرشادية الأصلية من أن إتلاف firmware الحرج قد يتسبب في hard brick دائم لأنه قد لا يبقى مسار استرداد صالح متاح.
