في 27 أبريل 2026، كشف باحث أمني علنًا أن تكوين علامات الميزات من جانب العميل في ClickUp قد عرّض معلومات شخصية للخطر. وعلى وجه التحديد، تم تضمين 893 عنوان بريد إلكتروني لعملاء في قواعد استهداف علامات الميزات، إلى جانب علامة واحدة أشارت بشكل غير صحيح إلى رمز API لأحد العملاء، والذي استُخدم خلال عملية الاستجابة لحادث ما لفرض حدود على معدل حركة المرور من مساحة العمل تلك.
كان ينبغي أن نكتشف هذا الأمر في وقت أبكر. لكننا لم نفعل ذلك، ونحن مدينون لكم بتفسير واضح لما حدث، ولماذا حدث، وما الذي قمنا به حيال ذلك الآن، وكيف سنعمل على تحسين الأمور في المستقبل.
هل أنت متأثر بذلك؟
اقتصر التسرب على 893 عنوان بريد إلكتروني لعملاء تم استخدامها في قواعد استهداف علامات الميزات للتحكم في المستخدمين الذين يمكنهم رؤية ميزات معينة أثناء عمليات الطرح.
إذا تلقيت رسالة مباشرة قبل يوم 29 أبريل أو في ذلك اليوم (لا يزال الأمر مستمراً)، فهذا يعني أن عنوان بريدك الإلكتروني كان ضمن العناوين التي أُدرجت في إعدادات علامة الميزة. إذا لم تتلقَ أي رسالة منا، فهذا يعني أن بريدك الإلكتروني لم يكن مدرجاً في قائمة عناوين البريد الإلكتروني.
- لم يتم الكشف عن أي محتوى في مساحة العمل (مهام أو مستندات أو ملفات أو بيانات مشاريع) لأي عميل — باستثناء حالة محتملة واحدة موضحة أدناه.
- لم يتم الكشف عن أي كلمات مرور أو بيانات فوترة أو بيانات اعتماد للحساب.
- لم تتعرض أي أنظمة مصادقة للاختراق.
المشكلة الفنية
يستخدم ClickUp Split.io (الذي أصبح الآن جزءًا من Harness) لإدارة علامات الميزات. مثل معظم حزم SDK لعلامات الميزات على جانب المتصفح، يتطلب Split.io مفتاح SDK على جانب العميل مدمجًا في حزمة JavaScript الخاصة بالتطبيق. هذا المفتاح عام عن قصد، وهو الطريقة التي يستخدمها SDK لتقييم العلامات للمستخدم الحالي في المتصفح. هذا سلوك قياسي وموثق عبر Split.io وLaunchDarkly والمنصات المماثلة، ولا يمثل ثغرة أمنية.
المشكلة ليست في المفتاح نفسه، بل في ما يضعه مهندسونا داخل إعدادات العلامة.
إليكم ما حدث من الناحية الهندسية: تتيح منصات علامات الميزات للمهندسين استهداف مستخدمين محددين عند طرح الميزات. كانت فرق الهندسة في ClickUp تستخدم عناوين البريد الإلكتروني مباشرةً في قواعد استهداف العلامات. ومن الأمثلة على ذلك تمكين ميزة لمجموعة محددة من مختبري الإصدار التجريبي. تعرض نقطة نهاية splitChanges القابلة للاستعلام عنها علنًا في Split.io SDK المجموعة الكاملة من تعريفات العلامات، بما في ذلك قواعد الاستهداف هذه. وهذا يعني أن أي شخص لديه المفتاح من جانب العميل (والذي، مرة أخرى، موجود عمدًا في كود الواجهة الأمامية لدينا) يمكنه استرداد تعريفات العلامات تلك واستخراج عناوين البريد الإلكتروني المضمنة فيها.
تعامل المهندسون مع إعدادات علامات الميزات كأدوات داخلية، في حين أن بنية حزمة تطوير البرامج (SDK) تجعلها قابلة للاستعلام عنها بشكل عام بحكم تصميمها. وقد أدى ذلك إلى تراكم عناوين البريد الإلكتروني في مكان لم يكن ينبغي أن توجد فيه أبدًا. تتطلب تحديثات علامات الميزات مراجعة من قبل زميلين، على غرار ما يحدث مع الكود. ولم تكتشف خطوة المراجعة هذه المشكلة.
الاستثناء الوحيد – علم تم تهيئته لتقييد معدل استخدام عميل واحد
أشار مهندس مناوب كان يتعامل مع حالة إساءة استخدام واجهة برمجة التطبيقات (API) إلى رمز API خاص بأحد العملاء في إعدادات علامة تحديد السرعة (rate-limiting flag) بهدف تقييد حركة المرور، مما جعل هذا الرمز قابلاً للقراءة عبر نقطة نهاية SDK. ما كان يجب أن يحدث هذا أبداً: فبيانات الاعتماد لا ينبغي أن ترد في إعدادات العلامات. وقد قمنا بتعطيل الرمز على الفور، وحتى الآن، لا تظهر تحقيقاتنا في السجلات أي دلائل على وجود وصول ضار بخلاف التحقيق الذي أجراه الباحث نفسه. لم يكن من الممكن الوصول إلى أي رموز عملاء أخرى أو بيانات مساحة العمل، ونحن نعمل مباشرة مع هذا العميل.
ما تم الكشف عنه وما لم يتم الكشف عنه
| الادعاء | نتائجنا |
| مفتاح SDK مدمج في الحزمة | هذا صحيح ومقصود. هكذا تعمل حزم SDK الخاصة بعلامات الميزات على جانب المتصفح. ولا يُعد ذلك ثغرة أمنية بحد ذاته. |
| 893 عنوان بريد إلكتروني للعملاء في قواعد استهداف العلامات | صحيح وقت إعداد التقرير. تمت إزالة جميع عناوين البريد الإلكتروني التابعة لأطراف ثالثة بحلول 28 أبريل، الساعة 03:25 بالتوقيت العالمي المنسق. |
| رمز API العميل النشط في إعدادات العلامات | تم تأكيدها. أضيفت في 7 أكتوبر 2025. ألغيت في 27 أبريل 2026 الساعة 12:05 بالتوقيت العالمي المنسق. |
| حق الوصول للكتابة إلى Split.io | هذا صحيح ومقصود. تقبل نقاط نهاية القياس عن بُعد في مجموعة أدوات تطوير المتصفح (events/bulk، testImpressions) عمليات الكتابة كجزء من السلوك القياسي لمجموعة أدوات التطوير. ولا يُعد هذا خطأً في تكوين ClickUp. |
| "لم يتم إجراء أي إصلاحات منذ 15 شهراً" | توصيف خاطئ؛ التواريخ صحيحة. لم يؤد تقرير مكافأة الأخطاء الأصلي الصادر في 17 يناير 2025 بشأن مفتاح SDK إلى مهمة هندسية لأن المفتاح وحده لا يمثل الثغرة الأمنية. كانت عناوين البريد الإلكتروني وتكوينات العلامات هي المشكلة الفعلية ولم يتم تضمينها في هذا التقرير الأصلي. لم يتم الكشف عن تكوينات العلامات حتى 8 أبريل 2026 إلى HackerOne ولم تكن معروفة لـ ClickUp حتى 27 أبريل 2026. |
الجدول الزمني
نحن ملتزمون بالشفافية التامة بشأن النقاط التي تعثرت فيها عملياتنا، بما في ذلك الإخفاقات التي ارتكبها مزود خدمة مكافآت اكتشاف الأخطاء التابع لجهة خارجية وأدوات الاتصال الداخلية الخاصة بنا.
| التاريخ | الحدث |
| 17 يناير 2025 | أبلغ أحد الباحثين عن تسرب مفتاح SDK الخاص بـ Split.io إلى برنامج مكافآت الأخطاء الخاص بنا على منصة BugCrowd. وبالنظر إلى محتوى التقرير، تم تصنيفه بشكل صحيح على أنه "إعلامي" من قِبل كل من BugCrowd وClickUp. |
| 3 يونيو 2025 | تنقل ClickUp برنامج مكافآت اكتشاف الأخطاء إلى HackerOne. وقد تم نقل جميع البلاغات السابقة بنجاح، بما في ذلك المشكلة المذكورة أعلاه. |
| 8 أبريل 2026 | قدم الباحث الذي يستخدم الاسم المستعار «impulsive» تقريرًا جديدًا ومفصلاً على منصة HackerOne يوثق نطاق التأثير الموسع: 893 عنوان بريد إلكتروني لعملاء مدرجة في قواعد استهداف الإبلاغات، ورمز API الخاص بالعملاء النشط، بالإضافة إلى بيانات تشغيلية أخرى. |
| 10 أبريل 2026 | قام محلل الفرز في HackerOne بإغلاق التقرير خطأً باعتباره نسخة مكررة من تقرير يناير 2025، متجاهلاً أن التقرير الجديد يوثق تأثيراً مختلفاً جوهرياً وأوسع نطاقاً. وعند إجراء مراجعة إضافية، حددنا حالتين أخريين تم فيهما إغلاق تقارير مماثلة بشكل خاطئ – إحداهما في 6 سبتمبر 2025 والأخرى في 1 يناير 2026 |
| 21 أبريل 2026 | يرد الباحث على الرد بالرفض بتقديم مزيد من التفاصيل إلى HackerOne. |
| 25 أبريل 2026 | يصعد الباحث من خطواته: ففي إطار منصة HackerOne، أرسل رسالة بريد إلكتروني إلى الرئيس التنفيذي لشركة ClickUp وإلى العنوان security@clickup.com، كما أرسل رسائل خاصة عبر منصة X إلى ClickUp، وحدد يوم 2 مايو موعدًا نهائيًا للإفصاح العلني. وقد تم حجب رسائل البريد الإلكتروني الموجهة إلى الرئيس التنفيذي لشركة ClickUp وإلى العنوان security@ بواسطة مرشحات البريد العشوائي، ولم تصل إلى المستلمين المقصودين. أما الرسائل الخاصة عبر منصة X الموجهة إلى ClickUp، فقد تم تصفيةها تلقائيًا ولم تتم قراءتها. |
| 27 أبريل 2026 ~ الساعة 10:42 بالتوقيت العالمي المنسق | يقوم الباحث بنشر المعلومات علنًا على منصة X. |
| 27 أبريل 2026 الساعة 11:06 بالتوقيت العالمي المنسق | تم إخطار ClickUp. تم الإعلان عن وقوع الحادث. بدأت عملية الاستجابة للحادث، كما تم الشروع في عملية تغيير رمز API الخاص بالعميل. |
| 27 أبريل 2026، الساعة 12:53-14:12 بالتوقيت العالمي المنسق | عمليات التنظيف الأولية لعلامات الانقسام عبر فرق الهندسة. |
| 27 أبريل 2026 ~ الساعة 17:00 بالتوقيت العالمي المنسق | اكتملت عملية التدقيق الآلية بالكامل لجميع علامات الميزات البالغ عددها 4,809. |
| 27 أبريل 2026 الساعة 23:13 بالتوقيت العالمي المنسق | يقوم مهندسو ClickUp وHarness (Split) بمراجعة التفاصيل الفنية. |
| 28 أبريل 2026 الساعة 03:25 بالتوقيت العالمي المنسق | تم التأكد من حذف جميع عناوين البريد الإلكتروني للعملاء من إعدادات العلامات. ملاحظة: تم الإبقاء عمدًا على بعض عناوين البريد الإلكتروني التابعة لأطراف ثالثة ضمن علامتين؛ وذلك بسبب استخدامها في عمليات احتيالية. |
أين فشلت خطواتنا
هناك ثلاثة أخطاء وقعت هنا، ونود أن نحدد كل منها بوضوح. وسنناقش التغييرات في القسم التالي.
1. لم يتم اتخاذ أي إجراءات متابعة ثانوية بشأن التقرير الأصلي. كان من الممكن أن يؤدي تقرير مكافأة اكتشاف الأخطاء الصادر في يناير 2025 إلى تكليف فريق الهندسة بمهمة ومراجعة البيانات الموجودة في إعدادات العلامات. لكن ذلك لم يحدث. ونحن نعمل حالياً على تحديث عملية الفرز لدينا لمنع تكرار حدوث ذلك في المستقبل.
2. أخطأت HackerOne في التعامل مع إغلاق التقرير باعتباره مكرراً. فقد وثّق تقرير أبريل 2026 تأثيراً جديداً بشكل جوهري مقارنةً بتقرير يناير 2025. ولم يكن ينبغي أن تغلقه HackerOne باعتباره مكرراً. وبعد مراجعة إضافية، حددنا حالتين أخريين تم فيهما إغلاق تقارير مماثلة – واحدة في 6 سبتمبر 2025، والأخرى في 1 يناير 2026. ونحن نعمل مع HackerOne لمعالجة الثغرات في عمليات الفرز الخاصة بهم. وسنقوم بإجراء مراجعة ثانوية لجميع تقارير HackerOne لضمان عدم اعتمادنا على عمليات الجهات الخارجية في المستقبل.
3. صنفت خدمة البريد الإلكتروني لدينا رسالة الباحث على أنها بريد مزعج. في يوم السبت، 25 أبريل، أرسل الباحث رسالة بريد إلكتروني إلى كل من الرئيس التنفيذي لشركتنا وإلى العنوان security@clickup.com، كما أرسل رسالة خاصة إلى حساب ClickUp على منصة X.
لم نرَ هذه الرسائل الإلكترونية إلا بعد نشر المنشور على منصة X. وقد تم العثور عليها في أعقاب تحقيق داخلي شمل مجلدات البريد العشوائي وتصفية الرسائل الخاصة على منصة X.
نحن نعمل على تحديث إجراءات تصفية البريد الإلكتروني ومراجعة الرسائل غير المرغوب فيها لضمان عدم حذف الرسائل الواردة ذات الصلة بالأمن دون إشعار.
لا شيء من هذا يبرر المشكلة الأساسية: لم يكن ينبغي أبدًا أن تتواجد بيانات العملاء في إعدادات علامات الميزات لدينا في المقام الأول.
ما قمنا به
فوري (تم إنجازه)
- تم إبطال صلاحية رمز API الخاص بالعميل الذي تم الكشف عنه.
- تمت إزالة جميع عناوين البريد الإلكتروني للعملاء من إعدادات علامات الميزات.
- صدر توجيه على مستوى قسم الهندسة يحظر إدراج المعلومات الشخصية أو بيانات الاعتماد في إعدادات العلامات.
- تم الانتهاء من إجراء تدقيق شامل لجميع علامات الميزات المتعلقة بالمعلومات الشخصية المحددة للهوية وبيانات الاعتماد والبيانات الحساسة.
قصير الأجل (قيد التنفيذ)
- تم تحديث قواعد تصفية البريد الإلكتروني لضمان عرض security@clickup.com لجميع رسائل الأمن الواردة، مع إضافة خطوة إجرائية لفحص رسائل البريد العشوائي (بأمان).
- مراجعة إجراءات فرز مكافآت اكتشاف الأخطاء مع HackerOne لمنع إغلاق البلاغات الصحيحة عن طريق الخطأ.
- تدريب المراجعين المعنيين بعلامات الميزات على المحتويات المعتمدة.
طويلة الأجل
- المسح التلقائي لجميع تكوينات علامات الميزات بحثًا عن أنماط المعلومات الشخصية (عناوين البريد الإلكتروني، الرموز المميزة، مفاتيح واجهة برمجة التطبيقات) عند كل تغيير في العلامة، مع تطبيق إجراءات الحظر.
- عملية وأدوات آلية لمراجعة جميع قرارات الفرز الصادرة عن HackerOne.
- تطبيق وكيل أو إجراء تقني لفصل علامات الواجهة الأمامية عن علامات الواجهة الخلفية.
ملاحظة عن الباحث
بمجرد أن تواصلت ClickUp مع الباحث الذي كشف عن هذه المعلومات، والذي يستخدم الاسم المستعار impulsive / @weezerOSINT، تصرفت الشركة بمسؤولية وقدمت جميع المعلومات المطلوبة.
قام الباحث، الذي يستخدم الاسم المستعار impulsive / @weezerOSINT، بالإبلاغ عن المشكلة عبر القنوات الرسمية (HackerOne، ثم عبر بريد إلكتروني مباشر إلى security@clickup.com وإلى رئيسنا التنفيذي)، وتفاعل بشكل بناء عندما تواصلنا معه. لكن إجراءاتنا الداخلية لم تنجح في الكشف عن تقريره وطلبات التصعيد التي قدمها في الوقت المناسب.
بعد التعاون مع الباحث، تلقت ClickUp الرسالة التالية في 28 أبريل الساعة 1:47 بالتوقيت العالمي المنسق: «شكرًا [ClickUp]، أقدر حقًا السرعة التي تعاملتم بها مع هذا الأمر. هذا أمر لا أراه كثيرًا، وهو ما يُحدث فرقًا.»
تمنح ClickUp الباحث مكافأة مالية مقابل اكتشافه لهذا الخطأ. ونشجع الباحثين الآخرين على الانضمام إلى برنامج مكافآت اكتشاف الأخطاء لدينا، أو الإبلاغ عن الأخطاء بطريقة مسؤولة من خلال برنامج الإفصاح عن الثغرات الأمنية، أو مباشرة عبر البريد الإلكتروني على العنوان security@clickup.com.
ملخص
اقتصر نطاق البيانات التي تعرضت للاختراق في هذه الحادثة على 893 عنوان بريد إلكتروني – ولم يتأثر أي محتوى من مساحة العمل أو كلمات المرور أو بيانات الفوترة لأي عميل، باستثناء عميل واحد تمت الإشارة إليه أعلاه – ونحن نعمل معه مباشرة للتأكد من عدم الوصول إلى المفتاح بطريقة غير مشروعة.
نعتذر بشدة لعملائنا عن حدوث هذا الأمر، وسنبذل قصارى جهدنا لضمان عدم تكراره مرة أخرى.
سنقوم بتحديث هذا المنشور في حال ظهور أي معلومات جديدة. إذا كانت لديك أي أسئلة، يرجى التواصل معنا عبر البريد الإلكتروني security@clickup.com.
