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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-66628 | Kitploit
أدوات/GitHubGitHub/sumitshah00/cve-2025-66628
التحليل الثابتتحليل الثغرات الأمنيةتحليل الكودالاستغلالتحليل الملفات الثنائيةالأوراق والأبحاثالتعلم والتعليم
GitHubsumitshah00/cve-2025-66628

CVE-2025-66628

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2025-66628: تجاوز عدد صحيح في محلل TIM الخاص بـ ImageMagick

السمةالتفاصيل
معرف CVECVE-2025-66628
البائعImageMagick Studio LLC
المنتجImageMagick
الإصدارات المتأثرة< 7.1.2-10
الإصدار المُصحَّح7.1.2-10
نوع الثغرةCWE-190 (تجاوز عدد صحيح)
درجة CVSS v3.17.5 (عالية)
متجه CVSSCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
الباحثSumit Shah

ملخص

توجد ثغرة تجاوز عدد صحيح في الدالة ReadTIMImage داخل coders/tim.c الخاصة بـ ImageMagick. عند معالجة ملفات صور TIM (PlayStation) على أنظمة 32-بت، يؤدي الضرب غير المُختبر لقيمتي العرض والارتفاع المتحكم فيهما من قبل المستخدم إلى نقص في تخصيص الذاكرة، مما يؤدي إلى قراءات خارج النطاق أثناء معالجة البكسلات.


التفاصيل الفنية

الكود المتأثر

تقع المنطقية القابلة للاستغلال في coders/tim.c:

root@kitploit:~
/* coders/tim.c - TIM Image Parser */

// User-controlled input from TIM file header
width = ReadBlobLSBShort(image);   // 2 bytes (0-65535)
height = ReadBlobLSBShort(image);  // 2 bytes (0-65535)

// VULNERABLE: Integer overflow on 32-bit systems
image_size = 2 * width * height;  // No overflow check

// Memory allocated with truncated size
pixels = (unsigned char *) AcquireQuantumMemory(image_size, sizeof(*pixels));

// Loop processes FULL dimensions, reading beyond buffer
for (y = 0; y < height; y++) {
    for (x = 0; x < width; x++) {
        pixel_index = (y * width + x) * 2;
        pixels[pixel_index] = ReadBlobByte(image);
        pixels[pixel_index + 1] = ReadBlobByte(image);
    }
}

السبب الجذري

على بنى 32-بت، يكون size_t محدودًا بـ 32-بت بقيمة قصوى UINT_MAX = 4,294,967,295.

عندما يتم ضبط كل من العرض والارتفاع على القيم القصوى غير الموقعة 16-بت:

root@kitploit:~
width = 65535 (0xFFFF)
height = 65535 (0xFFFF)

الحساب المتوقع:
2 × 65535 × 65535 = 8,589,869,050 بايت (~8.5 جيجابايت)

النتيجة الفعلية (التفاف 32-بت):
8,589,869,050 % 4,294,967,296 = 4,294,901,754
النتيجة بعد الاقتطاع: مخزن مؤقت صغير مخصص

يؤدي التجاوز إلى جعل مُخصص الذاكرة يحجز مخزنًا مؤقتًا أصغر بكثير من المطلوب، بينما تستمر حلقة المعالجة في التكرار على كامل شبكة البكسلات 65535 × 65535، مما يؤدي إلى قراءات خارج النطاق.

الاستغلال

الخطوة 1: يقوم المهاجم بإنشاء ملف TIM بأبعاد تسبب التجاوز

root@kitploit:~
[Magic: 0x10]
[Type: 0x02]
[Width: 0xFFFF]   # 65535
[Height: 0xFFFF]  # 65535
[Pixel Data...]

الخطوة 2: تقوم الضحية بمعالجة الملف الخبيث

root@kitploit:~
convert malicious.tim output.png

الخطوة 3: تحدث قراءة خارج النطاق، مما يؤدي إلى:

  • كشف ذاكرة الكومة (تتسرب إلى صورة الإخراج أو يمكن ملاحظتها عبر التوقيت)
  • خطأ تجزئة (حرمان من الخدمة)

المنصات المتأثرة

الأنظمة 32-بت حيث يكون size_t بـ 32-بت. الأنظمة 64-بت غير متأثرة نظرًا لاتساع العدد الصحيح الكافي لتمثيل الحجم المحسوب دون تجاوز.


