
CVE-2026-67598 — Emlog Pro: disabled TLS certificate validation in AI assistant (MITM → API-key theft). CWE-295, CVSS 9.1. Reported by @IlhomjonR.
هجوم MITM قريب من الشبكة → سرقة مفتاح API الخاص بمزوّد نماذج اللغة الكبيرة (LLM) وحقن استجابات الذكاء الاصطناعي
الملخص · مسار الهجوم · الكود المتأثر · الإثبات · المعالجة · الخط الزمني · المراجع
يأتي Emlog Pro مزوّدًا بمساعد ذكاء اصطناعي موجّه للمشرف (admin/ai.php + include/service/ai.php)
يُجري طلبات HTTPS صادرة إلى مزوّد نماذج لغوية كبيرة (LLM) مُهيأ — للمحادثة والبث وتوليد
الصور — بالإضافة إلى أداة مساعدة تستخرج نتائج Bing لأمر @em-help.
كل أداة من أدوات الطلبات الصادرة تعطّل التحقق من شهادة TLS بشكل غير مشروط:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
التحقق يكون مُعطّلًا بغض النظر عن عنوان المزوّد المُهيأ أو مسار الشبكة، لذا يمكن لأي
مهاجم قريب من الشبكة / رجل في المنتصف (MITM) يقع بين خادم Emlog وapi_url اعتراض
جلسة TLS بشفافية باستخدام شهادة مزوّرة، ومن ثم:
Authorization: Bearer <apiKey> — مفتاح API المدفوع لمزوّد نماذج اللغة الكبيرة الخاص بالموقع.query_database وupdate_config.هذا خلل نقي في أمان طبقة النقل — وهو ليس خاضعًا لواجهة تأكيد استدعاء أدوات الذكاء الاصطناعي.
flowchart LR
A["🖥️ Emlog server<br/>AI assistant"] -->|"HTTPS request<br/>Bearer <apiKey>"| M{"😈 MITM attacker<br/>(forged cert)"}
M -->|"TLS verify DISABLED<br/>→ accepted"| P["☁️ LLM provider"]
M -.->|"🔑 reads API key"| X["Key exfiltrated"]
M -.->|"💉 forged response"| A
A -->|"acts on injected<br/>AI output"| T["⚙️ query_database /<br/>update_config tools"]
classDef bad fill:#7f1d1d,stroke:#ef4444,color:#fff;
classDef ok fill:#1e3a8a,stroke:#3b82f6,color:#fff;
class M,X bad;
class A,P,T ok;
include/service/ai.php — استدعاءات CURLOPT_SSL_VERIFYPEER / CURLOPT_SSL_VERIFYHOST في:
| الدالة | الغرض |
|---|---|
send() | طلب محادثة LLM |
# 1. Configure the AI assistant with any OpenAI-compatible provider URL + API key.
# 2. Put a MITM proxy with an UNTRUSTED CA between Emlog and the provider:
mitmproxy --mode reverse:https://api.provider.example -p 8443
# 3. Trigger any AI chat / image-gen / @em-help request from the admin panel.
# 4. Result: request succeeds despite the untrusted cert, and the
# "Authorization: Bearer ..." header is readable in the proxy log
# → certificate validation is confirmed disabled.
توجد لقطات شاشة لمثيل Emlog Pro 2.6.23 المُدقَّق في
screenshots/ — الصفحة الرئيسية وتسجيل دخول المشرف.
فعّل التحقق من TLS لجميع الطلبات الصادرة في include/service/ai.php:
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
يجب دعم نقاط النهاية المستضافة ذاتيًا / المتوافقة مع OpenAI والتي تستخدم مرجع مصادقة (CA) خاصًا عبر حزمة مرجع مصادقة مخصصة (
CURLOPT_CAINFO) — أبدًا عن طريق تعطيل التحقق عالميًا.
أثناء تدقيق نفس ميزة الذكاء الاصطناعي، تبيّن أن Ai::queryDatabase() تحظر بشكل خاص عمليات
الكتابة المباشرة في SQL إلى جدول blog لكن ليس جدول user (الذي يحتوي على role / password).
وبدمج ذلك مع مسار حقن التعليمات غير المباشر عبر @em-help (نتائج Bing المباشرة + أسئلة شائعة
مستخرجة تُغذَّى إلى نموذج يمتلك صلاحيات أدوات query_database / update_config)، يستحق هذا
الأمر تحصينًا بتوجيه عمليات الكتابة إلى user / options عبر أدوات ضيقة النطاق — تمامًا بالطريقة
التي يتعامل بها write_article مع منشورات المدونة. التفاصيل الكاملة في REPORT.md
(مُتتبَّع بشكل منفصل عن CVE أعلاه).
| التاريخ | الحدث |
|---|---|
| 2026-07-24 | تحديد الثغرة أثناء تدقيق Emlog Pro 2.6.23 (الالتزام ff5637e) |
| 2026-07-29 | حجز CVE عبر VulnCheck |
نُشر لأغراض تعليمية وأمنية دفاعية ضمن إطار الكشف المنسّق.
تم الاكتشاف والإبلاغ بواسطة Ilhomjon Rustamov (@IlhomjonR) · CNA: VulnCheck
| معرف CVE | CVE-2026-67598 |
| المنتج | emlog/emlog — Emlog Pro |
| المتأثر | Emlog Pro حتى الإصدار 2.6.23 |
| موطن الضعف | CWE-295: التحقق غير السليم من الشهادة |
| CVSS v4.0 | 9.1 — حرِج |
| CVSS v3.1 | 7.4 — مرتفع |
| ناقل الهجوم | قريب من الشبكة · بدون صلاحيات · MITM |
| CNA | VulnCheck · GHSA-hf85-99vj-m4c5 |
| محجوز / منشور | 2026-07-29 / 2026-08-03 |
| الباحث | Ilhomjon Rustamov (@IlhomjonR) |
sendStream()| استجابة محادثة بثّية |
sendImageRequest() | توليد الصور بالذكاء الاصطناعي |
fetchSearchHtml() | استخراج Bing لأمر @em-help |
| 2026-08-03 |
| نشر CVE-2026-67598 |