
مجموعة أدوات بحثية تمنح صلاحيات الجذر (root) لتلفاز Samsung Tizen 9 عبر استغلال RCE في Chromium WasmGC ووصول عشوائي إلى الذاكرة الفيزيائية عبر V4L2 physmap، مع حمولة (payload) دائمة عند الإقلاع وقناة صدفة (shell) بصلاحيات الجذر.
بحث أمني غير رسمي على تلفاز Samsung Neo QLED من طراز 2024 يعمل بنظام Tizen 9. لا sdb، لا وضع المطور، لا تفليش للبرنامج الثابت: يتم عمل روت للتلفاز من متصفحه الخاص، ويُجعل الروت دائمًا عبر تطبيق خدمة أصلي يعمل عند الإقلاع.
| وحدة الاختبار | 2024 Neo QLED، سلسلة QNX1D (منصة QTV T09) |
| البرنامج الثابت | T-PTMxxxx (01400) |
| النواة | Linux 5.4.249، ARM32 (VMSPLIT_3G + HIGHMEM، بدون LPAE)، PAGE_OFFSET 0xC0000000، PHYS_OFFSET 0x20000000 |
| المتصفح | Chromium 120.0.6099.5 (SamsungBrowser/7.0) |
| الروت | uid=0، CapEff=0x3fffffffff |
| الحمولة الدائمة | المستودع v41 (md5/الحجم الحالي في صف الحالة بـ AGENTS.md — يُعاد توليده من الأثر)؛ وحدة الاختبار تشغّل نفس البناء (نُشر في 2026-10-27، الإشارات تحمل tok=)؛ يحتفظ payload_backup.dll بالبناء السابق |
| قناة الروت | TCP 31337 على التلفاز، بروتوكول سطري، تنتهي الردود بـ __END__ |
pwsh -File .\root.ps1 -TvIp <tv-ip> # root the TV
pwsh -File .\uninstall.ps1 -TvIp <tv-ip> # restore stock
root.ps1 يعمل على الكمبيوتر ويقود كل شيء: يبدأ خادم المنفذ 80،
ويجذر كعب المتصفح (browser stub)، ويثبّت حمولة الإقلاع، وينتظر قناة الجذر
بعد إعادة التشغيل. تبقى خطوتان على جهاز تحكم التلفاز، ويطلب تأكيدهما معًا:
http://<pc-ip>/index.html المطبوع وانتظر RUNNING؛ثم:
python tools\root_shell.py "id" <tv-ip> # talk to the TV's root channel
كل خيار، والمطالبات الدقيقة، والمخرجات المتوقعة، والتحذير المتعلق بعنوان IP للمضيف،
والبديل اليدوي: docs/USAGE.md.
/dev/video40/30/60) تقبل قيمة vm_pgoff
يختارها المهاجم في mmap() وتمرّرها إلى remap_pfn_range() دون التحقق منها:
قراءة/كتابة عشوائية للذاكرة الفيزيائية من عملية غير مميّزة
(uid 5001، المجموعة video).init_task في الذاكرة الفيزيائية، وتحديد
مهمتنا الخاصة عبر real_parent لطفل متفرّع، وتصفير بيانات الاعتماد.app_onboot الأصلية
بحمولة .NET تعيد تطبيق تصحيح physmap/cred عند كل إقلاع، وتغلق
عقدتها وتقدّم قناة أوامر بصلاحيات root على TCP 31337.لا CVE لبطاقة الرسوميات، ولا استغلال للنواة، ولا وحدة موقّعة. الـ physmap هو الجزء
المثير للاهتمام؛ والشرح المرحلي مع الثوابت المقيسة موجود في
docs/EXPLOIT.md.
| المستند | المحتويات |
|---|---|
docs/USAGE.md | تشغيله: الخيارات، المطالبات، المخرجات المتوقعة، تفاصيل إلغاء التثبيت، الاستعادة |
docs/EXPLOIT.md | السلسلة مرحلة بمرحلة، مع الثوابت الخاصة بالبرنامج الثابت |
docs/ROOT-METHODS.md | كل طريقة root/استمرارية تم تقييمها والطريقة التي فازت |
docs/FAILED.md | ما لم ينجح ولماذا — يُقرأ كقائمة طرق مسدودة، ويوفّر أسابيع |
docs/BOOT-REGRESSION-SMACK.md | أخفى خلل في المشروع: تسمية SMACK خاطئة جعلت التطبيق يموت قبل Main |
docs/PORTABILITY.md | تلفاز Tizen 9 آخر: البوابات الأربع، ما يجب إعادة قياسه، نقل خطوة بخطوة |
docs/SERVER-HOSTING.md | الخادم على جهة الحاسوب: كيف يجب تشغيله، فخ الموت الصامت، الجدار الناري، السجلات |
docs/SCRIPT-REVIEW.md | تدقيق جاهزية الإنتاج للسكربتات |
docs/TESTING.md | طبقات الاختبار، دون اتصال وعلى التلفاز، وما يكتشفه كل منها |
docs/LOGGUIDE.md | فك ترميز كل إشارة beacon وخطأ أداة، مع الخطوات التالية |
docs/REFERENCE-MATERIALS.md | من أين تُنزّل البرامج الثابتة / مصادر GPL / أدوات المحاكاة لطرازك |
docs/REVIEW-HISTORY.md | نتائج المراجعة المغلقة وأدلتها (أرشيف) |
docs/OPEN-ISSUES.md | الحالة الحالية، والعمل المعلّق، وسجل المراجعات/التمريرات المغلقة |
AGENTS.md | التسليم: الأدوات، الإجراء، التحقق، الفخاخ، الاستعادة |
CHANGELOG.md | سجل مؤرّخ لما تغيّر ولماذا |
SECURITY.md | الباب الخلفي 31337 غير الموثّق، النطاق، الإبلاغ، الجوانب القانونية |
NOTICE.md | الإسناد لأطراف ثالثة؛ الملفات غير المعاد ترخيصها |
LICENSE | MIT للعمل الأصلي (باستثناء ملفات الأطراف الثالثة) |
root.ps1, uninstall.ps1 PC entry points (PowerShell)
payload/ boot payload source (.NET 6, Program.cs)
server/ port-80 server, exploit page, TV-side deploy scripts
tools/ physmap client, kernel helpers, build scripts
docs/ the documents above
AGENTS.md hand-off notes
LICENSE, NOTICE.md license + third-party attribution
SECURITY.md backdoor/scope/reporting
ال toolkit بأكمله مُودَع في المستودع، لذا يعمل الـ clone دون أي شجرة عمل أخرى.
server/payload.dll مُضمَّن عن قصد (مطابق بايتًا ببايت لمخرجات البناء)
حتى يعمل ال toolkit دون .NET SDK. سجلات وقت التشغيل ومخرجات البناء وسكربت
النشر المُولَّد لكل مضيف مُستثناة من git ولا تُقدَّم أبدًا عبر HTTP.
docs/PORTABILITY.md قبل تجربة طراز آخر.server/deploy.sh هو
قالب تُصيّر فيه server.py علامات H=/WANT=/SIZE_WANT=/TOKEN= لكل طلب
من العنوان الذي استخدمه ال TV ومن ال payload الذي قُدِّم فعليًا، وتُعيد الصفحة كتابة
callback الخاص بال shellcode (ال IP وال port)، ويقرأ ال payload
share/rootchan.host. قيمة Host المُضمَّنة في البناء هي عنصر نائب TEST-NET.docs/SERVER-HOSTING.md).payload/global.json
الإصدار 10.0.x (rollForward: latestPatch)؛ يستهدف المشروع net6.0، وهو ما يزال
ال SDK المثبَّت يبنيه (يُتوقَّع ظهور تحذير EOL).المواد المرجعية (firmware، مصادر kernel بترخيص GPL، أدوات QEMU) غير مُضمَّنة؛ يسرد docs/REFERENCE-MATERIALS.md مكان تنزيل كل جزء لطرازك الخاص.