
# التحليل الفني لـ CVE-2026-28858 تحليل فني لثغرة CVE-2026-28858، وهي تجاوز سعة المخزن المؤقت (buffer overflow) حرجة في نواة Apple iOS/iPadOS، بما في ذلك تدفق الاستغلال (exploit flow)، والتخفيف (mitigation)، وأمثلة على البرمجة الدفاعية (defensive coding).
╔══════════════════════════════════════════════════════════════╗
║ الخطورة: حرجة │ CVSS: 9.8 │ CWE-120 │ عن بُعد ║
╚══════════════════════════════════════════════════════════════╝
يمكن لمستخدم عن بُعد التسبب في إنهاء غير متوقع للنظام أو تلف ذاكرة النواة في iOS/iPadOS دون تفاعل من المستخدم أو امتيازات.
| الحقل | القيمة |
|---|---|
| CVE ID | CVE-2026-28858 |
| EUVD | EUVD-2026-15131 |
| نُشر | 25 مارس 2026 |
| آخر تحديث | 26 مارس 2026 |
| CVSS v3.1 | 9.8 / 10 — حرج |
| EPSS | 0.05% |
| المتجه | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CWE | CWE-120 — نسخ المخزن المؤقت دون التحقق من الحجم |
| الحالة | تم التحليل — يتوفر تصحيح |
تجاوز سعة المخزن المؤقت (Buffer Overflow) في Apple iOS وiPadOS ناتج عن فحص حدود غير كافٍ في معالجة مدخلات النواة.
التأثير الفعلي:
لا يوجد استغلال عام لـ CVE-2026-28858. التمثيل التالي مفاهيمي، استنادًا إلى CWE-120 ومتجه الهجوم الموثق.
# تمثيل مفاهيمي للتجاوز
import socket
# 1. ملء المخزن المؤقت المخصص (~512 بايت نموذجي في معالجات النواة)
buffer_fill = b"A" * 512
# 2. عنوان الإرجاع المستبدل — يشير إلى منطقة يتحكم بها المهاجم
# في iOS/iPadOS الفعلي: يتطلب تجاوز ASLR + PAC (رموز مصادقة المؤشر)
return_address = b"\x41\x42\x43\x44"
# 3. شيلكود: منزلق NOP + تعليمات ضارة لـ ARM64
shellcode = b"\x90" * 16 + b"\xeb\x12..." # منزلق NOP + الحمولة
payload = buffer_fill + return_address + shellcode
# تسليم عن بُعد دون تفاعل المستخدم
# مثال: حزمة شبكة مع حقل طول معدل
import struct
def craft_malicious_packet(target_ip: str, target_port: int):
"""
ينشئ حزمة ببيانات وصفية مشوهة تعالجها نواة
iOS في الخلفية (دون واجهة مستخدم).
مثال: شهادة TLS، بيانات وصفية للصورة، حقل بروتوكول شبكة.
"""
# ترويسة البروتوكول الشرعية
header = struct.pack(">HH", 0x0001, 0xFFFF) # type=1, length=OVERFLOW
# حمولة تتجاوز مخزن النواة المؤقت
malicious_data = header + payload
with socket.socket(socket.AF_INET, socket.SOCK_RAW) as s:
s.sendto(malicious_data, (target_ip, target_port))
[شبكة/WiFi/BT] → حزمة مشوهة
↓
[عملية iOS في الخلفية] → يقرأ حقل "الطول" = 0xFFFF
↓
[memcpy(مخزن_النواة, البيانات, 0xFFFF)] → دون التحقق من الحدود
↓
[تجاوز: شيلكود مكتوب فوق مكدس/كومة النواة]
↓
[توجيه المعالج إلى عنوان_الإرجاع الخاص بالمهاجم]
↓
[تنفيذ بامتيازات ring 0 / امتيازات النواة]
/* ❌ الكود المعرض للخطر (قبل التصحيح) */
void procesar_entrada(char *datos_usuario, size_t longitud) {
char bufer_kernel[512];
memcpy(bufer_kernel, datos_usuario, longitud); // دون تحقق
}
/* ✅ الكود المُصحح (iOS/iPadOS 26.4) */
void procesar_entrada(char *datos_usuario, size_t longitud) {
char bufer_kernel[512];
// فحص الحدود — الإصلاح المطبق من Apple
if (longitud > sizeof(bufer_kernel)) {
kernel_log("CVE-2026-28858: إدخال مقتطع [%zu > 512]", longitud);
return; // إحباط قبل النسخ
}
memcpy(bufer_kernel, datos_usuario, longitud);
}
/* آلية دفاع متعمق: Stack Canary */
#include <string.h>
#define CANARY_VALUE 0xDEADBEEFCAFEBABE
void procesar_entrada_segura(char *datos_usuario, size_t longitud) {
uint64_t canary = CANARY_VALUE;
char bufer_seguro[512];
if (longitud > sizeof(bufer_seguro)) {
log_security_event("تم حظر محاولة تجاوز");
return;
}
memcpy(bufer_seguro, datos_usuario, longitud);
// التحقق من سلامة الكناري بعد النسخ
if (canary != CANARY_VALUE) {
panic("تم اكتشاف Stack smashing — CVE-2026-28858");
}
}
إجراء فوري مطلوب:
التحديث إلى iOS 26.4 / iPadOS 26.4 أو أحدث
23 مارس 2026 → النشر الأولي (EUVD)
24 مارس 2026 → نشر استشارة Apple #126792
24 مارس 2026 → أول ذكر تم اكتشافه (Feedly)
24 مارس 2026 → تقدير CVSS عبر التحليل الآلي
25 مارس 2026 → NVD يخصص CVSS 9.8 — حرج
25 مارس 2026 → إضافة الكشف إلى Qualys (المعرف: 610773)
26 مارس 2026 → الحالة: تم التحليل
جميع إصدارات iOS وiPadOS الأقدم من 26.4، بما في ذلك:
راجع القائمة الكاملة لـ CPEs المتأثرة في وثائق المرجع.
| المصدر | الرابط |
|---|---|
| استشارة أمان Apple | https://support.apple.com/en-us/126792 |
| NVD | https://nvd.nist.gov/vuln/detail/CVE-2026-28858 |
| CWE-120 | https://cwe.mitre.org/data/definitions/120.html |
إخلاء مسؤولية: الكود المعروض هو مجرد تمثيل مفاهيمي لأغراض تعليمية وبحث دفاعي. لا يوجد استغلال عام لـ CVE-2026-28858.
| المعامل | القيمة | الوصف |
|---|
| متجه الهجوم | شبكة | قابل للاستغلال عن بُعد |
| التعقيد | منخفض | دون شروط خاصة |
| الامتيازات المطلوبة | لا شيء | لا حاجة للمصادقة |
| تفاعل المستخدم | لا شيء | Zero-click |
| النطاق | دون تغيير | محصور في المكوّن المعرض للخطر |
| السرية | عالٍ | وصول كامل للبيانات |
| التكامل | عالٍ | تعديل كامل ممكن |
| التوفر | عالٍ | تعطل النظام |