الأثر

كشف المعلومات (أساسي): يمكن قراءة ذاكرة الكومة الخاصة بعملية ImageMagick أثناء الوصول خارج النطاق. قد تحتوي هذه الذاكرة على:

  • بيانات صور عولجت سابقًا
  • متغيرات بيئة
  • مسارات ملفات
  • بيانات اعتماد مخزنة مؤقتًا (في البيئات متعددة المستأجرين)

يمكن تضمين البيانات المسربة في صورة الإخراج المحولة أو استخراجها عبر تحليل القنوات الجانبية.

الحرمان من الخدمة (ثانوي): تؤدي قراءة مناطق ذاكرة غير معيّنة إلى إطلاق SIGSEGV، مما يتسبب في إنهاء عملية ImageMagick وتعطيل الخدمة في خطوط معالجة الصور الآلية.


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

يتم توفير التفاصيل الفنية لأغراض التحقق. لا يتم توزيع أي كود استغلال قابل للتنفيذ.

شروط الإثارة

  • إصدار ImageMagick < 7.1.2-10 مُجمَّع لبنية 32-بت
  • ملف TIM مُصمَّم بشكل خبيث بحيث تحدد بايتات الترويسة العرض=65535 والارتفاع=65535
  • المعالجة عبر convert أو magick أو أي استدعاء لواجهة برمجة تطبيقات ImageMagick

السلوك المتوقع (ثغرة)

root@kitploit:~
$ convert malicious.tim output.png
Segmentation fault (core dumped)

أو تحويل ناجح مع تضمين بيانات كومة مسربة في الإخراج.

السلوك المتوقع (مُصحَّح)

root@kitploit:~
$ convert malicious.tim output.png
convert: Memory allocation failed `malicious.tim' @ error/tim.c/ReadTIMImage/XXX.

المعالجة

للمسؤولين

قم بتحديث ImageMagick إلى الإصدار 7.1.2-10 أو أحدث:

root@kitploit:~
# Verify current version
convert --version

# Update using package manager
apt update && apt upgrade imagemagick      # Debian/Ubuntu
yum update imagemagick                     # RHEL/CentOS
brew upgrade imagemagick                   # macOS

للمطورين

قم بتنفيذ فحص التجاوز قبل العمليات الحسابية:

root@kitploit:~
// Insecure
image_size = 2 * width * height;

// Secure
if (height != 0 && width > (SIZE_MAX / 2) / height) {
    ThrowReaderException(ResourceLimitError, "MemoryAllocationFailed");
}
image_size = 2 * width * height;

طبّق التحقق من صحة المدخلات وحدود منطقية على قيم الأبعاد قبل إجراء الحسابات.


المراجع

  • سجل CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-66628
  • استشارة GitHub: https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-6hjr-v6g4-3fm8
  • مستودع ImageMagick: https://github.com/ImageMagick/ImageMagick
  • CWE-190: https://cwe.mitre.org/data/definitions/190.html

منهجية الاكتشاف

تم تحديد هذه الثغرة باستخدام تحليل المتغيرات. بعد الإفصاح عن تجاوز عدد صحيح مشابه في مفكك BMP الخاص بـ ImageMagick، تم إجراء مراجعة منهجية لمحللات تنسيقات الملفات القديمة. قادت مطابقة الأنماط لحسابات width * height غير المُختبرة إلى تحديد نفس الخلل في محلل TIM.

تمثل محللات تنسيقات الصور القديمة (TIM و SGI و VIFF وغيرها) أهدافًا عالية القيمة بسبب ندرة عمليات التدقيق الأمني والاعتماد على حسابات C غير الآمنة.


الإفصاح المسؤول

تم الإبلاغ عن هذه الثغرة بشكل خاص إلى القائمين على صيانة ImageMagick عبر استشارات أمان GitHub. حدث الإفصاح العام فقط بعد توفر التصحيح وتعيين CVE. أُجري هذا البحث بشكل أخلاقي وفق مبادئ الإفصاح المسؤول.

المكتشف

SUMIT SHAH

الباحث: SUMIT SHAH

  • LinkedIn: linkedin.com/in/sumit-shah-614625350
  • Instagram: @hacksagex
تنزيل الأداة