واتسابدمشقالسبت – الخميس·10:00 ص – 7:00 م

Drupal core بخير. الخطر في الـ contrib modules

16 advisory في يوم واحد عبر 14 مشروعاً، ومعظمها access bypass. الحل ليس مزيداً من الاجتهاد، بل قائمة modules أقصر.

الأمننُشر في 3 دقائق قراءة

أربعاء واحد

في 2 أيلول 2026 نشر فريق أمن Drupal 16 advisory لمشاريع الـ contrib، موزّعة على 14 مشروعاً، 5 منها مصنّفة Critical. وقبل أسبوع، في 26 آب، صدرت 4 أخرى.

اقرأ القائمة ويظهر النمط فوراً. Jsonapi Role AccessCritical، access bypass. Calculate Working DaysCritical، access bypass. والـ module المسمّى Email Verification / SMS Verification / OTP Verification — اثنان Critical، أحدهما access bypass والآخر XSS. ثم Monobank payment API وMedia Library Importer وMailer Plus Log وIslandora وAdvanced Search وAI translateaccess bypass، كلها. وتضيف دفعة آب LDAP / Active Directory Integration لكشف المعلومات وEntity PDF لـ access bypass.

الـ access bypass ليس ثغرة واحدة تتكرر، بل ما يخطئ فيه الـ module حين يضيف route وينسى أن Drupal لن تخمّن من يحقّ له الوصول إليه.

أين تقع المخاطرة فعلاً

الـ core في Drupal من أفضل شيفرات PHP تدقيقاً على الإطلاق. له فريق أمني مموَّل، وعملية إفصاح، وإيقاع إصدار يحذّرك مسبقاً. وتكاد لا تجد core في القائمة أعلاه.

والموقع الذي أنت مسؤول عنه ليس core، بل core زائد 20 إلى 60 module من الـ contrib، اختارها على مدى سنوات أشخاص غادروا منذ حين، وكل واحد منها يضيف routes وpermissions وform handlers وأحياناً REST endpoint. هذا هو سطح الهجوم الحقيقي، ووسيط الـ modules فيه له maintainer واحد يعمل عليه في وقت فراغه.

هذه ليست حجة ضد الـ contrib؛ فـ Drupal بلا contrib ليست طرحاً أصلاً. إنها حجة لأن تعرف ما نصّبته.

التدقيق، في بعد ظهر واحد

أدرِج ما لديك ولماذا. لكل module سطر واحد: ماذا يفعل، وأي ميزة تنكسر إن أُزيل. وكل module لا تستطيع كتابة هذا السطر عنه مرشَّح للحذف — والـ module المحذوف لن تكون له ثغرة أبداً.

افحص التغطية لا الإصدارات وحدها. قد يكون الـ module محدَّثاً وغير مدعوم في آن. الأمر composer show drupal/* يعطيك الإصدارات، وصفحة https://www.drupal.org/project/<name> تخبرك هل ما زال الفريق الأمني يغطيه ومتى صدر آخر مرة. والـ module المهجور بلا advisory مفتوح ليس آمناً، بل غير مراقَب.

أزِل التنصيب كما ينبغي. تعطيل module في Drupal يترك شيفرته على القرص وroutes الخاصة به قابلة للوصول احتمالاً. نفّذ uninstall، ثم احذفه بـ composer remove، ثم تأكّد أن المجلد اختفى.

راقب الـ modules التي تمسّ الصلاحيات. كل ما يحمل في اسمه access أو role أو api أو auth أو verification أو sso يفعل الشيء الذي تُظهر قائمة أيلول أنه الأكثر خطأً. هذه تستحق نظرة أدقّ من module لعرض الشرائح.

اشترك في feed الـ contrib تحديداً. فللـ core والـ contrib feed منفصلان، ومراقبة core وحده مراقبة للجزء الذي نادراً ما يخذلك:

https://www.drupal.org/security/contrib/rss.xml

الجزء المزعج

advisories الـ contrib تصل دفعات من 16، وهو ما يجعلها تبدو ضجيجاً، ولن ينطبق عليك معظمها. ولهذا بالضبط تُقرأ سريعاً — ولهذا يُقرأ سريعاً أيضاً الـ advisory الوحيد الذي ينطبق.

والحل ليس مزيداً من الاجتهاد، بل قائمة أقصر. كل module تحذفه لن تضطر لقراءة دفعة advisories أربعاء من أجله، إلى الأبد.